N+1 해결 도구 완전 정복 — `fetch join` / `@EntityGraph` / `@BatchSize`는 언제 쓰나요?
스터디·11분 읽기
JPA에서 N+1을 줄이는 세 가지 도구인 fetch join, @EntityGraph, @BatchSize는 해결하는 축이 각각 다릅니다. 단일 연관과 컬렉션, 페이징 여부, 재사용성 관점에서 상황별 선택 기준을 정리합니다.
2개의 글
JPA에서 N+1을 줄이는 세 가지 도구인 fetch join, @EntityGraph, @BatchSize는 해결하는 축이 각각 다릅니다. 단일 연관과 컬렉션, 페이징 여부, 재사용성 관점에서 상황별 선택 기준을 정리합니다.
연관 관계 기본 Fetch 전략, 프록시로 구현되는 LAZY 동작, EAGER에서도 N+1이 생기는 이유, 컬렉션과의 조합에서 발생하는 카르테시안 폭발까지 JPA Fetch 전략의 내부 동작을 정리합니다.