본문 바로가기
공부

[Spring-Data-JPA] N + 1 문제

by 꾸돼지 2025. 5. 26.
320x100

N+1 문제에 대해 알게되었다.

일단 이 용어가 뭔지 몰라서 기억차 남겨둔다.

 

JPA는 자식 엔티티에선 @ManyToOne 어노테이션을 통해 연관 관계를 기억한다.

이 때, 기본 전은 EagerLoading인데, 해당 데이터가 조회되는 순간 연관된 부모의 데이터를 가져오게 된다.

만약 부모 테이블에 접근할 필요가 없는 경우에 해당 데이터를 가져오게 되면 불필요한 조인으로 성능 문제가 발생한다.

이때, LazyLoading 전략을 선택한다.

LazyLoading이 되어 있는 변수의 경우, 직접적인 호출이 없는 경우 조회되지 않는다.

 

@Transactional로 한 트랜잭션 안에서 필요한 변수를 명시적으로 호출하면 불러올 수 있다.

 

 

https://www.youtube.com/watch?v=CghP7yW21Nw

320x100