시스템 설계 · 중급
웹 서비스에서 캐싱(Caching)을 적용할 때 고려할 수 있는 대표적인 캐싱 전략(예: Cache-aside, Write-through, Write-back)들을 설명하고, 각 전략이 어떤 상황에 적합한지 비교해 주세요.
힌트 · 데이터 일관성, 쓰기 성능, 읽기 성능 측면에서 각 전략의 장단점을 비교하고 적절한 사용 사례를 제시합니다.
Cache-asideWrite-throughWrite-backCache InvalidationConsistency
모범답안
웹 서비스 캐싱 전략은 크게 Cache-aside, Write-through, Write-back 세 가지를 고려할 수 있습니다.
Cache-aside는 애플리케이션이 직접 캐시를 관리하는 방식입니다. 데이터 요청 시 캐시에 있으면 반환하고, 없으면 DB에서 가져와 캐시에 저장 후 반환합니다. 읽기 성능이 좋고, 캐시 장애 시에도 DB로 대체 가능하지만, 캐시 미스 시 레이턴시가 증가할 수 있습니다. 데이터 변경 시 캐시를 무효화하는 전략이 중요합니다.
Write-through는 데이터 변경 시 캐시와 DB에 동시에 쓰는 방식입니다. 데이터 일관성이 보장되지만, 쓰기 성능이 저하될 수 있습니다. 읽기 성능은 Cache-aside와 유사합니다.
Write-back은 데이터 변경 시 캐시에만 쓰고, 일정 주기 또는 조건에 따라 DB에 반영하는 방식입니다. 쓰기 성능이 매우 좋지만, 캐시 장애 시 데이터 손실 위험이 있고, 데이터 일관성 문제가 발생할 수 있습니다.
일반적으로 읽기 위주의 서비스에는 Cache-aside, 데이터 일관성이 중요한 서비스에는 Write-through, 쓰기 성능이 중요한 서비스에는 Write-back을 고려할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 대용량 트래픽 설계 면접 질문
- 읽기(Read) 작업이 많은 서비스에서 데이터베이스의 부하를 줄이기 위해 '읽기 전용 복제본(Read Replicas)'을 활용합니다. 이 방식의 목적과 장점은 무엇인가요?
- 여러 대의 서버로 트래픽을 분산하는 로드 밸런서의 주요 역할과 일반적인 로드 밸런싱 알고리즘 몇 가지를 설명하고, 각 알고리즘이 어떤 상황에 적합한지 비교 설명해 주세요.
- 대용량 트래픽 환경에서 데이터베이스의 읽기 성능을 향상시키기 위한 Read Replica(읽기 전용 복제본)의 동작 원리와 주요 고려사항에 대해 설명해 주세요.
- 대용량 트래픽을 처리하는 분산 시스템에서 메시지 큐(Message Queue)가 필요한 이유와 주요 역할에 대해 설명하고, 메시지 큐 사용 시 얻을 수 있는 이점과 고려할 점을 이야기해 주세요.
- 시스템 확장 방식인 수평 확장(Horizontal Scaling)과 수직 확장(Vertical Scaling)의 개념을 설명하고, 각각의 장단점 및 실제 서비스 환경에서 어떤 기준으로 선택하게 되는지 비교 설명해 주세요.
- 대규모 웹 서비스를 설계할 때 서비스가 Stateless(무상태)여야 하는 이유와 Stateless 서비스를 구현하기 위한 일반적인 접근 방식에 대해 설명해 주세요.