프록시 객체를 이용한 JPA(Hibernate) 지연 로딩의 원리
지연 로딩? 예를 들어 A라는 객체가 B라는 객체를 가지고 있다면, A를 데이터를 불러 올 때 해당되는 B의 데이터도 필요합니다. 하지만 B객체에 대한 정보가 굳이 필요 없는 상황에서도 B데이터까지 모두 데이터베이스에서 불러오는 작업을 한다면 비효율적인 작업이 됩니다. 이런 상황에서 성능을 올리기 위한 방법으로 JPA의 '지연 로딩'이 있습니다. 실제로 B객체의 데이터가 사용 될 때, B데이터를 불러오고, 그렇지 않다면 굳이 B객체 데이터를 사용하지 않습니다. 지연 로딩을 구현하기 위해서 JPA (정확히는 Hibernate)에서는 프록시 디자인 패턴을 사용합니다. 프록시 디자인 패턴 이미지 출처 ㅣ 위키 백과 클라이언트(Client)가 특정 객체(Subject)를 사용하게 될 때, 이를 구현한 (혹은 상..
JPA
2019. 2. 26. 20:55