백엔드 개발 · 심화
CAP 정리(CAP Theorem)에 대해 설명하고, 실제 시스템에서의 트레이드오프를 예를 들어 설명해주세요.
힌트 · Consistency, Availability, Partition Tolerance 중 2가지만 선택 가능함을 설명해보세요.
CAP 정리일관성(Consistency)가용성(Availability)분할 내성(Partition Tolerance)트레이드오프
모범답안
CAP 정리는 분산 시스템이 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance) 세 가지 속성을 동시에 만족할 수 없다는 것을 말합니다. 네트워크 분할이 발생했을 때, 시스템은 일관성을 유지하거나 가용성을 유지하는 둘 중 하나를 선택해야 합니다.
예를 들어, 분산 데이터베이스에서 사용자가 데이터를 읽을 때, 모든 노드가 항상 최신 데이터를 가지고 있도록 보장하는 것이 일관성입니다. 반면, 가용성은 시스템이 항상 요청에 응답할 수 있음을 의미합니다. 만약 네트워크 분할로 인해 일부 노드와 통신이 불가능해지면, 일관성을 유지하려면 해당 노드에 대한 요청을 거부해야 하므로 가용성이 떨어집니다. 반대로 가용성을 유지하기 위해 응답한다면, 최신 데이터가 아닌 데이터를 반환할 수 있어 일관성이 깨질 수 있습니다. 따라서 실제 시스템에서는 이 세 가지 중 두 가지만 선택적으로 보장하게 됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 데이터베이스 면접 질문
- 데이터베이스 락(Lock)의 종류와 데드락(Deadlock)이 발생하는 상황, 해결 방법에 대해 설명해주세요.
- 데이터베이스 파티셔닝(Partitioning)과 샤딩(Sharding)의 차이점과 사용 사례를 설명해주세요.
- 데이터베이스 복제(Replication)의 종류와 장단점에 대해 설명해주세요.
- 데이터베이스 마이그레이션 전략과 무중단 스키마 변경 방법에 대해 설명해주세요.
- 분산 데이터베이스 환경에서 2단계 커밋(2PC) 프로토콜의 한계점은 무엇이며, 이를 극복하기 위한 대안적인 분산 합의 알고리즘(예: Paxos, Raft)이 어떻게 동작하고 어떤 장단점을 가지는지 설명해 주십시오.