본문 바로가기
데이터베이스

트랜잭션 ACID 동시성 제어 락 개념 정리

by 매일기술사 2026. 3. 19.
Database · 한장정리

[기술사토픽] 트랜잭션 & 동시성 제어 완벽 정리 - 한장정리

ACID 특성, 격리수준 4단계, 2PL·MVCC 동시성 제어 기법, 데드락 탐지와 해결 전략까지 기술사 빈출 주제를 완벽 정리합니다.

트랜잭션ACID격리수준2PLMVCC정보관리기술사

Ⅰ.데이터 일관성 보장 기술, 트랜잭션의 개요

개념: 트랜잭션(Transaction)이란 데이터베이스의 상태를 변환하는 하나의 논리적 작업 단위로, All or Nothing 원칙에 따라 전부 성공하거나 전부 실패해야 합니다.

가. ACID 특성 (필수 암기)
A
원자성
Atomicity
전부 실행 또는 전부 취소
C
일관성
Consistency
트랜잭션 전후 DB 일관성 유지
I
격리성
Isolation
동시 트랜잭션 간 간섭 없음
D
지속성
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