Database

[DB] CAP 이론

Code & Beyond 2025. 3. 16. 10:51

CAP 이론이란?

CAP 이론은 분산 시스템에서 세 가지 속성(Consistency, Availability, Partition Tolerance) 중 두 가지만 보장할 수 있다는 이론이다. 이 개념은 2000년 Eric Brewer 교수가 제안한 후 2002년에 정식으로 증명되었다.

 

CAP의 3가지 속성

  1. Consistency (일관성)
    • 모든 노드에서 항상 같은 데이터를 조회할 수 있는 것을 의미한다.
    • 즉, 한 노드에서 데이터가 변경되면 모든 노드에 일관적으로 반영되어야 한다.
  2. Availability (가용성)
    • 항상 응답을 받을 수 있음을 의미한다.
    • 일부 노드가 실패하더라도, 나머지 노드가 사용 가능한 데이터를 반환해야 한다.
  3. Partition Tolerance (파티션 내성)
    • 네트워크 장애가 발생해도 시스템이 정상적으로 동작해야 한다.
    • 분산 시스템에서는 네트워크 장애가 불가피하기에 모든 분산시스템은 P를 필수로 가져야 한다.

 

CAP 이론의 핵심

 

CAP이론에 따르면 Consistency(일관성), Availability(가용성), Partition Tolerance(파티션 내성) 중 두 개만 선택 가능하다.
즉, 모든 분산 시스템은 CAP 중 2개를 보장하며, 나머지 하나는 일부 포기할 수밖에 없다. 분산시스템에서는 네트워크 장애(Partition, P)는 현실적으로 항상 발생할 수 있기 때문에, 실제 운영되는 분산 시스템은 CP 또는 AP 중 하나를 선택해야 한다는 것이 핵심이다.

CAP 조합별 시스템 유형

조합 특징 대표적인 데이터 베이스
CP (일관성 + 파티션 내성) 데이터 일관성이 중요하지만, 네트워크 장애 시 일부 요청이 차단될 수 있음 MongoDB (기본설정), RDBMS(MySQL, PostgreSQL)
AP (가용성 + 파티션 내성) 항상 응답을 보장하지만, 최신 데이터가 아닐 수도 있음 Cassandra, DynamoDB, CouchDB
CA (일관성 + 가용성) 네트워크 장애가 없다는 가정 하에 일관성과 가용성을 보장 이론적으로 불가능