Spring Boot (18) 썸네일형 리스트형 [Spring Boot] HandlerMethodArgumentResolver 역할과 예제 개념HandlerMethodArgumentResolver는 Spring MVC에서 컨트롤러 메서드의 매개변수를 해석하고 주입하는 역할을 합니다. 이 인터페이스를 구현하면 사용자 정의 논리로 요청 파라미터를 해석하고 컨트롤러 메서드에 전달할 수 있습니다. 대부분의 API 에서 공통으로 처리하는 로직이 있으면 처리하기 간편하다고 볼 수 있다.작동 원리요청 수신: 클라이언트가 서버에 요청을 보냅니다.매핑: Spring MVC(Dispatcher Servlet)가 해당 요청을 처리할 핸들러 메서드(컨트롤러 메서드)를 찾습니다.매개변수 해석: HandlerMethodArgumentResolver 구현체가 핸들러 메서드의 매개변수를 해석하고 값을 주입합니다.응답 반환: 핸들러 메서드가 실행되고, 결과가 클라이언트에.. [Spring Boot] Spring Boot CORS 설정 CORS (Cross-Origin Resource Sharing)개념CORS는 Cross-Origin Resource Sharing의 약자로, 서로 다른 출처(도메인, 프로토콜, 포트) 간에 리소스를 공유할 수 있도록 하는 메커니즘입니다. 웹 애플리케이션에서 보안상의 이유로, 브라우저는 다른 출처의 리소스에 대한 요청을 제한합니다. CORS는 이러한 제한을 완화할 수 있도록 특정 조건하에 다른 출처의 리소스에 접근할 수 있는 방법을 정의합니다.동작 원리CORS는 HTTP 헤더를 사용하여 동작합니다. 서버는 특정 헤더를 포함하여 브라우저가 요청을 허용할 수 있도록 합니다.Preflight Request: 브라우저는 실제 요청을 보내기 전에 OPTIONS 메서드를 사용하여 "Preflight Request".. [Spring Boot] Spring Boot 에서 Spring REST Docs 설정, Swagger 와 비교 Spring REST Docs개념Spring REST Docs는 RESTful API 문서를 생성하는 도구입니다. 통합 테스트와 문서화를 통합하여 테스트 코드에서 직접 문서를 생성할 수 있게 해줍니다. 이는 테스트가 통과된 내용만 문서화되기 때문에 항상 신뢰할 수 있는 문서를 보장합니다. Asciidoctor를 사용하여 문서를 생성하며, 커스터마이징이 가능합니다. 설정 방법1. 의존성 추가build.gradle 파일에 필요한 의존성을 추가합니다.plugins { id 'java' id 'org.springframework.boot' version '3.3.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'org.. [Spring Boot] JPA QueryDSL 적용 Spring Boot에서 QueryDSL 적용하기QueryDSL 개념QueryDSL은 데이터베이스 쿼리를 타입 안전하고 직관적으로 작성할 수 있는 프레임워크입니다. 주요 특징은 다음과 같습니다:타입 안전성: 쿼리를 자바 코드로 작성하여 컴파일 시점에 에러를 검출할 수 있습니다.유연성: JPQL, SQL, MongoDB, Hadoop 등 다양한 데이터베이스와 연동할 수 있습니다.직관성: 메서드 체이닝을 사용하여 가독성 높은 쿼리를 작성할 수 있습니다. QueryDSL 설정 방법1. 의존성 추가먼저 build.gradle 또는 pom.xml 파일에 QueryDSL 관련 의존성을 추가합니다.Gradledependencies { implementation "com.querydsl:querydsl-core".. [Spring Boot] Spring Boot Test에서 JsonPath 사용하기 Spring Boot는 RESTful API 테스트를 용이하게 하기 위해 다양한 테스트 지원 기능을 제공합니다. 그 중 하나가 JsonPath를 사용하여 JSON 응답을 검증하는 것입니다. JsonPath는 JSON 데이터를 탐색하고 원하는 데이터를 추출할 수 있는 XPath와 유사한 구문을 제공합니다.JsonPath란?JsonPath는 JSON 문서에서 데이터를 추출하는 데 사용되는 표준화된 경로 언어입니다. 이를 통해 JSON 데이터 구조 내의 특정 필드나 값을 손쉽게 찾아낼 수 있습니다. 예를 들어, JSON 객체에서 특정 키의 값을 추출하거나 배열 내의 특정 요소를 선택할 수 있습니다.주요 기능경로 표현식: JsonPath는 JSON 데이터 구조에서 특정 요소를 지정하는 경로 표현식을 제공합니다... [Spring Boot] @ControllerAdvice 중앙 집중식 예외 처리 Spring Framework를 사용하여 웹 애플리케이션을 개발할 때, 예외 처리는 중요한 부분입니다. 특히, 모든 컨트롤러에서 발생할 수 있는 예외를 일관되게 처리하는 것은 유지보수성과 코드의 가독성을 높이는 데 큰 도움이 됩니다. 이를 위해 Spring은 @ControllerAdvice 어노테이션을 제공합니다.@ControllerAdvice란?@ControllerAdvice는 Spring MVC에서 컨트롤러 전반에 걸쳐 예외를 처리할 수 있도록 도와주는 어노테이션입니다. 이는 특정 컨트롤러에 종속되지 않고, 전역적으로 적용되므로 여러 컨트롤러에서 발생하는 예외를 한 곳에서 관리할 수 있습니다.주요 기능예외 처리: 특정 예외를 처리하는 메서드를 정의할 수 있습니다.글로벌 바인딩/유효성 검사: 모든 컨트.. [Spring Boot] Spring Boot MockMvc 이해 Spring MockMvc는 Spring MVC 애플리케이션을 테스트하는 데 사용되는 강력한 도구입니다. 이를 통해 실제 서버를 시작하지 않고도 MVC 애플리케이션의 웹 계층을 테스트할 수 있습니다. MockMvc는 주로 Controller의 동작을 검증하는 데 사용되며, 요청을 시뮬레이션하고 응답을 검증할 수 있게 해줍니다. 개념과 목적MockMvc는 Spring의 테스트 모듈 중 하나로, HTTP 요청과 응답을 모킹(mocking)하여 컨트롤러 레이어를 테스트할 수 있도록 합니다. 실제 서블릿 컨테이너를 실행하지 않고도 Spring MVC 애플리케이션의 웹 계층을 테스트할 수 있습니다.신속한 피드백: 빠르게 테스트를 실행하여 피드백을 받을 수 있습니다.서버 독립적 테스트: 실제 서버를 시작하지 않고도.. [Spring Boot] @RequiredArgsConstructor Lombok으로 스프링에서 DI(의존성 주입)의 방법 중에 생성자 주입을 임의의 코드없이 자동으로 설정해주는 어노테이션이다. @RequiredArgsConstructor는 초기화 되지않은 final 필드나, @NonNull 이 붙은 필드에 대해 생성자를 생성해 줍니다. 새로운 필드를 추가할 때 다시 생성자를 만들어서 관리해야하는 번거로움을 없애준다. (@Autowired를 사용하지 않고 의존성 주입) 1. @RequiredArgsConstructor 를 사용한 예시 @RestController @RequiredArgsConstructor @RequestMapping("/example") public class RequiredArgsConstructorControllerExample { private fi.. 이전 1 2 3 다음