2025-08-30 01:00
Tags: SQL
CAP 이론
- 일관성 (Consistency):
“모든 사용자는 언제나 같은 데이터를 본다.”
- 모든 노드가 동시에 같은 데이터를 보여주는 것을 보장
- 즉, 데이터베이스에 쓰기 작업이 발생하면, 이후의 모든 읽기 작업은 해당 쓰기 작업이 반영된 최신 데이터를 반환해야 한다.
- 가용성 (Availability):
“시스템은 언제나 정상적으로 응답한다.”
- 모든 요청에 대해 시스템이 항상 응답하는 것을 보장
- 일부 노드에 장애가 발생하더라도 서비스는 중단되지 않아야 한다.
- 최신 데이터 아니어도 일단 오류 안보여주고 뭐라도 보여주는 거
- 모든 요청은 시스템의 상태와 관계없이 유효한 응답을 받는다.
- 분할 용인성 (Partition Tolerance):
“네트워크가 끊겨도 시스템은 계속 동작한다.”
- 노드 간 통신에 장애가 발생하여 네트워크가 두 개 이상으로 분리(분할)되더라도 시스템이 계속 동작하는 것을 보.
- 현대의 분산 시스템에서는 네트워크 장애가 언제든 발생할 수 있으므로, 분할 용인성은 포기할 수 없는 가치.
- 노드 간 메시지 손실이나 지연이 발생해도 시스템은 동작을 멈추지 않습니다.
CP (일관성 우선) 시스템: 정확성이 생명일 때
“데이터가 틀릴 바에는 차라리 응답하지 않겠다.”
AP (가용성 우선) 시스템: 중단 없는 서비스가 중요할 때
“데이터가 약간 틀려도 괜찮으니, 절대 멈추지 마라.”
시스템 분류 | 우선순위 | 동작 방식 | 대표 사례 |
---|---|---|---|
CP | C > A | 네트워크 분할 시, 데이터 일관성을 위해 일부 노드의 응답을 중단. | MongoDB, Redis, HBase |
AP | A > C | 네트워크 분할 시, 각 노드가 독립적으로 응답하여 가용성을 유지. | Cassandra, DynamoDB, CouchDB |
CA | C + A | (이론상) 네트워크 분할이 없는 단일 노드 시스템. | 전통적인 RDBMS (Oracle, MySQL) |