Home 캐시 전략
Post
Cancel

캐시 전략

1. 읽기 주도형 캐시 (Read-Heavy Caching)

  • 특징: 주로 데이터 읽기 연산이 많은 환경에서 사용됩니다. 데이터가 빈번히 읽혀지지만 자주 변경되지 않을 때 유리합니다.
  • 장점: 데이터 접근 시간을 대폭 줄여주고, 데이터베이스 부하를 감소시킵니다.
  • 단점: 데이터가 변경되었을 때 캐시 일관성 유지가 중요해지며 관리가 복잡해질 수 있습니다.
  • 예시: 뉴스 사이트의 기사 콘텐츠, 제품 정보 페이지 등
  • Cache-Aside (Lazy Loading):
    • 데이터 요청이 있을 때 캐시를 확인하고, 캐시에 데이터가 없는 경우 데이터베이스에서 데이터를 가져와 캐시에 저장한 후 응답합니다.
    • 장점: 데이터가 필요할 때만 캐싱되므로 캐시의 효율성이 높고, 캐시 크기를 최소화할 수 있습니다.
    • 단점: 새로운 데이터에 대한 첫 요청은 느릴 수 있으며, 데이터가 변경될 때 캐시 일관성을 관리해야 합니다.
  • Read-Through Cache:
    • 애플리케이션은 캐시만을 통해 데이터를 읽으며, 캐시 미스가 발생하면 캐시 레이어가 데이터베이스에서 데이터를 가져와 캐시에 저장한 후 응답합니다.
    • 장점: 애플리케이션 코드가 간결해지고, 캐시 관리가 자동화됩니다.
    • 단점: 구현이 복잡할 수 있으며, 캐시 레이어의 성능이 전체 시스템 성능에 큰 영향을 미칩니다.
  • Multi-Level Caching:
    • 여러 캐시 레벨(예: 로컬 캐시, 분산 캐시, CDN)을 사용하여 데이터를 저장합니다.
    • 장점: 데이터 접근 시간과 네트워크 비용을 최적화할 수 있습니다.
    • 단점: 복잡한 캐시 계층과 일관성 관리가 필요합니다.

2. 쓰기 주도형 캐시 (Write-Heavy Caching)

  • 특징: 주로 데이터 쓰기 연산이 많은 환경에서 사용됩니다. 데이터가 자주 갱신되거나 쓰기 연산이 많을 때 유리합니다.
  • 장점: 쓰기 연산의 부하를 분산시키고, 전체적인 쓰기 성능을 향상시킵니다.
  • 단점: 데이터 일관성과 복구 메커니즘이 중요해집니다. 장애 발생 시 데이터 손실 위험이 있을 수 있습니다.
  • 예시: 소셜 미디어의 타임라인 업데이트, 실시간 분석 시스템 등
  • Write-Through Cache: 데이터를 캐시와 백엔드 데이터 저장소에 동시에 씁니다. 이는 데이터 일관성을 유지하는 데 유용하지만 쓰기 지연이 발생할 수 있습니다.
  • Write-Around Cache: 데이터를 바로 백엔드 데이터 저장소에 쓰고, 캐시는 읽기에만 사용합니다. 이 방법은 불필요한 캐시 쓰기를 줄여줍니다.
  • Write-Back Cache: 데이터를 먼저 캐시에 쓰고, 나중에 일괄적으로 백엔드 데이터 저장소에 씁니다. 이는 쓰기 연산을 빠르게 만들지만, 데이터 손실 위험이 있을 수 있습니다.

3. 적응형 캐시 (Adaptive Caching)

  • 특징: 사용 패턴이나 데이터 접근 빈도를 기반으로 캐시를 자동 조정합니다.
  • 장점: 애플리케이션의 변화하는 요구사항에 자동으로 적응하여 최적화된 성능을 제공합니다.
  • 단점: 캐시 알고리즘의 복잡도가 증가하며, 예측이 틀렸을 때 성능 저하의 위험이 있습니다.
  • 예시: 사용자 맞춤형 콘텐츠 추천, 동적 웹사이트 등
  • Self-Tuning Caches: 애플리케이션의 사용 패턴을 분석하여 자동으로 캐시 사이즈나 캐시된 아이템들을 조정합니다.
  • Machine Learning-Based Caching: 기계 학습 모델을 사용하여 어떤 데이터를 캐시할지 예

4. 분산 캐시 (Distributed Caching)

  • 특징: 캐시를 여러 서버에 걸쳐 분산하여 저장합니다. 데이터와 부하를 분산시켜 고가용성과 확장성을 제공합니다.
  • 장점: 높은 가용성, 확장성 및 부하 분산이 가능합니다.
  • 단점: 네트워크 지연, 데이터 일관성 유지가 복잡해질 수 있습니다.
  • 예시: 대형 e-commerce 사이트, 대규모 온라인 게임 등

5. 캐시 무효화 (Cache Invalidation)

  • 특징: 캐시된 데이터가 더 이상 유효하지 않을 때 캐시를 제거하거나 갱신하는 방법입니다.
  • 장점: 데이터 일관성을 유지할 수 있습니다.
  • 단점: 적절한 무효화 전략이 필요하며, 잘못 관리될 경우 성능 저하나 데이터 불일치가 발생할 수 있습니다.
  • 예시: 사용자 프로필 정보 업데이트, 가격 정보 변경 등
  • Time-based Expiration: 데이터를 일정 시간 동안만 캐시에 저장합니다.
  • Change-based Expiration: 데이터가 변경되었을 때 캐시를 무효화합니다. 이는 데이터 일관성을 유지하는 데 도움을 줍니다.

6. Content Delivery Network (CDN)

  • 특징: 정적 컨텐츠를 전 세계에 분산된 서버 네트워크에 캐시하여 빠르게 제공합니다.
  • 장점: 글로벌 사용자에게 낮은 지연시간으로 컨텐츠를 제공할 수 있습니다.
  • 단점: 주로 정적 컨텐츠에 한정되며, 동적 컨텐츠 처리에는 한계가 있을 수 있습니다.
  • 예시: 웹사이트의 이미지, 비디오 파일 등의 정적 자원

각각의 캐시 전략은 애플리케이션의 특정 요구 사항과 상황에 따라 선택되며, 때로는 여러 전략을 조합하여 사용하기도 합니다. 전략을 선택할 때는 애플리케이션의 성능, 확장성, 데이터 일관성, 복구 능력 등을 고려해야 합니다.

제네릭 타입

코틀린 문법 총 정리 (1) JAVA, Kotlin 언어들의 특징