CAP의 현실적 해석

CAP는 고정 진영표라기보다, 분산 상황에서 어디에 더 무게를 둘지 정하는 운영 선택에 가깝습니다.

네트워크 분할이 생기면 일관성과 가용성을 동시에 100% 보장할 수는 없습니다. 그래서 실무에서는 시스템을 CP/AP/CA로 딱 잘라 외우기보다, 같은 복제 구조 안에서 어느 수준까지 동기화하고 응답할지를 조절해 씁니다.

공통 전제
분산 시스템은 장애 상황에서 항상 trade-off를 만납니다.
핵심은 “무엇을 포기하느냐”보다 어느 정도까지 허용하느냐입니다.

교과서식 분류로 보면

시스템을 CP, AP, CA 중 하나로 놓으면 이해는 쉽지만, 실제 운영에서 조절되는 여지가 잘 보이지 않습니다.

CP
가용성을 일부 포기하고, 충돌보다 같은 값 유지를 우선합니다.
AP
일단 응답을 유지하고, 노드 간 값은 나중에 수렴할 수 있습니다.
CA
분산이 없거나 분할을 따로 다루지 않는 환경에서만 둘 다 쉽게 만족합니다.

실제로는 같은 시스템 안에서 조절

예를 들어 복제본 3개인 분산 DB는 읽기·쓰기 성공 조건을 바꿔 일관성과 응답성을 움직일 수 있습니다.

더 빠른 응답 · 더 높은 가용성 더 엄격한 동기화 · 더 높은 일관성
ONE QUORUM ALL

ONE

한 노드만 성공하면 응답. 빠르지만 오래된 값을 볼 수 있습니다.

QUORUM

과반수 확인 후 응답. 속도와 일관성의 균형점입니다.

ALL

모든 복제본 반영 후 응답. 가장 엄격하지만 느리고 장애에 민감합니다.

학습 포인트

CAP는 시스템의 영구한 성격표가 아니라 분산 장애 상황에서의 우선순위 모델입니다. 현대 시스템은 이 우선순위를 설정값과 복제 전략으로 연속적으로 조절하므로, “무조건 CP냐 AP냐”보다 어떤 상황에서 어느 수준의 일관성을 요구하는지를 보는 편이 더 실용적입니다.