즉시로딩과 지연로딩은 ORM(Object-Relational Mapping)에서 데이터를 가져오는 방식을 설명하는 용어입니다.
즉시로딩 (Eager Loading)
- 즉시로딩은 관련된 모든 데이터를 한 번에 로드하는 방식입니다. 주로 관련된 데이터가 항상 함께 사용되는 경우 유용합니다.
- 여러 개의 엔티티가 자주 함께 사용될 때 유용하며, 쿼리 수행 횟수를 줄여 성능을 향상시킬 수 있습니다.
- 일대다 관계에서는 일부 엔티티를 항상 함께 사용할 때 즉시로딩을 고려할 수 있습니다.
지연로딩 (Lazy Loading)
- 지연로딩은 데이터가 실제로 필요한 시점에만 로드하는 방식입니다. 주로 관련된 데이터가 사용되지 않는 경우에 유용합니다.
- 많은 양의 데이터를 로드하지 않고 필요한 데이터만 로드하므로, 네트워크 트래픽을 줄이고 메모리 사용을 최적화할 수 있습니다.
- 일대다 또는 다대다 관계에서는 대부분의 경우 지연로딩이 기본적으로 사용됩니다.
정리
-
즉시로딩과 지연로딩은 각각의 장단점이 있으며, 사용 사례에 따라 상황에 맞게 선택해야 합니다.
-
보통은 지연로딩을 기본으로 사용합니다. 대부분의 상황에서 적합하며, 데이터를 효율적으로 관리할 수 있는 방법 중 하나이기 때문입니다.
-
성능 문제가 발생할 때는 즉시로딩을 고려할 수 있습니다. 특히 연관된 데이터가 항상 함께 사용될 때나 데이터가 적을 때는 즉시로딩을 고려할 수 있습니다.