JPA중급

JPA N+1 문제와 해결 방법

N+1 문제가 발생하는 원인과 해결 방법을 설명해주세요.

💡 FetchType과 연관관계 로딩 전략을 고려해보세요.

👀현직자 답변
8명 보는 중
LINE
5년차 백엔드
Spring 전문가
준비 중
개발하는 감자LINE5년차
2시간 전

N+1 문제는 연관관계 조회 시 각 엔티티마다 추가 쿼리가 발생하는 문제입니다. Fetch Join이나 @EntityGraph를 사용하면 한 번의 쿼리로 해결할 수 있어요. Batch Size 설정도 효과적인 방법 중 하나입니다.

코딩하는 호랑이5년차 백엔드베스트 답변 12회
1일 전

실무에서 가장 많이 쓰는 건 Fetch Join이에요. 다만 페이징 처리 시 메모리에서 페이징이 되는 문제가 있으니 주의해야 합니다. 이럴 때는 @BatchSize를 사용하는 게 더 나을 수 있어요.

스프링 마스터Spring 전문가우아한형제들
3일 전

@BatchSize는 IN 쿼리로 한번에 여러 개를 조회해서 쿼리 수를 줄여줍니다. Fetch Join보다 유연하고, 페이징과도 같이 쓸 수 있어요.

백엔드 지망생준비 중도움돼요 45+
5일 전

실무 팁: 지연 로딩을 기본으로 하고, 필요한 경우에만 Fetch Join을 쓰세요. 그리고 항상 쿼리 로그를 확인하는 습관을 들이세요.

✍️
당신의 생각도 공유해주세요

답변을 공유하면 +10 인사이트 💎를 받고, 다른 사람들에게도 도움을 줄 수 있어요