[One Day One Question]
지연로딩과 즉시로딩에 대해서 설명해 주세요.
지연 로딩(Lazy Loading)과 즉시 로딩(Eager Loading)은 주로 데이터베이스나 웹 애플리케이션에서 데이터를 로드하는 방법을 설명할 때 사용되는 용어입니다.
1. 지연 로딩(Lazy Loading)
개념:
- 필요할 때 데이터를 로드하는 방식.
- 객체를 처음 사용할 때(혹은 요청 시점)에 데이터를 가져옵니다.
특징:
- 초기 로드 시간이 짧아집니다. (필요한 데이터만 불러오기 때문)
- 불필요한 데이터 로드를 방지할 수 있어 메모리 효율적.
- 하지만, 데이터를 요청하는 시점마다 추가적인 쿼리가 실행될 수 있습니다.
예시:
- 웹페이지에서 이미지를 스크롤로 보여줄 때, 스크롤 위치에 따라 이미지를 로드하는 방식.
- 관계형 데이터베이스에서, 연관된 엔티티를 처음에는 로드하지 않고 필요할 때만 조회하는 방식.
장점:
- 초기 성능이 향상됩니다. (불필요한 데이터 로드 X)
- 메모리 소비를 줄일 수 있습니다.
단점:
- 추가 쿼리 비용이 발생할 수 있어 성능 저하를 초래할 수 있습니다.
- 구현 복잡도가 높을 수 있습니다.
2. 즉시 로딩(Eager Loading)
개념:
- 초기 로드 시점에 관련된 모든 데이터를 한 번에 가져오는 방식.
- 데이터 접근 시 추가적인 데이터 로드가 필요하지 않습니다.
특징:
- 관련된 데이터를 미리 모두 로드하므로 이후 요청 시 추가 쿼리를 실행하지 않습니다.
- 초기 로드 시간이 길어질 수 있지만, 이후 데이터 접근은 빠릅니다.
예시:
- 관계형 데이터베이스에서, 한 엔티티를 로드하면서 연관된 모든 엔티티를 한 번에 로드하는 방식.
장점:
- 이후 추가적인 쿼리 비용이 발생하지 않아 성능이 안정적.
- 코드가 간단해질 수 있습니다.
단점:
- 초기 로드 시, 불필요한 데이터를 미리 가져올 가능성이 있어 메모리를 낭비할 수 있습니다.
- 초기 로드 시간이 길어질 수 있습니다.
'cs > ODOQ' 카테고리의 다른 글
[ODOQ] CSRF 공격 (0) | 2025.02.21 |
---|---|
[ODOQ] 캐시 스탬피드(Cache Stampede) (0) | 2025.01.23 |
[ODOQ] 스케일 업(Scale-Up) , 스케일 아웃(Scale-Out) (0) | 2025.01.17 |
[ODOQ] ACID란?(데이터베이스) (0) | 2025.01.16 |
[ODOQ] REST란? (1) | 2025.01.15 |