Database

ACID와 CAP 이론 비교

Somaz 2025. 6. 12. 12:44
728x90
반응형

Overview

오늘은 트랜잭션의 ACID 원칙CAP 정리에 대해 알아보고,


이 두 개념이 어떻게 데이터베이스와 NoSQL에 적용되는지 비교해보려고 한다.

  • ACID 원칙데이터 일관성 유지를 위한 트랜잭션 설계의 핵심 개념
  • CAP 정리분산 시스템에서 데이터의 가용성과 일관성의 균형을 다루는 이론

 

 

이 두 가지를 이해하면 RDBMS(관계형 DB)와 NoSQL DB 선택 기준을 명확하게 파악할 수 있다.

 

 

 

 

 

 

 


 

 

 

 

1️⃣ ACID 원칙이란?

ACID는 데이터베이스 트랜잭션의 4가지 핵심 속성을 의미한다.

 

ACID 원칙 설명  예제
A (Atomicity) - 원자성 트랜잭션은 모두 실행되거나, 전혀 실행되지 않아야 함 은행 송금 시, A 계좌에서 돈이 빠져나갔지만 B 계좌로 입금되지 않으면 안됨
C (Consistency) - 일관성 트랜잭션 실행 전후로 데이터베이스의 무결성이 유지되어야 함 고객이 제품을 구매할 때, 재고가 부족하면 구매가 실패해야 함
I (Isolation) - 고립성 동시에 여러 트랜잭션이 실행될 때 서로 간섭하지 않아야 함 한 사용자가 주문을 처리하는 동안 다른 사용자의 변경이 반영되면 안됨
D (Durability) - 지속성 트랜잭션이 성공적으로 완료되면 데이터는 영구적으로 저장되어야 함 시스템 장애가 발생해도 주문 내역이 유실되지 않음

 

ACID 원칙이 적용된 DB: MySQL, PostgreSQL, Oracle 등 RDBMS 시스템

 

 

 

 

 

 

 

2️⃣ CAP 이론이란?

CAP 이론은 분산 시스템에서 데이터 무결성을 보장하는 세 가지 속성을 설명하는 개념이다.


한 시스템은 세 가지 속성 중 두 개만 선택할 수 있다!

 

CAP 속성 설명 예제
C (Consistency) - 일관성 모든 노드가 동일한 최신 데이터를 유지해야 함 여러 개의 복제된 데이터베이스가 있다면, 어떤 노드에 접근해도 최신 데이터여야 함
A (Availability) - 가용성 모든 요청이 항상 응답을 받을 수 있어야 함 한 노드에 장애가 생겨도 다른 노드가 데이터를 반환해야 함
P (Partition Tolerance) - 파티션 내성 네트워크 장애 발생 시에도 시스템이 계속 작동해야 함 데이터 센터 간 연결이 끊어져도 서비스가 중단되지 않아야 함

 

 

CAP 이론의 핵심

  • 세 가지 속성(CAP) 중에서 두 가지만 선택 가능
  • 완벽한 CAP 시스템은 존재하지 않음
  • NoSQL은 주로 AP 또는 CP 모델을 따름

 

 

 

 

 

 

 

3️⃣ CAP 이론과 NoSQL의 관계

NoSQL 데이터베이스는 CAP 이론에 따라 설계되며,


필요에 따라 Consistency(일관성)과 Availability(가용성)을 조절해야 한다.

 

NoSQL 유형 CAP 선택 모델 예제 DB
CP (일관성 + 파티션 내성) 데이터 일관성을 유지, 가용성은 포기 MongoDB, HBase
AP (가용성 + 파티션 내성) 항상 응답을 제공, 일부 최신성이 떨어질 수 있음 Cassandra, DynamoDB
CA (일관성 + 가용성) 네트워크 장애를 허용하지 않음 (현실적으로 불가능) 일반적인 RDBMS (단일 노드일 때)

 

RDBMS vs NoSQL의 차이점

  • RDBMS는 ACID 원칙을 엄격히 준수
  • NoSQL은 CAP 이론을 기반으로 설계, 특정 상황에 맞게 Consistency(일관성)와 Availability(가용성) 중 선택

 

 

 

 

 

 

4️⃣ ACID vs CAP 비교

 

항목 ACID (트랜잭션 원칙) CAP (분산 시스템 이론)
목적 데이터 무결성과 일관성 유지 분산 시스템에서 데이터 가용성과 일관성 조정
적용 대상 RDBMS (MySQL, PostgreSQL) NoSQL (MongoDB, Cassandra)
초점 데이터의 정확성 & 무결성 보장 네트워크 장애 시에도 동작 가능
제한사항 성능 저하 가능 (JOIN, LOCK) 세 가지 속성 중 두 개만 선택 가능
적용 예제 은행 시스템, 회계 데이터 대규모 웹 서비스, 소셜 미디어

 

 

 

 

 

 

 

5️⃣ 언제 ACID? 언제 CAP?

 

 

ACID가 필요한 경우 (RDBMS)

  • 금융 시스템 (은행, 주식 거래소)
  • 전자상거래 (주문 & 결제 처리)
  • 병원 시스템 (환자 기록 관리)

 

 

CAP이 필요한 경우 (NoSQL)

  • CP 모델: 데이터 일관성이 중요한 경우 → MongoDB, HBase
    → 채팅 로그, 실시간 데이터 분석
  • AP 모델: 빠른 응답이 중요한 경우 → Cassandra, DynamoDB
    → 소셜 미디어, 대규모 로그 저장

 

 

✅ 혼합 사용 (Polyglot Persistence)

  • 대부분의 기업은 RDBMS + NoSQL을 함께 사용
    → 주문 정보는 MySQL(ACID) / 사용자 세션은 Redis(NoSQL, CAP)

 

 

 

 

 

 


 

 

 

 

 

 

마무리

ACID와 CAP 이론은 데이터베이스 설계에서 중요한 개념이다.


어떤 데이터베이스를 선택할지는 데이터의 특성과 비즈니스 요구사항에 따라 다르다.

 

ACID: 데이터 일관성과 무결성이 중요한 경우 (은행, 결제 시스템)
CAP: 가용성과 확장성이 중요한 경우 (소셜 미디어, 분산 시스템)
현대 시스템: ACID와 CAP을 조합한 하이브리드 아키텍처가 대세! 

 

 

데이터 특성과 시스템 요구사항을 고려하여 최적의 DB 설계를 선택하는 것이 중요하다!

 

 

 

 

 

 

 

 


Reference

 

 

728x90
반응형