CAP 정리란?
: 분산 시스템은 아래 세 가지 특성 중 동시에 두 개만 만족할 수 있다는 이론.
- C (Consistency): 일관성
- A (Availability): 가용성
- P (Partition Tolerance): 분할 내성
각 특성의 의미
| 속성 | 설명 |
| 일관성 (C) | 모든 노드가 항상 동일한 데이터를 보여줌 |
| 가용성 (A) | 모든 요청에 대해 항상 응답을 보장함 |
| 분할 내성 (P) | 네트워크 장애(노드 간 통신 불가) 상황에서도 시스템이 계속 동작함 |
왜 3가지를 동시에 만족할 수 없는가?
- 네트워크가 분할(P) 되었을 때,
- 일관성(C) 을 지키려면 응답을 지연시켜야 하고,
- 가용성(A) 을 지키려면 일단 응답하고 데이터 동기화를 나중에 해야 함
→ 결국 C와 A는 동시에 보장할 수 없음
조합별 유형 및 예시
| 유형 | 보장되는 특성 | 희생하는 특성 | 설명 |
| CA | 일관성 + 가용성 | 분할 내성 | 네트워크 끊기면 시스템 중단 → 현실적으로 구현 불가능 |
| CP | 일관성 + 분할 내성 | 가용성 | 장애 시 응답 지연되지만 데이터 정확성 보장 예: 은행, 금융 시스템 |
| AP | 가용성 + 분할 내성 | 일관성 | 장애 시에도 응답하지만 데이터는 일시적으로 불일치 예: SNS, 메시징 시스템 |
4. 실제 시스템 설계에서의 선택
- CP 선호: 정확한 데이터가 중요한 경우 (결제, 계좌 등)
- AP 선호: 빠른 응답이 중요한 경우 (소셜 서비스, 로그 시스템 등)
'IT > CS 공부' 카테고리의 다른 글
| [CS] Call By Value와 Call By Reference (0) | 2025.05.22 |
|---|---|
| [CS] Redis가 싱글 스레드로 동작하는 이유 (0) | 2025.05.20 |
| [CS] 시스템 간 비동기 연동 방식 정리 (0) | 2025.05.14 |
| [CS] 캐시 스템피드 현상 (0) | 2025.05.13 |
| [CS] [데이터베이스] 정규화 (0) | 2022.07.01 |