<aside> 💡 추가로 작성해야하는 코드입니다.
</aside>
트랜잭션 격리수준(isolation level)이란 동시에 여러 트랜잭션이 처리 될때, 트랜잭션끼리 얼마나 서로 고립되어 있는지 나타내는 것이다.
즉, 간단하게 말해 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다.
격리 수준은 크게 아래와 4개로 나뉜다.
위에서 아래로 내려갈수록 트랜잭션간 고립 정도가 높아진다.
대신 성능이 떨어지는 것이 일반적이다.
일반적으로 온라인 서비스는 READ COMMITED나 REPEATABLE READ 중 하나를 사용한다.
(oracle = READ COMMITTED, mysql = REPEATABLE READ)
그냥 데이터를 막 다루는 단계 트랜잭션이라는 격리수준이 있는거 같지도 않다.
A 트랜잭션에서 10번 사원의 나이를 27살에서 28살로 바꿈
아직 커밋하지 않음
B 트랜잭션에서 10번 사원의 나이를 조회함
28살이 조회됨
이를 더티 리드(Dirty Read)라고 한다