CAP 이론은 데이터베이스 시스템이 가질 수 있는 세 가지 요구 사항을 나타내는 약자로, Consistency, Availability, Partition Tolerance의 첫 글자를 따서 만들어졌습니다.
Consistency (일관성)
Consistency는 데이터베이스 시스템에서 데이터가 일관되게 유지되어야 함을 의미합니다. 즉, 여러 개의 노드에 저장된 데이터가 서로 일치해야 한다는 것입니다.
Availability (가용성)
Availability는 데이터베이스 시스템이 항상 응답할 수 있어야 함을 의미합니다. 즉, 데이터베이스 시스템에 장애가 발생하더라도 데이터에 접근할 수 있어야 한다는 것입니다.
Partition Tolerance (분할 내성)
Partition Tolerance는 데이터베이스 시스템이 물리적으로 분할되어 있는 경우에도 정상적으로 동작해야 함을 의미합니다. 즉, 데이터베이스 시스템이 분산 환경에서도 노드 간 통신이 원활하게 이루어져야 한다는 것입니다.
CAP 이론은 이 세 가지 요구 사항 중에서 두 가지만을 동시에 보장할 수 있다는 것을 보여줍니다. 예를 들어, 데이터 일관성과 가용성을 모두 보장하려면, 분할 내성을 포기해야 합니다.
NoSQL 데이터베이스 시스템은 이러한 CAP 이론을 기반으로 설계되어 있습니다. 따라서, NoSQL 데이터베이스 시스템에서는 Consistency, Availability, Partition Tolerance 중에서 무엇을 우선시할 것인지에 따라 다양한 유형의 데이터베이스 시스템이 존재하며, 사용자는 자신의 요구 사항에 맞는 시스템을 선택하여 사용할 수 있습니다