시리즈/Spring
-
Hibernate Fetch 전략 중 대부분의 경우에 LAZY가 더 좋다.시리즈/Spring 2025. 3. 9. 00:12
많은 신입 개발자들이 놓치고 있는 사실을 한번 이야기 해보려고 한다.보통 Eager 전략이 Lazy보다 더 좋다고 알고 있는데 이는 데이터가 적거나 토이 프로젝트 수준의 연관 관계에서만 그러하다.??? : 대체 무슨 소리냐? 네트워크 I/O가 Eager가 훨씬 적고, Lazy는 N+1 문제가 발생하기 때문에 반드시 Eager 전략을 따라야 한다. 괜히 사람들이 Eager를 쓰는 것이 아니다.하지만 나는 자신 있게 대부분의 실무 상황에서 약간의 설정(defatul_batch_fetch_size)과 함께 Lazy Fetch 전략을 사용하면 성능도 좋아지고, 코드의 복잡성을 떨어뜨려 생산성을 증가시킨다고 말한다.이유 : Eager는 데카르트 곱(Cartesian Product) 문제를 발생시킨다.실제로 서비스..