# n + 1

2개의 포스트
post-thumbnail

JPA - N + 1 문제와 해결방안

😮 N + 1 문제란 무엇일까? JPA 강의를 듣거나 책을 듣다보면 자주 등장하는 단골 주제가 있습니다. N + 1 문제를 어떻게 해결할 것인지에 대한 방법들이 많이 등장합니다. 면접에서도 단골 문제로 등장할만큼 JPA를 사용한다면 반드시 알아야 할 개념인 것 같습니다. N + 1 문제, 이렇게만 들으면 어떤 말인지 이해가 잘 안될 거 같습니다. N + 1 문제를 한 문장으로 정의하자면, 연관 관계가 설정된 엔티티를 조회할 경우에 발생할 수 있는 이슈중의 하나로, 연관 관계가 설정된 엔티티(1개)를 조회할 경우에, 조회한 엔티티와 연관 관계가 설정된 엔티티를 조회하는 추가 조회 쿼리(N개)가 발생하는 현상을 말합니다. 예를 들어, User(회원)을 전체 조회하기 위해서 한번의 쿼리가 나가면 회원과 관련된 게시글들을 찾기위해 회원과 관련된 Article(게시글)도 조회하는 쿼리가 나가게 되는 것입니다. 각각 상황을 나눠서 테스트 케이스 작성을 통해, 쿼

2023년 3월 1일
·
4개의 댓글
·
post-thumbnail

[JPA & Hibernate] N + 1 Problems

✔ 깃허브 소스코드 > ✔ Udemy 강의영상 🚀 N + 1 문제란? 특정 데이터를 조회하기 위해 쿼리 1번으로 N개의 데이터를 가져왔는데, 각 데이터를 순회하면서 연관 관계에 있는 데이터를 얻기 위해 쿼리를 N번 더 수행하는 문제입니다. 주로 연관 관계에 대한 FetchType을 Lazy로 지정했을 때 주로 발생합니다. 해결방안 1. FetchType을 Eager로 변경 이 방법을 사용하게 되면 해당 데이터를 조회할 때마다 연관 관계에 있는 데이터까지 같이 조회가 되므로 성능면에서는 Lazy 보다 떨어지므로 비추천합니다. 해결방안 2. EntityGraph EntityManager로 조회할 데이터를

2020년 8월 23일
·
0개의 댓글
·