🌱 프록시

엔티티를 조회할 때 연관된 엔티티들이 항상 사용되는 것은 아니다.

ex) 회원 엔티티를 조회할 때 연관된 팀 엔티티는 비즈니스 로직에 따라 사용될 때도 있지만 아닐 때도 있다.

왼쪽과 같은 로직일 경우, 단순히 회원만 조회하는 로직에서 참조하는 팀까지 조회한다면? → 비효율적임.

JPA에서는 이런 문제를 해결하기 위해 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연한다! → 이것이 *지연 로딩!!

지연 로딩을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 각자 객체가 필요 → 프록시 객체!!*

프록시 기초

JPA에서 식별자로 엔티티 하나를 조회할 때는 EntityManager.find()를 사용한다. → 이 메소드는 영속성 컨텍스트에 엔티티가 없으면 데이터베이스를 조회한다.

프록시의 특징