본문 바로가기

카테고리 없음

Eager/Lazy Loading In Hibernate

1. 소개

 

ORM으로 작업을 할 때, data fetching/loading 은 eager와 lazy 2 타입으로 구분된다.

 

2. Eager and Lazy loading 

 

Eager loading은 데이터 초기화가 현장에서 일어나는 디자인 패턴이다.

Lazy loading은 가능한 한 객체의 초기화를 지연시키는 데 사용되는 디자인 패턴이다. 

 

3. 차이점

 

데이터가 메모리에 로드되는 순간이 가장 큰 차이점이다. 

 

Lazy loading 

장점

- 초기 접근 시간은 다른 접근 방식보다 훨씬 적다.

- 다른 방법보다 메모리 소비가 적다.

단점

- 지연된 초기화는 원치 않는 순간에 성능에 영향을 줄 수도 있다.

- 경우에 따라 특별히 초기화 된 지연 초기화 객체를 처리해야하거나 예외가 발생할 수도 있다.

 

Eager loading

장점

- 지연된 초기화와 관련된 성능 영향 없음

단점

- 긴 초기 로딩 시간

- 불필요한 데이터를 너무 많이 로드하면 성능에 영향을 줄 수도 있다.