캐싱 & 캐싱 전략

이진일·2026년 5월 12일
post-thumbnail

⚡캐싱(Caching)의 이해와 필요성

Redis를 활용하는 가장 대표적인 사례 중 하나가 바로 **캐싱(Caching)입니다. 캐싱이란 무엇이며, 왜 현대 웹 서비스에서 필수적인지 알아보겠습니다.


1. 캐싱(Caching)이란?

캐싱은 자주 사용되는 데이터를 원본 저장소(DB 등)보다 훨씬 빠른 임시 저장소(Cache)에 보관하여, 시스템의 응답 속도를 높이고 자원 소모를 줄이는 기법을 말합니다.

  • 원리: 디스크 기반의 데이터베이스보다 속도가 압도적으로 빠른 인메모리 기반의 Redis에 데이터를 복사해두고 사용하는 방식입니다.
  • 장점: 데이터베이스 서버의 부하를 줄이고, 사용자에게는 훨씬 빠른 응답 속도를 제공합니다.

2. 캐싱 관련 주요 용어

캐시를 효율적으로 관리하기 위해서는 아래 세 가지 개념을 반드시 이해해야 합니다.

  • 캐시 적중(Cache Hit): 캐시에서 원하는 데이터를 바로 찾아낸 경우입니다. 시스템이 가장 선호하는 상태입니다.
  • 캐시 누락(Cache Miss): 캐시에 데이터가 없어 결국 원본 DB를 조회해야 하는 경우입니다.
  • 삭제 정책(Eviction Policy): 캐시 공간이 부족할 때, 어떤 데이터를 먼저 지워 새로운 공간을 확보할지에 대한 규칙입니다.

💡핵심 과제: 캐시 적중률을 높이고 누락을 최소화할 수 있는 적절한 보관 전략을 세우는 것이 중요합니다.


3. 상황에 따른 캐싱 전략

데이터를 언제 캐시에 넣고, 언제 원본을 갱신할지에 따라 크게 세가지 전략으로 나뉩니다.

1) Cache-Aside (Lazy Loading)

데이터를 조회할 때 캐시를 먼저 확인하는 가장 일반적인 전략입니다.

  • 동작: 캐시에 있으면 바로 반환(Hit), 없으면 DB 조회 후 캐시에 저장(Miss)
  • 장점: 실제로 사용되는 데이터만 캐시에 보관되어 효율적입니다.
  • 단점: 데이터가 DB와 캐시 사이에서 불일치할 수 있으며, 첫 조회 시 항상 Cache Miss가 발생해 응답이 느릴 수 있습니다.

2) Write-Through

데이터를 저장할 때 캐시와 DB에 동시에 기록하는 전략입니다.

  • 장점: 캐시가 항상 최신 상태를 유지하므로 데이터 일관성이 높습니다.
  • 단점: 쓰기 작업마다 두 곳에 기록해야 하므로 전체적인 쓰기 성능이 느려질 수 있고, 자주 쓰지 않는 데이터까지 캐시를 점유하게 됩니다.

3) Write-Behind (Write-Back)

캐시에 먼저 저장한 뒤, 일정 시간이나 일정량이 모이면 DB에 한꺼번에 반영하는 전략입니다.

  • 장점: 쓰기가 굉장히 빈번한 서비스에서 DB의 쓰기 부하를 획기적으로 줄일 수 있습니다.
  • 단점: DB에 반영되기 전에 캐시 서버에 장애가 발생하면 데이터가 소실될 위험이 있습니다.

💡 요약

캐싱은 단순히 속도를 높이는 것을 넘어, 서비스의 확장성과 안정성을 결정짓는 중요한 요소입니다. 서비스의 특성(읽기가 많은지, 쓰기가 많은지)에 맞춰 최적의 전략을 선택하는 것이 중요합니다!

0개의 댓글