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
반응형
'Database' 카테고리의 다른 글
| NewSQL이란? 기존 DBMS와 차이점 (4) | 2025.07.03 |
|---|---|
| 트랜잭션(Transaction)과 동시성 제어(Concurrency Control) (0) | 2025.06.26 |
| 정규화(Normalization)와 반정규화(Denormalization)란? (4) | 2025.06.05 |
| NoSQL 데이터 모델링 방법 (0) | 2025.04.19 |
| 데이터베이스 인덱스(Index) 최적화 방법 (4) | 2025.03.21 |