728x90
분산 시스템에서 동시에 만족시키기 어려운 세 가지 속성을 정의한 이론입니다.
✅ 개념 요약
속성 | 설명 |
---|---|
일관성 (Consistency) | 모든 노드가 동일한 시점에 동일한 데이터를 반환해야 합니다. 데이터가 업데이트되면, 모든 노드에 즉시 반영되어야 함 |
가용성 (Availability) | 모든 요청에 대해 응답을 보장해야 합니다. 어떤 노드가 다운되더라도 시스템은 계속 작동해야 함 |
분할 내구성 (Partition Tolerance) | 네트워크 장애로 노드 간 통신이 불가능해져도 시스템은 계속 동작해야 함 |
⚠ 핵심 정리
- 세 가지를 동시에 완벽하게 만족하는 것은 불가능
- 현실의 분산 시스템은 항상 Partition Tolerance(P)를 고려해야 함
- 따라서 결국 Consistency vs Availability 중 하나를 선택해야 하는 상황이 많음
🧠 시스템 설계 시 선택 예시
시스템 유형 | 선택 특성 | 설명 |
---|---|---|
은행 시스템 | C + P | 일관성과 분할 내구성을 유지 (입출금 금액 정확성 우선) |
SNS 타임라인 | A + P | 가용성과 분할 내구성을 유지 (조금 늦어도 게시글이 안 끊기게) |
캐시 시스템 (ex. Redis) | A + P | 빠른 응답 우선, 일관성은 약하게 허용 |
📌 결론
CAP 이론은 분산 시스템에서 트레이드오프를 이해하고, 설계 목표에 따라 어떤 특성을 우선시할지를 결정하는 데 필수적인 기준입니다.
```
728x90
'Server' 카테고리의 다른 글
[비관적인락/PESSIMISTIC]_쓰기락과 읽기락 (0) | 2024.02.06 |
---|---|
[디자인 패턴] 추상 팩토리 패턴 (0) | 2024.02.03 |
낙관적인락(Optimistic Locking) / 비관적인(Pessimistic Locking) (0) | 2023.08.09 |
[Jmeter]부하 테스트_Window 기준 (0) | 2023.05.11 |
Docker 공부 하면서 주로 사용하는 명령어 (0) | 2023.04.16 |