Files
kui-vault/content/03.Note/ACID.md
T
2026-05-04 10:30:04 +09:00

27 lines
1.7 KiB
Markdown

---
id: ACID 20260420
created: 2026-04-20 08:44
tags:
aliases:
---
---
## 📑 개념
DB에서 하나의 논리적 작업 단위를 '트랜잭션'이라고 합니다. RDBMS는 이 트랜잭션이 안전하게 처리됨을 보장하기 위해 ACID 특성을 가집니다.
## 📌 상세
- **Atomicity (원자성):** 전부 성공하거나, 전부 실패하거나. - "All or Nothing"
트랜잭션 내의 모든 연산은 반드시 한꺼번에 완료되어야 하며, 그렇지 못할 경우 모두 취소되어야 합니다.
**예:** 계좌 이체 시 '내 계좌 출금'은 성공했는데 '상대 계좌 입금'에서 오류가 나면, 내 계좌의 출금 내역도 취소되어야 합니다.
- **Consistency (일관성):** 완료 후 DB 상태가 규칙을 위반하지 않음.
트랜잭션 수행 전후의 데이터베이스 상태는 항상 논리적으로 올바른 상태여야 합니다.
**예:** 모든 계좌의 잔액은 0원 이상이어야 한다는 제약 조건이 있다면, 트랜잭션 후 잔액이 마이너스가 되는 결과는 허용되지 않습니다.
- **Isolation (고립성):** 동시에 실행되는 트랜잭션들이 서로 방해하지 않음.
동시에 여러 트랜잭션이 실행될 때, 각 트랜잭션은 서로의 작업에 간섭할 수 없습니다. 하나의 트랜잭션이 끝나기 전까지는 다른 트랜잭션에서 그 중간 결과를 볼 수 없습니다.
- **Durability (지속성):** 성공한 결과는 영구적으로 저장됨.
성공적으로 완료된 트랜잭션의 결과는 시스템 장애가 발생하더라도 영구적으로 기록되어야 합니다. 로그 파일 등을 통해 복구가 가능한 상태를 말합니다.
---