OLTP 시스템에서 데이터 일관성과 무결성을 보장하기 위해 ACID 특성이 필요한 이유와 그 개념을 설명하라.
OLTP 시스템에서의 트랜잭션은 **ACID 특성 (Atomicity, Consistency, Isolation, Durability)**을 만족해야 데이터의 정확성과 신뢰성을 보장할 수 있다.
정의: 실시간(online)으로 다수의 짧고 빈번한 트랜잭션 처리를 수행하는 시스템
주요 목적: 빠른 응답성과 높은 신뢰성
예시:
데이터베이스 트랜잭션의 신뢰성과 무결성을 보장하는 4가지 필수 속성
Atomicity / Consistency / Isolation / Durability
| 항목 | 이름(한글) | 설명 | 예시 |
|---|---|---|---|
| A | Atomicity (원자성) | 트랜잭션의 작업은 전부 실행되거나 전혀 실행되지 않아야 함 | 계좌 이체 시 출금만 되고 입금은 안되면 안 됨 → 둘 다 되거나 둘 다 취소되어야 함 |
| C | Consistency (일관성) | 트랜잭션 전후에 데이터는 항상 정합성 제약 조건을 만족해야 함 | 계좌 잔액이 마이너스가 되면 안 되는 규칙이 있다면, 트랜잭션 후에도 이 규칙은 유지되어야 함 |
| I | Isolation (격리성) | 동시에 여러 트랜잭션이 수행되어도 서로 간섭하면 안 됨 | 두 사용자가 동시에 같은 상품을 주문해도 각자의 주문이 충돌 없이 처리되어야 함 |
| D | Durability (지속성) | 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 저장되어야 함 | 주문을 완료하고 전원이 꺼져도 그 주문 내역은 보존되어야 함 |
트랜잭션 시작
↓
(1) Atomicity - 전부 실행 또는 전부 취소
↓
(2) Consistency - 제약조건 일치 확인
↓
(3) Isolation - 병행 트랜잭션 간섭 방지
↓
(4) Durability - 로그/저널 등으로 영속 저장
↓
트랜잭션 종료 (Commit)
| 역할 | 설명 |
|---|---|
| 데이터 정확성 보장 | 수천, 수만 건의 동시 사용자 요청에도 불구하고 오류 없이 정확한 결과 제공 |
| 동시성 제어 | Isolation을 통해 경쟁 조건(Race Condition) 방지 |
| 신뢰성 확보 | 시스템 장애, 전원 꺼짐 상황에도 데이터 보호 (Durability) |
| 비즈니스 로직 유지 | 규칙을 위반하지 않고 일관된 결과 생성 (Consistency) |
| 용어 | 설명 |
|---|---|
| Commit | 트랜잭션을 완료하고 데이터 반영 |
| Rollback | 트랜잭션 중 오류 발생 시 원래 상태로 되돌림 |
| Locking | 격리성을 위한 자원 잠금 (Row-level, Table-level 등) |
| Write-ahead Log | 지속성을 위해 먼저 로그에 기록 후 작업 실행 |
“은행에서 돈을 보낼 때, 중간에 전원이 나가도 절대 문제가 생기면 안 되잖아? 그래서 컴퓨터는 거래를 할 때 **꼼꼼하게 4가지 규칙(ACID)**을 지켜!
‘모두 하거나 안 하거나, 규칙 지키고, 다른 사람이랑 안 엉키고, 기록은 절대 안 잊어버리기!’”