본문 바로가기
반응형

개발/Spring FW22

JPA N+1 문제 N + 1 문제는 처음 실행한 SQL의 결과 수만큼 추가로 SQL을 실행하는 것입니다. 조회 시점에 차이가 있을 뿐 지연로딩과 즉시로딩 모두 발생할 수 있습니다. 코드를 통해 확인을 해보겠습니다. 데이터베이스 스키마 CREATE TABLE User ( id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); CREATE TABLE Order ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES User(id) ); JPA Entity 클.. 2023. 11. 17.
@RestControllerAdvice @RestControllerAdvice는 스프링 프레임워크에서 제공하는 어노테이션(Annotation)으로 전역적인 예외 처리 및 특정 컨트롤러에 대한 공통의 처리 로직을 정의할 때 사용됩니다. `@RestControllerAdvice`는 `@ControllerAdvice`에 추가적으로 RESTful 서비스에 특화된 기능을 제공하는데, 이 어노테이션이 적용된 클래스는 예외 처리와 데이터 바인딩, 모델 속성 추가와 같은 여러 가지 역할을 수행할 수 있습니다. 주요 특징 및 사용법 전역 예외 처리 @ExceptionHandler 어노테이션과 함께 사용하여 애플리케이션에서 발생하는 예외를 전역적으로 처리할 수 있습니다. 이를 통해 컨트롤러 내부에서 개별적으로 예외 처리를 구현하는 것보다 효율적이고 일관된 예외.. 2023. 11. 16.
[Spring F/W] Spring Batch 스프링 배치 가이드 프로젝트를 클론하여 공부해 보려고 합니다. 설정 스펙은 Java 17, HSQLDB, Spring Batch, Gradle 입니다. (참고, HSQLDB는 인메모리 데이터베이스) https://start.spring.io/ 에서 dependencies에 HyperSQL Database, Spring Batch를 추가합니다. zip 파일의 압축을 해제하고 IDE로 프로젝트를 엽니다. 스프링 공식 홈페이지에서 제공하는 Spring batch guide 프로젝트를 클론하여 참고합니다. git clone https://github.com/spring-guides/gs-batch-processing.git 학습용 더미 데이터는 가이드 프로젝트의 src/main/resources/sample-d.. 2023. 10. 23.
WebFlux WebFlux는 Spring Framework 5에서 도입된 반응형 프로그래밍 모델을 위한 웹 프레임워크입니다. WebFlux는 전통적인 Spring MVC와는 다르게, 비동기 및 반응형 웹 애플리케이션을 만들기 위해 설계되었습니다. WebFlux의 주요 특징과 이점은 다음과 같습니다: 1. 비동기 및 반응형: WebFlux는 비동기 및 반응형 웹 애플리케이션 개발을 지원합니다. 이를 통해 대량의 동시 요청을 효율적으로 처리할 수 있습니다. 2. Reactor 프레임워크: WebFlux는 Reactor 프레임워크를 기반으로 합니다. Reactor는 `Mono`와 `Flux`라는 반응형 타입을 제공하며, 이를 통해 데이터 스트림을 비동기적으로 처리할 수 있습니다. 3. 어노테이션 기반과 함수형 스타일 모두.. 2023. 10. 22.
반응형