[Spring] JPA - 프록시(Proxy)
·
Back end/Spring Project
1. em.find() vs em.getReference()엔티티를 조회할 때 JPA는 두 가지 방식을 제공합니다.em.find() ➡️ 즉시 로딩 데이터베이스를 통해 실제 엔티티 객체를 바로 조회합니다.즉시 쿼리가 실행됩니다.em.getReference() ➡️ 지연 로딩을 위한 가짜 객체(프록시) 반환 데이터베이스 조회를 미루는 프록시 객체를 반환합니다.필요할 때까지 쿼리가 실행되지 않고 대기합니다.2. 프록시란?프록시 객체는 JPA가 내부적으로 만들어 주는 가짜 객체입니다.하지만 실제 엔티티 클래스를 상속받아서 만들어지기 때문에 겉으로 보기에는 동일합니다.3. 프록시의 동작 원리프록시 객체는 내부적으로 실제 엔티티를 참조(target)로 보관합니다.프록시 객체를 호출하면 → 실제 엔티티의 메소드를 ..