[스프링] 스프링 Data JPA(6) @EntityGraph
·
스프링 데이터 JPA
JPA를 사용하다 보면 가장 자주 겪는 성능 문제 중 하나가 바로 N+1 문제다.회원(Member)과 팀(Team)이 지연 로딩 관계라고 할 때, 단순히 회원 목록을 조회했는데 이후 각 회원의 팀을 가져오는 순간마다 추가 쿼리가 실행된다. 회원이 100명이라면 1(회원 조회) + 100(팀 조회) = 101번의 SQL이 실행되는 꼴이다. 작은 데이터에서는 체감이 안 될 수 있지만, 실제 서비스에서는 쿼리 폭발로 이어져 치명적인 성능 문제가 된다. N+1 문제 예시@Testpublic void findMemberLazy() throws Exception { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); teamReposi..