백엔드/JPA
[JPA] N+1 문제
목적 의도하지 않는 쿼리문이 실행되는 것을 막아 불필요한 네트워크 통신 비용을 줄이기 위함 목차 JPA의 N+1이란? JPA의 기본적인 로딩 방식 JPA에서 Lazy로딩의 문제점 JPA의 N+1의 해결 방법 1. JPA의 N+1이란? 1번의 쿼리를 날렸을 때 의도하지 않은 N번의 쿼리가 추가적으로 실행되는 것을 의미한다. 이는 불필요한 네트워크 비용을 증가시킨다. 2. JPA의 기본적인 로딩 방식 JPA는 @ManyToMany, @OneToMany를 사용하는 필드에는 지연로딩을 적용한다. 지연로딩이란? 가능한 한 객체의 초기화를 지연시키는데 사용되는 디자인 패턴이다. 데이터가 불필요한 시점이 아닌 꼭 필요한 시점에 초기화를 시킬 수 있어 시간소비와 메모리 사용량을 줄일 수 있다. 그래서 JPA는 @**T..