EAGER의 경우 쿼리문이 한 번만 실행되지만, LAZY의 경우 2번의 쿼리문이 실행되므로 성능이 떨어진다고 볼 수 있습니다. 그럼에도 불구하고 LAZY 를 활용해야 하는 이유는 무엇일까요?
- EntityManger.find를 직접 호출할 때와 달리 JPQL을 사용할 때 EAGER는 N+1 문제가 즉각 발생하게 됩니다.
- 연관된 테이블이 많아질수록 join이 많이, 복잡하게 이루어져서 성능과 가독성이 저해됩니다.
- 지연 로딩으로 설정된 관계를 나중에, 또는 즉시 함께 불러오는 것은 선택이지만, 즉시 로딩은 선택의 여지가 없습니다.
- JPQL을 사용할 때 EAGER는 N+1 문제 즉각 발생하는 부분
- EAGER 셋팅 시 연관된 테이블이 어떻게 쿼리가 발생하는지