CAP 정리란?
Eric Brewer가 제안한 정리. 네트워크 분할(Partition) 상황에서 분산 시스템은 일관성(C)과 가용성(A) 중 하나를 포기해야 한다는 의미다.
3가지
- Consistency — 모든 노드가 같은 데이터
- Availability — 모든 요청에 응답
- Partition tolerance — 네트워크 장애에도 동작
실무 분류
- CP — MongoDB(기본), HBase, ZooKeeper
- AP — Cassandra, DynamoDB, CouchDB
- CA — 사실상 단일 노드 (분산 아님)
현대적 해석
실제론 파티션이 흔하지 않은 구간이 길어, PACELC 정리가 더 현실적이라는 의견도 많다.