CAP 이론

agnusdei·2025년 5월 27일

Database

목록 보기
59/76

📌 문제

CAP 이론에 대해 설명하시오.


✅ 답안


1. 개념(Definition)

**CAP 이론(CAP Theorem)**은 **분산 컴퓨터 시스템(Distributed Computing System)**에서 동시에는 일관성(Consistency), 가용성(Availability), 파티션 허용성(Partition Tolerance) 세 가지를 모두 충족시킬 수 없다는 이론이다.

  • 2000년, **에릭 브루어(Eric Brewer)**가 제안하였고, 이후 2002년 **세르게이 길버트(Sergey Gilbert)**와 **낸시 린치(Nancy Lynch)**가 수학적으로 증명하였다.

2. 역할 & 목적

  • 분산 시스템 설계 시 세 가지 속성 중 어떤 것을 우선시할 것인가를 결정하는 기준 제공
  • 장애 상황에서 시스템이 어떻게 반응할지를 예측 가능하게 함
  • 클라우드 기반 아키텍처 및 데이터베이스 설계의 핵심 이론

3. 구성요소 (CAP의 구성 요소 설명)

구성 요소설명
Consistency (일관성)모든 노드가 동일한 데이터를 동시에 볼 수 있어야 함 (예: 최신 데이터 반영 보장)
Availability (가용성)모든 요청이 실패하지 않고 응답을 반환해야 함 (정상 응답 보장)
Partition Tolerance (파티션 허용성)네트워크 일부 장애(분리) 발생 시에도 시스템은 계속 동작해야 함 (장애 허용성 보장)

4. 원리

  • 네트워크가 Partition(파티션: 네트워크 분할) 상태가 되면, Consistency 또는 Availability하나는 희생해야 한다.
  • 따라서 CAP 세 가지 중 두 가지만 동시에 만족 가능하다.

5. 시스템 분류 (CAP에 따른 분산 시스템 유형)

유형설명예시 시스템
CP (일관성 + 파티션 허용성)가용성을 희생하고, 데이터의 정합성과 장애 허용성 중시HBase, MongoDB (Single Master), Redis
CA (일관성 + 가용성)파티션 상황을 허용하지 않음 (현실적 구현 어려움)전통적인 RDBMS (단일 서버 기반)
AP (가용성 + 파티션 허용성)일관성을 희생하고, 응답성과 장애 허용성 중시Cassandra, CouchDB, DynamoDB

6. 핵심 용어 정리

용어의미
CAP Theorem분산 시스템에서 Consistency, Availability, Partition Tolerance를 동시에 만족시킬 수 없다는 이론
Partition네트워크 노드 간의 통신이 단절된 상태
Trade-off시스템 설계 시 특정 요소를 선택하면 다른 요소를 희생해야 하는 선택 관계

7. 특징

  • 현실적인 분산 시스템에서는 Partition Tolerance는 필수
  • 대부분 시스템은 CP 또는 AP 구조로 설계
  • 클라우드 및 마이크로서비스 아키텍처에서 매우 중요한 설계 원칙

8. 장단점

항목장점단점
CAP 이론 적용설계 선택 기준 제공세 가지를 동시에 만족 불가 → 트레이드오프 필요

9. 비교: BASE vs ACID

구분ACID (RDBMS 중심)BASE (CAP 기반 분산 시스템)
원칙일관성 중심 (CP)가용성과 성능 중심 (AP)
철학강한 일관성최종 일관성(Eventual Consistency)
예시MySQL, OracleCassandra, DynamoDB

10. 어린이 버전 요약 🧒

"인터넷에 여러 대의 컴퓨터가 함께 일할 때는, 정확한 정보도 주고 싶고, 빠르게 대답도 하고 싶고, 고장 나도 잘 돌아가게 하고 싶은데… 이 세 가지를 다 잘 하긴 어렵대요. 그래서 둘만 고르고 하나는 포기해야 해요!"


✅ 결론

  • CAP 이론은 분산 시스템 설계의 핵심 이론으로, 일관성, 가용성, 파티션 허용성 중 어떤 것을 우선할지를 결정하는 기준을 제공한다.
  • 실제 시스템은 보통 Partition Tolerance는 필수로 두고, Consistency 또는 Availability 중 하나를 선택하여 설계한다.

profile
DevSecOps Pentest🚩

0개의 댓글