패스잇
시스템 설계 · 심화

수백만 명의 동시 사용자가 접근하는 서비스에서 캐시 미스(cache miss)율을 최소화하고 캐시 일관성을 유지하기 위한 다계층 캐싱 전략(Multi-layered Caching)과 캐시 무효화(Cache Invalidation) 기법에 대해 설명하고, 특히 Stale Data 문제 해결 방안을 포함하여 설명해 주세요.

힌트 · CDN, Reverse Proxy, In-memory Cache 등 계층별 역할과 Write-through, Write-back, Time-based Expiration, Cache-aside 패턴 등을 고려해야 합니다.

CDNRedisCache InvalidationTTL (Time-To-Live)Write-Through/Write-Back

모범답안

수백만 사용자를 위한 다계층 캐싱 전략은 성능과 일관성을 모두 잡는 것이 중요합니다.

우선 CDN을 통해 정적 콘텐츠를 사용자에게 최대한 가까운 곳에서 제공하여 네트워크 지연을 줄입니다. 그 다음, Reverse Proxy (예: Nginx)를 사용하여 자주 요청되는 콘텐츠를 캐싱하고, Origin 서버의 부하를 줄입니다.

Origin 서버 앞단에는 Redis와 같은 In-memory 캐시를 둡니다. Write-Through 전략을 사용하여 데이터 변경 시 캐시와 DB를 동시에 업데이트하여 데이터 일관성을 유지합니다.

캐시 무효화는 TTL 기반 만료와 Cache-Aside 패턴을 혼합하여 사용합니다. TTL로 자동 만료를 설정하되, 데이터 변경 시에는 캐시를 직접 삭제하여 Stale Data 문제를 해결합니다. 만약 데이터 변경 빈도가 높다면, Write-Back 전략과 함께 이벤트 기반 캐시 무효화 시스템을 구축하여 캐시 일관성을 더욱 강화할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 대용량 트래픽 설계 면접 질문

← 대용량 트래픽 설계 면접 질문 전체 보기