CAP 이론이란?
CAP 이론은 분산 시스템에서 세 가지 속성(Consistency, Availability, Partition Tolerance) 중 두 가지만 보장할 수 있다는 이론이다. 이 개념은 2000년 Eric Brewer 교수가 제안한 후 2002년에 정식으로 증명되었다.
CAP의 3가지 속성
- Consistency (일관성)
- 모든 노드에서 항상 같은 데이터를 조회할 수 있는 것을 의미한다.
- 즉, 한 노드에서 데이터가 변경되면 모든 노드에 일관적으로 반영되어야 한다.
- Availability (가용성)
- 항상 응답을 받을 수 있음을 의미한다.
- 일부 노드가 실패하더라도, 나머지 노드가 사용 가능한 데이터를 반환해야 한다.
- 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 (일관성 + 가용성) | 네트워크 장애가 없다는 가정 하에 일관성과 가용성을 보장 | 이론적으로 불가능❌ |
'Database' 카테고리의 다른 글
| [DB] 트랜잭션 (Transaction)의 4가지 속성 - ACID 란 (0) | 2025.06.30 |
|---|---|
| [DB] 분산 저장 기법 - 2. 샤딩 (Sharding) (0) | 2025.03.09 |
| [DB] 분산 저장 기법 - 1. 파티셔닝(Partitioning) (0) | 2025.03.02 |