즉시로딩2 15. 지연 로딩 & 즉시 로딩(N + 1 문제) 0. 개요 - 이전 포스팅에서 Proxy에 대해 알아보았다. - 이번 포스팅에서는 Proxy를 이용한 지연 로딩과 즉시 로딩에 대해서 알아보자. 1. 지연 로딩 a) 예시 코드 - 다음과 같은 객체를 가지는 프로젝트가 있다고 해보자. @Entity public class Player { @Id @GeneratedValue @Column(name = "PLAYER_ID") private Long id; @Column(name = "PLAYER_NAME") private String name; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; // Getter & Setter 생략 } @Entity public class Team { @Id @Gene.. 2022. 4. 11. 14. 프록시(Proxy) 0. 개요 - 이번 포스팅에서는 JPA Proxy에 대해서 알아보자. - proxy는 JPA 개념 중에서도 어려운 개념에 속한다. 차근차근 배워보자. 1. Proxy를 사용하는 이유 a) 언제, 왜 사용할까? - 예를 들어, Player와 Team 객체를 모두 조회하는 비즈니스 로직이 있다고 해보자. - 경우에 따라 Player와 Team 객체가 모두가 필요할 때도, 두 객체 중 하나만 필요할 때도 있을 것이다. - 그러나 이미 두 객체를 모두 조회하도록 비즈니스 로직을 선언하였기에, 매번 Player와 Team 객체를 모두 조회한다. - 이처럼 필요하지 않은 객체에 대한 조회는 자원 낭비를 발생시킨다. - JPA는 이러한 상황을 해결하기 위해 지연 로딩을 사용하는데, 이때 Proxy라는 개념이 사용된다.. 2022. 4. 8. 이전 1 다음