<aside> 💡 추가로 작성해야하는 코드입니다.

</aside>

트랜잭션 격리수준(isolation level)이란 동시에 여러 트랜잭션이 처리 될때, 트랜잭션끼리 얼마나 서로 고립되어 있는지 나타내는 것이다.

즉, 간단하게 말해 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다.

격리 수준은 크게 아래와 4개로 나뉜다.

위에서 아래로 내려갈수록 트랜잭션간 고립 정도가 높아진다.

대신 성능이 떨어지는 것이 일반적이다.

일반적으로 온라인 서비스는 READ COMMITED나 REPEATABLE READ 중 하나를 사용한다.

(oracle = READ COMMITTED, mysql = REPEATABLE READ)

READ UNCOMMITTED

그냥 데이터를 막 다루는 단계 트랜잭션이라는 격리수준이 있는거 같지도 않다.

  1. A 트랜잭션에서 10번 사원의 나이를 27살에서 28살로 바꿈

  2. 아직 커밋하지 않음

  3. B 트랜잭션에서 10번 사원의 나이를 조회함

  4. 28살이 조회됨

    이를 더티 리드(Dirty Read)라고 한다