패스잇
시스템 설계 · 심화

대규모 분산 시스템에서 캐시를 효과적으로 활용하기 위해 캐시 무효화(Cache Invalidation) 전략은 매우 중요합니다. Read-through, Write-through, Write-back과 같은 기본적인 캐싱 전략 외에, 분산 환경에서 캐시 일관성을 유지하기 위한 구체적인 무효화 기법(예: Cache-aside with TTL, Publisher/Subscriber model, Versioning)들을 설명하고, 각 전략의 장단점 및 적합한 사용 시나리오를 비교 분석해주세요.

힌트 · 캐시 무효화는 캐시된 데이터와 원본 데이터 간의 일관성을 유지하는 핵심입니다. TTL, pub/sub, 버전 관리, MVCC(Multi-Version Concurrency Control) 등 다양한 기법이 있으며, 각 기법은 캐시 일관성, 성능, 구현 복잡성 면에서 트레이드오프를 가집니다.

Cache-asideTTL(Time-To-Live)Publisher/SubscriberVersioning캐시 일관성

모범답안

분산 시스템에서 캐시 무효화는 데이터 일관성을 유지하는 데 매우 중요합니다. 기본적인 Read-through, Write-through, Write-back 외에도 몇 가지 전략이 있습니다.

Cache-aside with TTL은 가장 간단합니다. 캐시에 데이터를 저장할 때 TTL을 설정하고, TTL이 만료되면 캐시에서 데이터를 삭제합니다. 구현은 간단하지만, TTL 설정에 따라 데이터가 stale해질 수 있습니다.

Publisher/Subscriber 모델은 데이터 변경 시 발행자가 캐시 서버에 무효화 메시지를 보내고, 구독자가 이를 받아 캐시를 업데이트하는 방식입니다. 실시간성이 높지만, 메시지 전달 실패 시 일관성이 깨질 수 있습니다.

Versioning은 데이터에 버전을 부여하고, 데이터 변경 시 버전을 업데이트하는 방식입니다. 캐시된 데이터와 원본 데이터의 버전을 비교하여 일치하지 않으면 캐시를 갱신합니다. 복잡하지만, 강력한 일관성을 보장합니다.

각 전략은 일관성, 성능, 구현 복잡도 면에서 트레이드오프가 있습니다. TTL은 읽기 빈도가 높은 데이터에, Pub/Sub은 실시간성이 중요한 데이터에, Versioning은 높은 일관성이 필요한 데이터에 적합합니다.

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

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

함께 보는 분산 시스템 면접 질문

← 분산 시스템 면접 질문 전체 보기