728x90
LazyInitializationException
-
Spring Boot 고급 시리즈 6화 – 트랜잭션 경계와 영속성 컨텍스트: JPA의 진짜 작동 원리기술과 산업/언어 및 프레임워크 2025. 6. 22. 13:21
Spring Boot + JPA 환경에서 트랜잭션의 범위와 영속성 컨텍스트의 생명주기를 어떻게 설정해야 하는지 설명합니다. flush 타이밍, LazyInitializationException, 성능 최적화 전략까지 실전 중심으로 구성했습니다. 왜 트랜잭션과 영속성 컨텍스트를 구분해야 하는가? Spring Boot에서 JPA를 사용할 때 @Transactional 어노테이션을 쓰는 것이 익숙하실 겁니다. 그러나 이 어노테이션 하나로 JPA가 “정상 동작한다”고 생각하는 것은 착각입니다.실제로 JPA의 핵심 로직은 **영속성 컨텍스트(Persistence Context)**라는 개념 위에서 돌아갑니다. 그리고 이 컨텍스트의 생성과 종료 시점은 트랜잭션 경계와 밀접하게 연결되어 있습니다. 1. 트랜잭션과..