작성
·
216
답변 1
5
안녕하세요. 님, 공식 서포터즈 David입니다.
.
강의 내용을 가지고 예를 들어보겠습니다.
Member는 Team과 연관관계를 가집니다.
프록시를 사용하지 않아서 지연로딩을 사용할 수 없다면 Member를 JPA를 통해 조회할 때 연관관계인 Team까지 함께 조회됩니다.
이게 문제가 되는 이유는 Member를 조회해서 어떤 로직을 처리하려는데 Team과 전혀 관련없는 일을 할 때 발생합니다.
나는 Member만 필요한데 연관관계인 Team까지 다 불러와서 메모리에 올라와있는 것입니다.
만약 프록시를 사용하여 지연로딩이 가능해진다면 얘기는 달라집니다.
Member를 조회할 때 연관관계인 Team은 지연로딩으로 처리된다면, Member를 조회하고 Team과 전혀 관련없는 로직을 처리할 때 오로지 Team을 제외한 Member의 상태만으로 로직을 처리하게 됩니다.
이 과정에서 불필요한 Team을 불러오지 않게 되는 것이고 리소스의 낭비를 조금이라도 줄일 수 있게 되는 것이죠.
이러한 지연로딩이라는 기술을 가능케 하는게 프록시이고요.
.
감사합니다.
프록시를 사용하지 않아서 지연로딩을 사용할 수 없다면 Member를 JPA를 통해 조회할 때 연관관계인 Member까지 함께 조회됩니다.
=> Member를 JPA를 통해 조회할 때 연관관계인 Team까지 함께 조회한다는 건데 오타이신거 맞으시죠..!?
이런 관계를 지연로딩의 반대 즉시로딩이라고 하는거 맞나요?