Database · 한장정리
[기술사토픽] 트랜잭션 & 동시성 제어 완벽 정리 - 한장정리
ACID 특성, 격리수준 4단계, 2PL·MVCC 동시성 제어 기법, 데드락 탐지와 해결 전략까지 기술사 빈출 주제를 완벽 정리합니다.
Ⅰ.데이터 일관성 보장 기술, 트랜잭션의 개요
개념: 트랜잭션(Transaction)이란 데이터베이스의 상태를 변환하는 하나의 논리적 작업 단위로, All or Nothing 원칙에 따라 전부 성공하거나 전부 실패해야 합니다.
가. ACID 특성 (필수 암기)
A
원자성
Atomicity
전부 실행 또는 전부 취소
Atomicity
전부 실행 또는 전부 취소
C
일관성
Consistency
트랜잭션 전후 DB 일관성 유지
Consistency
트랜잭션 전후 DB 일관성 유지
I
격리성
Isolation
동시 트랜잭션 간 간섭 없음
Isolation
동시 트랜잭션 간 간섭 없음
D
지속성
Durability
완료된 트랜잭션 영구 저장
Durability
완료된 트랜잭션 영구 저장
나. 트랜잭션 상태 전이
|
활동(Active)
|
→ |
부분완료
|
→ |
완료(Commit)
|
| ↓ 실패 | ||||
|
실패(Failed)
|
→ |
철회(Rollback)
|
Ⅱ.격리수준 4단계 & 동시성 제어 기법
가. 격리수준(Isolation Level) 4단계
| 격리수준 | Dirty Read | Non-Repeatable | Phantom Read | 특징 |
|---|---|---|---|---|
| READ UNCOMMITTED | 발생 | 발생 | 발생 | 가장 낮음. 성능 최고 |
| READ COMMITTED | 없음 | 발생 | 발생 | Oracle 기본값 |
| REPEATABLE READ | 없음 | 없음 | 발생 | MySQL InnoDB 기본값 |
| SERIALIZABLE | 없음 | 없음 | 없음 | 가장 높음. 성능 최저 |
나. 동시성 제어 기법 비교
| 기법 | 방식 | 장점 | 단점 |
|---|---|---|---|
| 2PL (2단계 락) |
확장단계(락 획득) → 수축단계(락 해제) | 직렬성 보장 | 데드락 발생 가능 |
| MVCC (다중버전) |
읽기 시 스냅샷 사용. 쓰기만 락 | 읽기-쓰기 충돌 없음 | 저장공간 증가 |
| 타임스탬프 | 트랜잭션 순서로 직렬성 보장 | 데드락 없음 | 기아(Starvation) 발생 |
시험 포인트
MVCC = 읽기는 락 없이 스냅샷으로, 쓰기만 락. PostgreSQL·MySQL InnoDB에서 사용. 읽기 성능이 크게 향상됨!
Ⅲ.데드락(Deadlock) 탐지 & 해결 전략
데드락이란 두 개 이상의 트랜잭션이 서로 상대방의 락 해제를 기다리며 무한 대기 상태에 빠진 것입니다.
| 전략 | 방법 | 특징 |
|---|---|---|
| 예방(Prevention) | 자원 순서 고정, 선점 허용 | 데드락 원천 차단. 자원 낭비 가능 |
| 회피(Avoidance) | Wait-Die, Wound-Wait 알고리즘 | 안전 상태 유지. 오버헤드 큼 |
| 탐지(Detection) | Wait-for Graph 사이클 탐지 | 주기적 탐지 후 희생자 선택·롤백 |
| 복구(Recovery) | 희생자 트랜잭션 롤백 | 최소 비용 트랜잭션 선택 철회 |
Ⅳ.결론 및 전문가 의견
결론
트랜잭션 관리는 데이터베이스 신뢰성의 핵심입니다.
향후 분산 트랜잭션(Distributed Transaction)과 Saga 패턴, NewSQL의 글로벌 트랜잭션으로 발전하며 마이크로서비스 환경에서의 데이터 일관성 보장이 중요한 과제가 되고 있습니다.
"ACID는 단일 DB의 약속이고, Saga는 분산 환경의 현실적 타협이다."
블로그: 기술사 학습노트 · imt-log.tistory.com
'데이터베이스' 카테고리의 다른 글
| SQL 핵심 문법과 쿼리 최적화 정리 (0) | 2026.04.06 |
|---|---|
| NoSQL 데이터베이스 종류와 특징 비교 정리 (0) | 2026.03.19 |
| 데이터베이스 인덱스 쿼리 최적화 완벽 정리 (0) | 2026.03.19 |
| 관계형 데이터베이스 정규화 1NF 2NF 3NF 정리 (0) | 2026.03.19 |
| 데이터베이스 완전정복 — 기술사 핵심 토픽 모음 (0) | 2026.03.18 |