패스잇
백엔드 개발 · 중급

분산 환경에서 캐시를 사용할 때 발생할 수 있는 데이터 불일치(Stale Data) 문제의 원인을 설명하고, 이를 해결하기 위한 일반적인 방법들을 제시해 주세요.

힌트 · 캐시 무효화 전략, TTL 설정, 버전 관리, 메시지 큐를 통한 동기화 등 다양한 접근 방식을 고려하여 설명합니다.

캐시 일관성쓰기 정책 (Write-Through, Write-Back)캐시 무효화TTL (Time-To-Live)분산 락 (Distributed Lock)

모범답안

분산 환경에서 캐시를 사용할 때 데이터 불일치 문제는 흔히 발생합니다. 주된 원인은 여러 캐시 인스턴스가 데이터 원본과 동기화되지 못하기 때문입니다. 예를 들어, 데이터 원본이 업데이트되었지만 캐시가 즉시 갱신되지 않으면 캐시는 오래된 데이터를 반환하게 됩니다.

이 문제를 해결하기 위한 방법은 여러 가지가 있습니다. 첫째, TTL(Time-To-Live)을 설정하여 캐시된 데이터가 일정 시간 후에 자동으로 만료되도록 할 수 있습니다. 둘째, Write-Through 캐시를 사용하여 데이터가 캐시와 데이터 원본에 동시에 쓰여지도록 할 수 있습니다. 셋째, 캐시 무효화 전략을 사용하여 데이터가 변경될 때 관련 캐시 항목을 삭제할 수 있습니다. 메시지 큐를 사용하여 캐시 업데이트를 비동기적으로 처리하거나, 분산 락을 사용하여 동시 업데이트를 제어하는 방법도 있습니다. 각 방법은 시스템의 요구 사항과 성능 목표에 따라 적절하게 선택해야 합니다.

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

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

함께 보는 캐시 (Redis) 면접 질문

← 캐시 (Redis) 면접 질문 전체 보기