수학·컴퓨터

분산 데이터베이스의 CAP 정리와 데이터 일관성 한계

네트워크 장애 속에서 일관성, 가용성, 분할 내구성이라는 세 가지 이상을 동시에 완벽하게 달성할 수 없음을 규명한 분산 컴퓨팅의 근본 법칙 CAP 정리와 PACELC 확장을 분석한다.

편집부 · 2026년 11월 2일 · 읽는 데 5분

그물망 형태로 연결되어 데이터를 동기화하는 분산 서버 노드 클라우드 구조
그물망 형태로 연결되어 데이터를 동기화하는 분산 서버 노드 클라우드 구조

단일 대형 메인프레임 컴퓨터로 모든 데이터를 처리하던 시대를 지나, 수천수만 대의 독립된 서버가 전 세계 클라우드 네트워크에 분산되어 협력하는 현대 분산 시스템의 시대가 열렸다. 사용자들은 지구 반대편의 데이터센터에 접속하면서도 단 1밀리초의 지연도 없이 최신 데이터를 안전하게 조회하고 수정하기를 기대한다. 그러나 분산 환경에서 물리적 서버 간 통신은 필연적으로 지연되거나 단절될 수밖에 없으며, 이러한 물리적 현실은 시스템 설계자들에게 혹독한 수학적 트레이드오프를 요구한다.

세 개의 원이 겹쳐진 벤다이어그램 형태로 일관성 가용성 분할내구성을 나타낸 도표

2000년 버클리 대학의 에릭 브루어가 발표하고 2002년 세스 길버트와 낸시 린치가 정식 증명한 'CAP 정리'는 분산 시스템 아키텍처를 지배하는 가장 본질적인 불가능성 정리이다.

CAP 정리의 세 가지 기둥과 물리적 양립 불가성

CAP 정리는 네트워크로 연결된 공유 데이터 시스템이 세 가지 기본 속성을 동시에 만족하는 것은 수학적으로 불가능하다는 것을 천명한다.

첫째, 일관성(Consistency)은 모든 분산 노드가 어떤 순간에도 동일한 최신 데이터를 바라보아야 함을 의미한다. 즉 데이터 쓰기가 성공했다면 이후의 모든 읽기 요청은 반드시 방금 쓰인 값을 반환해야 한다. 둘째, 가용성(Availability)은 작동 중인 모든 비장애 노드가 클라이언트의 요청에 대해 오류나 거부 없이 항상 유효한 응답을 제공해야 함을 뜻한다. 셋째, 분할 내구성(Partition Tolerance)은 노드 간 통신 링크가 단절되어 메시지가 유실되더라도 시스템 전체가 멈추지 않고 동작해야 함을 의미한다.

분산 아키텍처 유형 포기하는 속성 시스템 설계 특성 및 대처 방식 대표적 데이터베이스 기술
CP 시스템 (일관성 + 분할내구성) 가용성 희생 네트워크 단절 시 데이터 불일치를 막기 위해 일부 읽기 쓰기 거부 Google Spanner, HBase, Redis 클러스터
AP 시스템 (가용성 + 분할내구성) 일관성 희생 네트워크가 끊겨도 언제나 응답 제공, 데이터 불일치 사후 동기화 Apache Cassandra, Amazon DynamoDB, Couchbase
CA 시스템 (일관성 + 가용성) 분할내구성 없음 네트워크 장애가 절대 일어나지 않는다는 이상적 단일 노드 환경 가정 전통적 단일 RDBMS (MySQL, PostgreSQL 로컬)

현실 세계의 대규모 분산 통신망에서 해저 광케이블 단선이나 스위치 고장 같은 네트워크 분할은 결코 피할 수 없는 물리적 현상이다. 따라서 분할 내구성(P)은 선택의 대상이 아닌 필수 전제 조건이며, 시스템 설계자는 네트워크 분할이 일어났을 때 '일관성(CP)'을 지킬 것인지 '가용성(AP)'을 지킬 것인지의 양자택일에 직면하게 된다.

금융 거래의 CP 모델과 소셜 미디어의 AP 모델 대조

설계 목적과 비즈니스 요구사항에 따라 어떤 속성을 최우선 가치로 둘지가 완벽히 갈린다.

은행 결제 보안 시스템과 소셜 네트워크 데이터 흐름을 대조한 인포그래픽

계좌 이체나 증권 결제 같은 금융 시스템에서는 데이터 일관성이 절대적인 생명선이다. 잔액이 100만 원인 통장에서 두 노드로 동시에 출금 요청이 들어왔을 때 일관성이 깨지면 이중 인출 사고가 발생한다. 따라서 금융 분산 데이터베이스는 네트워크 장애가 감지되면 차라리 트랜잭션을 거부하고 서비스를 일시 정지(가용성 포기)하더라도 데이터 정합성을 사수하는 CP 전략을 택한다.

반면 소셜 네트워크의 게시글 피드나 메신저 상태 메시지는 1~2초간 친구의 최신 글이 보이지 않더라도 전체 서비스가 먹통이 되는 것보다는 낫다. 이러한 플랫폼은 AP 전략을 취하여 일시적으로 노드 간 데이터가 어긋나더라도 사용자에게 즉각 응답을 돌려주고, 백그라운드에서 가십 프로토콜을 통해 서서히 데이터를 일치시키는 '최종 일관성(Eventual Consistency)'을 지향한다. 안정적인 시스템 구축과 최신 IT 비즈니스 트렌드에 관한 인사이트는 주문제작 탁상달력 에서도 다양하고 체계적으로 탐색해 볼 수 있다.

PACELC 정리로의 확장과 현대 분산 합의 알고리즘

CAP 정리가 지나치게 이분법적이라는 지적에 따라, 2012년 대니얼 아바디는 'PACELC 정리'를 제안하며 이론을 한 단계 심화시켰다.

PACELC 정리는 분할(Partition)이 발생했을 때 가용성(Availability)과 일관성(Consistency) 중 무엇을 택할지(Else), 정상 상태(Else)일 때 응답 지연 시간(Latency)과 일관성(Consistency) 중 무엇을 우선시할 것인지를 4차원적으로 분석한다. 네트워크가 정상일 때조차 강력한 일관성을 유지하려면 다른 노드들의 쓰기 확인 신호를 기다려야 하므로 응답 속도가 느려질 수밖에 없다.

오늘날의 엔지니어들은 팩소스(Paxos)나 뗏목(Raft)과 같은 정교한 분산 합의 알고리즘을 도입하여 쿼럼(과반수 투표) 기반으로 장애 노드를 격리하면서, 물리 법칙이 허용하는 수학적 한계 내에서 가장 우아하고 신뢰성 높은 최적점을 끊임없이 도출해 내고 있다.

이어서 읽기