1. 소개
ORM으로 작업을 할 때, data fetching/loading 은 eager와 lazy 2 타입으로 구분된다.
2. Eager and Lazy loading
Eager loading은 데이터 초기화가 현장에서 일어나는 디자인 패턴이다.
Lazy loading은 가능한 한 객체의 초기화를 지연시키는 데 사용되는 디자인 패턴이다.
3. 차이점
데이터가 메모리에 로드되는 순간이 가장 큰 차이점이다.
Lazy loading
장점
- 초기 접근 시간은 다른 접근 방식보다 훨씬 적다.
- 다른 방법보다 메모리 소비가 적다.
단점
- 지연된 초기화는 원치 않는 순간에 성능에 영향을 줄 수도 있다.
- 경우에 따라 특별히 초기화 된 지연 초기화 객체를 처리해야하거나 예외가 발생할 수도 있다.
Eager loading
장점
- 지연된 초기화와 관련된 성능 영향 없음
단점
- 긴 초기 로딩 시간
- 불필요한 데이터를 너무 많이 로드하면 성능에 영향을 줄 수도 있다.