hibernate

·기술 탐구/JPA
개요 JPA는 엔티티 간의 관계를 설정할 때 다양한 페치 전략을 제공하며, 그 중 지연 로딩(Lazy Loading) 은 성능 최적화를 위해 자주 사용된다. 지연 로딩은 실제로 연관된 데이터가 필요할 때만 데이터베이스에서 로딩하는 방식으로, 초기 로딩 시 불필요한 데이터를 가져오는 것을 방지하여 애플리케이션의 응답성을 향상시킨다.  이번 글에서는 JPA에서 지연 로딩이 왜 사용되는지, 연관 관계의 주인이 무엇인지, 지연 로딩 시 프록시와 null이 어떻게 할당되는지, 그리고 특히 OneToOne 양방향 관계에서 지연 로딩이 정상적으로 동작하지 않는 이유에 대해 생각해보겠다. 연관 관계의 주인 JPA에서 연관 관계의 주인(Owner) 이란, 두 엔티티 간의 관계에서 실제로 데이터베이스의 외래 키(Forei..
·기술 탐구/JPA
개요 JPA를 실무에서 사용하다 보면 대표적으로 거론되는 문제 중 하나가 바로 N+1 문제이다. 필자 또한 JPA를 이용해 직접 쿼리를 짜지 않고도 객체 지향적으로 매핑할 수 있다는 점에서 큰 생산성 향상을 느꼈다. 하지만 여러 개발자들의 코드를 리뷰하면서, 실무에서 성능 최적화를 충분히 고민하지 않는 경우가 의외로 많다는 사실을 알게 되었다.이 글에서는 JPA로 개발할 때 명심해야 할 성능 최적화 포인트들을 중심으로 설명하고자 한다. 내용Order 엔티티를 직접 노출할 때JPA에서는 엔티티 간 연관관계를 설정할 때, 지연 로딩(Lazy)과 즉시 로딩(Eager) 중 하나를 선택하게 된다. 예를 들어 Order 테이블이 있고, 여기서 Delivery(OneToOne), Member(ManyToOne) 관..
지혜와 본질을 추구하는 자
'hibernate' 태그의 글 목록