프록시(Proxy) em.find() 는 DB를 통해 실제 엔티티 객체를 조회하지만, em.getReference() 는 DB 조회를 미룰 수 있도록 프록시 엔티티 객체를 조회합니다. (getReference 메서드를 호출하는 시점에는 DB 쿼리를 하지 않고 프록시 객체를 반환한 뒤, 사용되는 시점에 쿼리를 합니다) 프록시 객체는 실제 클래스를 상속받아서 생성되기에 실제 엔티티와 동일한 틀을 가졌습니다. 실제 객체의 참조(target)를 보관하고, 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드를 호출합니다. 프록시 객체는 처음 사용할 때 한 번만 초기화되며, 초기화 시 프록시 객체가 실제 엔티티로 변경되는 것이 아닙니다. (프록시 객체를 통해 실제 엔티티에 접근합니다) 프록시 객체는 원본 엔티..