OLTP ACID

agnusdei·2025년 5월 26일

Database

목록 보기
52/76

🔍 문제

OLTP 시스템에서 데이터 일관성과 무결성을 보장하기 위해 ACID 특성이 필요한 이유와 그 개념을 설명하라.


✅ 결론 요약

OLTP 시스템에서의 트랜잭션은 **ACID 특성 (Atomicity, Consistency, Isolation, Durability)**을 만족해야 데이터의 정확성과 신뢰성을 보장할 수 있다.


1. 개념 정의

1.1 OLTP (Online Transaction Processing)

  • 정의: 실시간(online)으로 다수의 짧고 빈번한 트랜잭션 처리를 수행하는 시스템

  • 주요 목적: 빠른 응답성과 높은 신뢰성

  • 예시:

    • 은행 계좌 이체
    • 온라인 주문 처리
    • 재고 관리

1.2 트랜잭션 (Transaction)

  • 데이터베이스의 논리적 작업 단위
  • 여러 SQL 명령이 하나의 완전한 작업 단위로 묶여 수행

2. ACID란?

데이터베이스 트랜잭션의 신뢰성과 무결성을 보장하는 4가지 필수 속성
Atomicity / Consistency / Isolation / Durability


3. ACID 상세 설명

항목이름(한글)설명예시
AAtomicity (원자성)트랜잭션의 작업은 전부 실행되거나 전혀 실행되지 않아야 함계좌 이체 시 출금만 되고 입금은 안되면 안 됨 → 둘 다 되거나 둘 다 취소되어야 함
CConsistency (일관성)트랜잭션 전후에 데이터는 항상 정합성 제약 조건을 만족해야 함계좌 잔액이 마이너스가 되면 안 되는 규칙이 있다면, 트랜잭션 후에도 이 규칙은 유지되어야 함
IIsolation (격리성)동시에 여러 트랜잭션이 수행되어도 서로 간섭하면 안 됨두 사용자가 동시에 같은 상품을 주문해도 각자의 주문이 충돌 없이 처리되어야 함
DDurability (지속성)트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 저장되어야 함주문을 완료하고 전원이 꺼져도 그 주문 내역은 보존되어야 함

4. 구조도: ACID의 흐름

트랜잭션 시작
   ↓
(1) Atomicity - 전부 실행 또는 전부 취소
   ↓
(2) Consistency - 제약조건 일치 확인
   ↓
(3) Isolation - 병행 트랜잭션 간섭 방지
   ↓
(4) Durability - 로그/저널 등으로 영속 저장
   ↓
트랜잭션 종료 (Commit)

5. OLTP에서 ACID의 역할 & 목적

역할설명
데이터 정확성 보장수천, 수만 건의 동시 사용자 요청에도 불구하고 오류 없이 정확한 결과 제공
동시성 제어Isolation을 통해 경쟁 조건(Race Condition) 방지
신뢰성 확보시스템 장애, 전원 꺼짐 상황에도 데이터 보호 (Durability)
비즈니스 로직 유지규칙을 위반하지 않고 일관된 결과 생성 (Consistency)

6. 관련 용어 정리

용어설명
Commit트랜잭션을 완료하고 데이터 반영
Rollback트랜잭션 중 오류 발생 시 원래 상태로 되돌림
Locking격리성을 위한 자원 잠금 (Row-level, Table-level 등)
Write-ahead Log지속성을 위해 먼저 로그에 기록 후 작업 실행

7. 어린이 버전 요약 🌱

“은행에서 돈을 보낼 때, 중간에 전원이 나가도 절대 문제가 생기면 안 되잖아? 그래서 컴퓨터는 거래를 할 때 **꼼꼼하게 4가지 규칙(ACID)**을 지켜!
‘모두 하거나 안 하거나, 규칙 지키고, 다른 사람이랑 안 엉키고, 기록은 절대 안 잊어버리기!’


✅ 결론 정리

  • OLTP 시스템은 빠르고 정확한 데이터 처리가 필수
  • 이를 위해 트랜잭션은 반드시 ACID 속성을 따라야 함
  • ACID는 데이터베이스의 신뢰성, 정합성, 안정성을 보장하는 핵심 원칙
  • 실무에서도 데이터 손상 방지 및 동시성 문제 해결에 반드시 해결해야 한다
profile
DevSecOps Pentest🚩

0개의 댓글