CAP Theorem의 정의 및 수학적 배경
CAP Theorem은 분산 데이터 저장소가 세 가지 속성 중 최대 두 가지만 동시에 보장할 수 있다는 원리입니다. 2000년 Eric Brewer가 PODC(ACM Symposium on Principles of Distributed Computing)에서 처음 제시했으며, 2002년 MIT의 Seth Gilbert와 Nancy Lynch가 형식적 증명을 완성했습니다. 이는 단순한 기술적 제약이 아니라 비동기 네트워크 모델에서의 수학적 불가능성입니다.
세 가지 속성과 트레이드오프
- 일관성(Consistency): 모든 노드가 동일한 데이터를 동일한 시간에 봅니다. 쓰기 연산이 발생한 후 모든 읽기는 최신 값 또는 오류를 반환해야 합니다.
- 가용성(Availability): 모든 요청이 반드시 응답을 받습니다. 요청은 항상 성공 또는 실패 응답을 받아야 하며, 타임아웃이 없습니다.
- 분할 내성(Partition Tolerance): 네트워크 분할 상황에서도 시스템이 계속 동작합니다. 노드 간 메시지 손실이나 지연이 발생해도 작동을 유지합니다.
실무적 설계 전략
네트워크 분할은 불가피하므로 CP(일관성+분할내성) 또는 AP(가용성+분할내성)를 선택합니다. CP 시스템(예: 전통적 관계형 데이터베이스)은 분할 시 불일치 데이터 반환을 거부해 가용성을 희생하고, AP 시스템(예: Cassandra)은 계속 응답하되 결과적 일관성을 제공합니다. 실제 설계에서는 데이터 유형, 작업 종류, 지리적 위치에 따라 다중 트레이드오프를 혼합 적용하는 세분화된 방식이 효과적입니다.