Lazy Loading

December 11, 2020 · View on GitHub

Krzysztof Grzybek

Lazy loading은 실제로 필요할 때까지 데이터 로드를 지연하는 패턴입니다. 데이터베이스에서 데이터를 Lazy loading하는 것은 보통 적절한 프록시 클래스를 구현하여 수행됩니다.

데이터베이스에서 많은 데이터를 가져와야하는 객체가 있는 경우 유용할 수 있지만 모든 경우에 모든 데이터가 필요한 것은 아닙니다. 객체 초기화 단계와 메모리 사용량을 줄일 수 있습니다.

반면에 작은 데이터를 얻기 위해 많은 데이터베이스 쿼리가 발생하여 성능 문제가 발생할 수 있습니다. Lazy loading은 매우 유출된 추상화이기 때문에 그렇게 어렵지 않습니다.

아마도 더 중요한 또 다른 함정은 일관성 없는 데이터로 작업할 수 있다는 것입니다. 먼저 사용자 데이터를 로드한 다음 잠시 후 사용자 주문을 로드한 경우 주문 데이터가 다른 사람에 의해 이미 수정되지 않았는지 확인할 수 없습니다.