cs/ODOQ

[ODOQ] 지연로딩, 즉시로딩

icodesiuuuu 2025. 1. 19. 02:36

[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