전체 글

전체 글

    [Spring] Security 테스트 적용기 02 (+ Oauth2.0, jwt)

    Spring Security 테스트 적용기 02 OAuth 2.0 또는 JWT와 같은 보다 복잡한 인증 메커니즘을 사용하는 경우, @WithMockUser와 @WithUserDetails만으로는 충분하지 않을 수 있다. OAuth 2.0 및 JWT와 같은 토큰 기반 인증 방식은 다른 방식으로 테스트해야 한다. 일반적인 방식으로 Spring Security Test 프레임워크에서 지원하는 @WithSecurityContext 애노테이션을 사용하여, 커스텀한 @WithMockUser 애노테이션을 만들고 OAuth 2.0 인증을 가정하는 테스트를 작성할 수 있다. 테스트 코드 작성에 도움을 주는 애노테이션들을 정리하고, @WithSecurityContext 어노테이션을 사용하여 @WithMockOAuth2Us..

    [Spring] Security 테스트 적용기 01

    Spring Security는 어떻게 테스트를 할 수 있을까? Spring Security와 관련된 기능을 테스트하려면 인증 정보를 미리 주입해야 한다. 테스트를 진행할 때 초록빛을 보기 위한 가장 간단한 방법은 테스트 전에 SecurityContext에 직접 Authentication을 주입하는 경우이다. class UserServiceTest { @BeforeEach void setUp() { UserDetails user = createUserDetails(); SecurityContext context = SecurityContextHolder.getContext(); context.setAuthentication(new UsernamePasswordAuthenticationToken(user, ..

    [Java] Java 11 vs Java 17, JDK 17 정리

    JDK 11 vs JDK 17 팀 프로젝트 진행 시 JDK11과 JDK17 버전 중 어떤 것을 사용할지 고민한 결과 그동안 많이 접해온 Java 11의 익숙함과 더 많은 정보 량을 가진 Java 11을 결정하기로 하였다. 고민하는 과정에서 공부한 Java 11, Java 17의 변경내용과 JDK17의 중요 업데이트 항목 중 하나인 record 클래스를 정리해보려고 한다. JDK 17까지의 주요 업데이트 JDK 11 Type Features Content 패키지 Jigsaw 모듈 시스템 모듈을 만들고 해당 모듈은 외부에서 호출할 수 있는 API를 제공하여, 언어레벨에선 직접적으로 해당 모듈에 접근이 불가능 패키지 New Garbage Collector, ZGC 추가 새로운 Garbage Collector ..

    [협업 프로젝트] Git Flow, 커밋 컨벤션, Issues 프로젝트 적용하기

    서론 Spring Boot를 이용한 RESTful Web Service를 개발 및 학습하는 과정 중 BE와 FE 협업 프로젝트를 함께 진행하는 것이 실제 개발 환경에서의 경험 (BE, FE 실제 현업과 유사한 개발환경) 커뮤니케이션 강화 효율적인 개발 FE, BE 지식 공유 종합적인 시스템 이해 측면에서 장점을 가지고 있을 것이라고 생각하고 커뮤니티에서 BE, FE 협업 프로젝트를 확인하고 진행하게 되었다. 프로젝트의 형상관리 툴은 git으로 결정하였고, git으로 결정한 이유는 다음과 같다. 팀원 전체의 사용 경험 분산 집중형 버전관리 및 개발 (Git - flow 전략) 커밋 컨벤션을 활용한 코드 메시지 구조 구체화 Issue와 프로젝트를 통한 MVP 스프린트 통합 관리 여기서 우리는 형상관리를 더 ..

    [Exception] Custom Exception을 언제 써야할까?

    서론 서비스를 만들다보면 예외를 발생시키는 일이 많이 발생한다. 그에 따라 Java에서는 사용자가 상황에 따라 적절한 표준 예외를 처리할 수 있도록 기능을 제공하고 있다. 하지만 표준 예외 메시지 대신에 사용자 정의 예외 메시지를 제공하며, 일반적으로 특정 응용 프로그램 또는 라이브러리에서 발생하는 독자적인 예외 상황을 처리할 때 사용할 수 있는 `Custom Exception`는 의미 있는 예외처리가 가능하다. 표준 예외 처리, Custom exception으로 사용자가 직접 정의한 예외 처리, 두 가지를 비교하며 각각을 비교해보자. 표준 예외를 사용하면 안 될까? 다음 표는 사용자가 상황에 따라 자주 사용되는 표준 예외 예시이다. 예외 클래스 발생 상황 IllegalArgumentException 인..