같은 계좌를 두 사용자가 동시에 건드릴 때 데이터베이스가 어디까지 서로의 작업을 보여 줄지 정하는 설정이 트랜잭션 격리 수준이다. SQLD의 트랜잭션·락 단원과 정보관리기술사 데이터베이스 영역에서 이상 현상 세 가지와 수준별 허용 여부를 묻는 형태로 자주 나온다. 표 하나만 외워도 되지만, 왜 그 칸이 비어 있는지 알아야 서술형에서 막히지 않는다.
격리성(Isolation)은 ACID의 I에 해당한다. 가장 엄격한 기준은 직렬 가능성(Serializability)으로, 동시에 실행해도 결과가 어떤 순차 실행과 같아야 한다는 뜻이다. 다만 이를 완벽히 지키면 대기와 롤백이 늘어 처리량이 떨어진다. 그래서 표준은 일관성을 일부 양보하는 대신 동시성을 높이는 단계를 둔다.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED (문법은 DBMS마다 조금씩 다르다)| 이상 현상 | 발생 상황 | 결과 |
|---|---|---|
| Dirty Read | T2가 커밋하지 않은 변경을 T1이 읽음 | T2가 롤백하면 T1은 존재한 적 없는 값을 사용 |
| Non-Repeatable Read | T1이 같은 행을 두 번 읽는 사이 T2가 그 행을 수정·커밋 | 같은 질의인데 값이 달라짐 |
| Phantom Read | T1이 같은 조건으로 두 번 조회하는 사이 T2가 조건에 맞는 행을 삽입·삭제하고 커밋 | 행의 개수나 집계가 달라짐 |
Non-Repeatable Read는 기존 행의 값이 바뀌는 경우이고, Phantom Read는 조건에 걸리는 행 집합 자체가 바뀌는 경우다. 두 개념을 섞어 쓰는 답안이 많아서 이 구분은 꼭 짚어 두는 편이 좋다.
| 격리 수준 | Dirty Read | Non-Repeatable Read | Phantom Read |
|---|---|---|---|
| READ UNCOMMITTED | 발생 가능 | 발생 가능 | 발생 가능 |
| READ COMMITTED | 방지 | 발생 가능 | 발생 가능 |
| REPEATABLE READ | 방지 | 방지 | 발생 가능(표준 기준) |
| SERIALIZABLE | 방지 | 방지 | 방지 |
위 표는 SQL 표준이 말하는 최소 보장이다. 실제 DBMS는 표준보다 강하게 구현하기도 해서, 예를 들어 PostgreSQL의 REPEATABLE READ는 스냅샷을 쓰기 때문에 Phantom Read도 막는다. 시험에서는 표준 표를, 실무에서는 사용하는 DBMS 문서를 기준으로 삼는다.
| 구현 방식 | 원리 | 장점 | 한계 |
|---|---|---|---|
| 락 기반(2PL 계열) | 읽기에 공유 락, 쓰기에 배타 락을 걸고 보유 기간으로 수준을 조절 | 동작이 단순하고 최신 값을 읽음 | 읽기와 쓰기가 서로 대기하고 교착상태 위험이 커짐 |
| MVCC(다중 버전) | 변경 시 이전 버전을 남기고, 읽는 쪽은 기준 시점의 스냅샷을 읽음 | 읽기가 쓰기를 막지 않아 동시성이 높음 | 이전 버전 보관 공간이 필요하고, 갱신 충돌은 별도로 처리해야 함 |
기본 격리 수준은 제품마다 다르다. Oracle, PostgreSQL, SQL Server는 READ COMMITTED가, MySQL InnoDB는 REPEATABLE READ가 기본이다. 한 문항에서 기본값을 묻는다면 “DBMS마다 다르다”는 점과 대표 사례를 함께 쓰면 된다.
잔액 100,000원인 계좌를 가정한다. T1이 잔액을 조회하고, 그 사이 T2가 30,000원을 인출해 커밋한 뒤, T1이 다시 조회한다.
SELECT ... FOR UPDATE 같은 명시적 락이나 낙관적 락(버전 컬럼)을 쓰는 방식이 흔하다.격리 수준은 위로 갈수록 Dirty → Non-Repeatable → Phantom 순으로 이상 현상을 막고, 대신 동시성을 내어 준다.
이 글은 학습용 정리이며 실제 시험 문항과 다를 수 있다. 출제 기준은 한국데이터산업진흥원, 큐넷 등 공식 공지를 확인하라. 그림은 개념도이며 실측 데이터가 아니다.
배당은 회사가 번 이익을 주주에게 현금으로 나눠 주는 일이다. "배당수익률 3%"라는 숫자는 매력적으로 보이지만 세금,…
주식 기사나 증권사 리포트에서 가장 자주 만나는 지표가 PER, PBR, ROE이다. 따로 외우면 숫자의 나열에…
컴퓨터활용능력 스프레드시트 파트에서는 조건에 맞는 값만 합치고 세는 문제가 거의 매 회차 나온다. SUMIF 계열…
엑셀에서 값을 찾아 가져오는 함수 가운데 VLOOKUP은 컴퓨터활용능력 필기·실기 모두에서 가장 자주 나오는 함수이다. 문제의…
프로젝트를 시작하기 전에 "몇 명이 몇 달 일해야 하나"를 대략 가늠하는 일이 소프트웨어 비용 산정이다.…