Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
웹서버/DB

데이터베이스 트랜잭션 격리 수준(Isolation Level) 완전 정리

Read Committed와 Repeatable Read, 뭐가 다른지 헷갈리셨다면. 4단계 격리 수준과 각 수준에서 발생 가능한 이상현상을 정리했습니다.

2026.08.28  ·  28회  · 

격리 수준이 필요한 이유

여러 트랜잭션이 동시에 같은 데이터에 접근하면 서로의 결과에 영향을 주는 이상현상(Dirty Read, Non-repeatable Read, Phantom Read)이 발생할 수 있습니다. 격리 수준은 이런 이상현상을 어디까지 허용할지 정하는 기준입니다.

4단계 격리 수준

  • Read Uncommitted: 커밋되지 않은 변경사항까지 읽을 수 있음(Dirty Read 발생)
  • Read Committed: 커밋된 데이터만 읽지만, 같은 트랜잭션 내에서도 재조회 시 값이 달라질 수 있음
  • Repeatable Read: 트랜잭션 동안 동일한 행은 항상 같은 값을 보장(단, Phantom Read는 DB마다 처리가 다름)
  • Serializable: 트랜잭션들을 순차 실행한 것과 동일한 결과를 보장하는 가장 엄격한 수준

실무 선택 기준

격리 수준이 높을수록 데이터 일관성은 강해지지만 동시성(성능)은 떨어집니다. PostgreSQL은 기본값이 Read Committed이며, 대부분의 웹 서비스는 이 기본값으로 충분합니다. 정산·재고 차감처럼 정합성이 절대적으로 중요한 로직에서만 Serializable이나 명시적 락을 고려하는 것이 일반적입니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원