CS/데이터 중심 애플리케이션 설계

CAP 이론, 그리고 BASE 원칙이란?

조금씩 차근차근 2025. 3. 9. 20:17

분산 시스템은 여러 컴퓨터 노드가 하나의 통합된 시스템처럼 동작하도록 구성된 환경이다. 네트워크 지연이나 일부 노드의 장애 등 다양한 문제에 직면할 수 있기에, 시스템 설계자는 이러한 제약 조건을 고려한 원칙에 따라 트레이드오프를 명확히 이해하고 선택해야 한다.

CAP 이론

CAP 이론은 분산 시스템 설계 시 고려해야 할 세 가지 핵심 요소 간의 상호작용을 설명한다.

  • Consistency (일관성):
    모든 노드가 동일한 데이터를 동시에 반영하여, 사용자에게 항상 최신의 일관된 정보를 제공하는 상태를 유지한다.
  • Availability (가용성):
    시스템이 모든 요청에 대해 항상 응답할 수 있도록 보장한다. 일부 노드에 장애가 발생하더라도 전체 시스템은 계속 운영된다.
  • Partition Tolerance (분할 허용성):
    네트워크 분할이나 연결 장애와 같은 상황에서도 시스템이 정상적으로 동작할 수 있는 능력을 의미한다.

CAP 이론은 네트워크 장애(분할 상황)가 발생하면 세 가지 요소 중 두 가지만 보장할 수 있음을 전제로 한다. 따라서 분산 시스템 설계 시 CP (Consistency + Partition Tolerance) 또는 AP (Availability + Partition Tolerance) 중 하나를 선택해야 한다. 이는 일관성을 유지하기 위해 가용성을 일부 희생하거나, 가용성을 중시하여 일관성을 완벽하게 보장하지 않는 방식으로 접근할 수밖에 없음을 의미한다.

BASE 원칙

분산 환경에서는 ACID 원칙의 강력한 일관성 보장을 포기하고, 높은 확장성과 가용성을 달성하기 위한 대안으로 BASE 원칙을 채택한다.

  • Basically Available (기본적인 가용성):
    시스템은 가능한 한 대부분의 읽기/쓰기 작업을 지원하며, 일부 장애 상황에서도 완전한 중단 없이 동작한다.
  • Soft state (유연한 상태):
    시스템의 상태는 외부 입력 없이도 시간이 흐름에 따라 변화할 수 있다. 이는 데이터 동기화 및 복제 과정에서 발생하는 지연을 반영하는 것이다.
  • Eventually consistent (최종적 일관성):
    즉각적인 일관성을 보장하지 않더라도, 시간이 지나면 모든 데이터 복제본이 일관된 상태로 수렴하게 된다. 이 방식은 높은 가용성과 성능을 유지하기 위한 필연적인 타협이다.

분산 시스템 설계자는 CAP 이론과 BASE 원칙을 통해 시스템의 한계를 명확히 인식하고, 상황에 따라 적절한 트레이드오프를 선택함으로써 최적의 성능과 안정성을 확보할 수 있다.