연관관계

·기술 탐구/JPA
개요 JPA는 엔티티 간의 관계를 설정할 때 다양한 페치 전략을 제공하며, 그 중 지연 로딩(Lazy Loading) 은 성능 최적화를 위해 자주 사용된다. 지연 로딩은 실제로 연관된 데이터가 필요할 때만 데이터베이스에서 로딩하는 방식으로, 초기 로딩 시 불필요한 데이터를 가져오는 것을 방지하여 애플리케이션의 응답성을 향상시킨다.  이번 글에서는 JPA에서 지연 로딩이 왜 사용되는지, 연관 관계의 주인이 무엇인지, 지연 로딩 시 프록시와 null이 어떻게 할당되는지, 그리고 특히 OneToOne 양방향 관계에서 지연 로딩이 정상적으로 동작하지 않는 이유에 대해 생각해보겠다. 연관 관계의 주인 JPA에서 연관 관계의 주인(Owner) 이란, 두 엔티티 간의 관계에서 실제로 데이터베이스의 외래 키(Forei..
·기술 탐구/JPA
개요 이전 글에서 Lazy와 Eager 중 Lazy를 사용해 성능을 튜닝해야 한다는 이야기를 했었다. 이번 포스팅에서는 JPA가 내부적으로 Lazy와 Eager 로딩을 어떻게 구분하는지, 그리고 이를 판단하는 주체가 누구인지, 그 주체가 어떻게 동작하는지 더 깊이 있게 파고들어 보자. (hibernate 5.4.18.Final 기준) JPA 연관 관계 조회 성능 최적화 (feat: One To One, Many To One, 지연 로딩, 패치 조인)개요 JPA를 실무에서 사용하다 보면 대표적으로 거론되는 문제 중 하나가 바로 N+1 문제이다. 필자 또한 JPA를 이용해 직접 쿼리를 짜지 않고도 객체 지향적으로 매핑할 수 있다는 점에서 큰 생산wise-dev-seop.tistory.com JPA 연관 관계..