SH380 Logo
2025-03-31

캐시 무효화 전략

#CS

csgal-logo

1. 이론

2. 주요 캐시 무효화 전략

TTL(Time-To-Live)캐시 항목에 유효기간 설정, 만료 시 자동 삭제구현 간단, 자동화최신성 보장 어렵고 TTL 짧으면 캐시 효율 감소Redis Key TTL, Memcached
LRU(Least Recently Used)오래된 캐시 항목부터 제거메모리 효율, 최신 데이터 유지삭제 기준 단순, 최신성 보장 아님서버 메모리 캐시
Write-through원본 DB에 쓰기 시 동시에 캐시 업데이트데이터 항상 최신쓰기 속도 느림Redis + DB 연동
Write-back / Write-behind캐시만 먼저 갱신, 일정 시간 후 DB 반영읽기 성능 우수데이터 손실 가능대규모 캐시 시스템
Explicit Invalidation애플리케이션에서 명시적으로 캐시 삭제제어 용이코드 복잡, 실수 위험특정 이벤트 발생 시 캐시 삭제
Event-driven Invalidation데이터 변경 이벤트 발생 시 캐시 삭제실시간성 보장이벤트 처리 추가 필요Kafka 이벤트 기반 캐시 무효화

3. 활용

4. 심화

cache-graph

5. 면접 대비 핵심 포인트

6. 면접 연습

Q1. 캐시 무효화가 필요한 이유는?
A: 원본 데이터 변경 시 캐시가 최신 상태가 아니면 Stale Data 문제가 발생하기 때문에 필요합니다.

Q2. TTL 전략의 장단점은?
A: 장점: 구현이 간단하고 자동 무효화. 단점: 최신성 보장 어려움, TTL 짧으면 캐시 효율 감소.

Q3. Write-through와 Write-back 차이는?
A: Write-through: DB와 캐시 동시 업데이트 → 최신성 보장. Write-back: 캐시만 먼저 업데이트 후 일정 시간 후 DB 반영 → 쓰기 성능 향상.

Q4. 캐시 스탬프(Cache Stampede)란?
A: 여러 요청이 동시에 만료된 캐시에 접근 → DB로 요청 폭주 현상.

Q5. 분산 캐시 환경에서 무효화 전략은 어떻게 달라지나요?
A: 여러 서버 캐시 동기화를 위해 Event-driven Invalidation, Pub/Sub, 메시지 큐 등을 사용하여 실시간 무효화 처리.

7. 마무리

목록으로 돌아가기