대용량 트래픽 환경에서 데이터베이스의 읽기 성능을 향상시키기 위한 Read Replica(읽기 전용 복제본)의 동작 원리와 주요 고려사항에 대해 설명해 주세요.
힌트 · 마스터-슬레이브 구조, 데이터 동기화 방식, 복제 지연(replication lag) 문제를 중심으로 설명하고, 이를 해결하기 위한 방법을 언급합니다.
모범답안
Read Replica는 대용량 트래픽 환경에서 데이터베이스 읽기 성능을 향상시키는 효과적인 방법입니다. 마스터 데이터베이스의 변경 사항을 비동기적으로 복제하여 읽기 전용 데이터베이스를 여러 개 운영하는 방식이죠.
동작 원리는 간단합니다. 마스터 데이터베이스에 쓰기 작업이 발생하면, 해당 변경 사항이 로그에 기록되고, Read Replica는 이 로그를 읽어 자신의 데이터베이스에 반영합니다. 이렇게 분산된 Read Replica를 통해 읽기 요청을 분산 처리하여 마스터 데이터베이스의 부하를 줄일 수 있습니다.
주요 고려사항은 복제 지연(Replication Lag)입니다. 비동기 복제 방식이기 때문에 마스터 데이터베이스의 변경 사항이 Read Replica에 즉시 반영되지 않아 데이터 불일치가 발생할 수 있습니다. 이를 해결하기 위해 읽기 요청을 분산하는 로드 밸런싱 전략을 세울 때, 사용자 세션 정보를 활용하여 특정 사용자의 읽기 요청은 항상 동일한 Read Replica로 보내거나, 중요한 데이터는 마스터 데이터베이스에서 읽도록 설정할 수 있습니다. 또한, Read Replica의 장애 감지 및 자동 복구 시스템을 구축하여 서비스의 안정성을 확보하는 것도 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 대용량 트래픽 설계 면접 질문
- 데이터베이스의 데이터가 너무 많아질 때 발생하는 성능 문제를 해결하기 위한 방법 중 하나인 '샤딩(Sharding)' 또는 '파티셔닝(Partitioning)'의 개념을 설명해주세요.
- 읽기(Read) 작업이 많은 서비스에서 데이터베이스의 부하를 줄이기 위해 '읽기 전용 복제본(Read Replicas)'을 활용합니다. 이 방식의 목적과 장점은 무엇인가요?
- 여러 대의 서버로 트래픽을 분산하는 로드 밸런서의 주요 역할과 일반적인 로드 밸런싱 알고리즘 몇 가지를 설명하고, 각 알고리즘이 어떤 상황에 적합한지 비교 설명해 주세요.
- 웹 서비스에서 캐싱(Caching)을 적용할 때 고려할 수 있는 대표적인 캐싱 전략(예: Cache-aside, Write-through, Write-back)들을 설명하고, 각 전략이 어떤 상황에 적합한지 비교해 주세요.
- 대용량 트래픽을 처리하는 분산 시스템에서 메시지 큐(Message Queue)가 필요한 이유와 주요 역할에 대해 설명하고, 메시지 큐 사용 시 얻을 수 있는 이점과 고려할 점을 이야기해 주세요.
- 시스템 확장 방식인 수평 확장(Horizontal Scaling)과 수직 확장(Vertical Scaling)의 개념을 설명하고, 각각의 장단점 및 실제 서비스 환경에서 어떤 기준으로 선택하게 되는지 비교 설명해 주세요.