개요이전 글에서 살펴보았듯 JPA로 OneToOne이나 ManyToOne 관계를 조회할 때는 비교적 단순한 방식으로 성능을 개선할 수 있다. 예를 들어, 페치 조인(fetch join) 을 적용하면 여러 쿼리를 한 번으로 줄일 수 있다. JPA 연관 관계 조회 성능 최적화 (feat: One To One, Many To One, 지연 로딩, 패치 조인)개요 JPA를 실무에서 사용하다 보면 대표적으로 거론되는 문제 중 하나가 바로 N+1 문제이다. 필자 또한 JPA를 이용해 직접 쿼리를 짜지 않고도 객체 지향적으로 매핑할 수 있다는 점에서 큰 생산wise-dev-seop.tistory.com 하지만 OneToMany 같은 컬렉션 관계를 다룰 때는, 조인으로 인해 데이터가 중복 조회(일명 ‘뻥튀기’)될 ..
패치조인
개요 JPA를 실무에서 사용하다 보면 대표적으로 거론되는 문제 중 하나가 바로 N+1 문제이다. 필자 또한 JPA를 이용해 직접 쿼리를 짜지 않고도 객체 지향적으로 매핑할 수 있다는 점에서 큰 생산성 향상을 느꼈다. 하지만 여러 개발자들의 코드를 리뷰하면서, 실무에서 성능 최적화를 충분히 고민하지 않는 경우가 의외로 많다는 사실을 알게 되었다.이 글에서는 JPA로 개발할 때 명심해야 할 성능 최적화 포인트들을 중심으로 설명하고자 한다. 내용Order 엔티티를 직접 노출할 때JPA에서는 엔티티 간 연관관계를 설정할 때, 지연 로딩(Lazy)과 즉시 로딩(Eager) 중 하나를 선택하게 된다. 예를 들어 Order 테이블이 있고, 여기서 Delivery(OneToOne), Member(ManyToOne) 관..