spring(15)
-
Spring Boot MockMvc 이해하기 : 테스트 흐름 및 사용예제
해당 글에서는 MockMvc에 대해 이해하고 활용하는 방법에 대해 확인해보자.MockMvc스프링 프레임워크에서 제공하는 웹 애플리케이션 테스트용 라이브러리를 의미이를 사용하면 웹 애플리케이션의 다양한 컴포넌트에 대해 테스트 가능MockMvc를 사용하면 HTTP 요청을 작성하고 컨트롤러의 응답을 검증이를 통해 통합 테스트를 실행하지 않고도 컨트롤러의 동작을 확인가능MockMvc를 이용한 테스트 목적MockMvc를 이용하여 컨트롤러의 동작을 테스트하는 데 사용컨트롤러의 엔드포인트를 호출하여 HTTP 클라이언트의 요청을 모방하고 적절한 응답을 확인하기 위해 테스트를 수행이러한 테스트 과정을 통해 애플리케이션의 서비스 로직이나 API 엔드포인트가 의도한 대로 동작하는지 확인하고, 버그를 발견하고 수정하는 데 도..
09:27:03 -
Spring Boot Junit5 이해하기 - 환경 구성 및 활용 예제
해당 글에서는 이전에 습득한 이론을 바탕으로 Spring Boot JUnit을 다양한 예제를 통해서 익혀보자.Spring Boot 2.2 + 이상 버전부터는 기본적으로 의존성이 추가되어 있기에 별도의 세팅은 하지 않는다.클래스/ 테스트 전후 수행 테스트 : @BeforeAll, @AfterAll, @BeforeEach, @AfterEach테스트 수행 구조@BeforeAll, @AfterAll 어노테이션을 이용하여 테스트 클래스의 시작/후에 단 한번 호출@BeforeEach, @AfterEach 어노테이션을 이용하여 매 @Test 전후에 호출어노테이션 설명@BeforeAllJUnit 테스트 클래스 내에서 모든 테스트 메소드 실행 전에 한 번 실행되는 메소드를 정의하는 데 사용됩니다. 보통 테스트 환경의 설..
2025.06.10 -
Spring Boot JUnit5 이해하기 - 이론 및 구조
해당 글에서는 JUnit에 대해 이해하고 Spring Boot 환경에서 환경을 구성하는 방법에 대해 알아보고자 한다.JUnit5Java언어에서 독립된 단위 테스트(Unit Test)를 지원해주는 프레임워크JUnit Jupiter의 주요 어노테이션어노테이션 설명@Test테스트 메서드를 정의하는 데 사용되는 어노테이션입니다. 이 어노테이션이 지정된 메서드는 JUnit Jupiter에서 테스트로 실행됩니다.@ParameterizedTest매개변수화된 테스트를 정의하는 데 사용되는 어노테이션입니다. 이 어노테이션이 지정된 메서드는 여러 매개변수를 사용하여 반복적으로 실행됩니다.@BeforeEach각각의 테스트 메서드가 실행되기 전에 실행되는 코드를 정의하는 데 사용되는 어노테이션입니다.@AfterEach각각의 ..
2025.06.10 -
Swagger 세팅 시 트러블 슈팅 (feat. Spring Boot 3, Spring Security)
이번에는 Spring Boot 3이 기본적으로 적용됨에 따라, 이에 따른 Swagger 세팅 방식을 알아보고자 한다. 참조 링크https://adjh54.tistory.com/561https://jong-bae.tistory.com/12https://www.baeldung.com/java-spring-security-permit-swagger-uihttps://dev-meung.tistory.com/entry/해커톤-HY-THON-트러블슈팅-Swagger-500-에러-Failed-to-load-API-definitionhttps://velog.io/@sinryuji/Swagger와-RestControllerAdvice-충돌-문제https://velog.io/@hotdog1029/Spring-Boot-3...
2025.06.07 -
JWT (feat. Spring Security, Spring Boot 3)
현재 Spring Boot 3이 기본으로 설정됨에 따라, jwt도 버전이 업그레이드 됨에 따라 그에 맞게 JWT로그인 방식을 전체적으로 수정해야했다. 아래는 Spring Boot3, jwt (0.11.5) 버전에 맞도록 구현한 JWT로그인 방식을 정리하였다. 먼저 JWT의 구조를 살펴보겠다. JWT (Json Web Token)JWT 토큰은 Base64로 인코딩하여 아래와 같은 문자열 형식을 사용한다. (Header)xxxxxxxxx.(Payload)xxxxxxxxx.(Signature)xxxxxxxxx JWT 토큰은 크게 세 가지로 나눌 수 있다. Headeralg : 인코딩에 사용되는 알고리즘 종류현재, si-ai프로젝트에는 Keys.hmacShakeyFor() 를 통해HMAC-SHA알고리즘을 적용..
2025.06.04 -
정적팩토리 메소드 vs 빌더 패턴
객체를 생성하는 방법에는 두가지 주요 방법으로 정적 팩토리 메소드와 빌더 패턴이 있다.두 가지 사용법에 대해 '왜' 사용하면 좋은지에 대해 생각을 해본적이 없었던것 같아 내용을 정리해보려고 한다. 이 두 가지 방법은 객체를 생성하고 초기화하는 과정에서 각자 고유의 장점을 제공한다.정적 팩토리 메소드 (=인스턴스를 반환)정적 팩토리 메소드는 클래스의 인스턴스를 반환하는 정적 메소드이다.이 메소드는 생성자와 비슷한 역할을 하지만,직접적으로 생성자를 호출하는 대신객체 생성의 세부사항을 캡슐화한다.객체를 만들때 new키워드를 사용하여 생성자를 호출하는 방법 대신,클래스 내부에 정의된 static메소드를 통해 객체를 생성하고 반환한다.이를 통해 객체 생성 로직을 메소드 내에 숨겨 사용자에게 보다 명확하고 관리가 ..
2025.05.30