문제
트랜잭션 ACID 특성 중 원자성을 위한 보상 트랜잭션(Compensating Transaction) 기법의 개념과 적용 시나리오를 설명하고, 격리성 위반으로 발생하는 Phantom Read를 방지하기 위한 갭 로킹(Gap Locking) 메커니즘의 동작 원리를 서술하시오.
정답
보상 트랜잭션은 이미 커밋된 트랜잭션의 논리적 취소를 위해 반대 연산을 수행하는 트랜잭션으로, 분산 환경이나 장시간 트랜잭션에서 물리적 롤백이 불가능할 때 사용된다. 갭 로킹은 인덱스 레코드 사이의 빈 공간에 락을 설정하여 범위 검색 시 새로운 레코드 삽입을 차단함으로써 Phantom Read를 방지하며, Next-Key 락과 함께 사용되어 완전한 격리를 보장한다.
보상 트랜잭션논리적 취소반대 연산분산 환경장시간 트랜잭션갭 로킹Gap LockingPhantom Read범위 검색Next-Key 락
해설
보상 트랜잭션은 전통적인 롤백이 불가능한 상황에서 비즈니스 로직 수준에서 원자성을 보장하는 고급 기법이며, 갭 로킹은 인덱스 구조의 특성을 활용하여 존재하지 않는 레코드 범위까지 보호함으로써 Serializable 격리 수준에서 발생하는 Phantom Read를 효과적으로 차단한다.