문제
트랜잭션 격리 수준 중에서 Dirty Read와 Non-Repeatable Read는 방지하지만 Phantom Read는 발생할 수 있는 격리 수준은 무엇인가?
정답
REPEATABLE READ
REPEATABLE READRepeatable Read리피터블 리드REPEATABLE_READ
해설
REPEATABLE READ 격리 수준에서는 1) Dirty Read를 방지한다 - 커밋되지 않은 데이터는 읽을 수 없다. 2) Non-Repeatable Read를 방지한다 - 같은 트랜잭션 내에서 동일한 행을 여러 번 읽을 때 일관된 값을 보장한다. 3) 하지만 표준 SQL에서는 Phantom Read가 발생할 수 있다 - 범위 조건으로 조회할 때 다른 트랜잭션이 새로운 행을 삽입하면 결과 집합이 달라질 수 있다.