동시성 이슈가 발생할 것이라 생각을 해서 미리 줄을 세우게 만드는 방법
단점
CAS 예제
홍길동의 계좌로 서로 다른 두 개의 트랜잭션이 동시에 일어났다.
트랜잭션 1이 살짝 먼저 홍길동의 잔고를 읽어 왔고, 트랜잭션 2도 똑같은 홍길동의 잔고를 읽어 왔다.
트랜잭션 1이 먼저 update 쿼리를 날리고 where 구문에서 버전의 정보가 1인경우 update를 하게 만들었다.
버전이 1이기에 홍길동의 잔고는 100이 줄었고 버전은 2가 되었다.
트랜잭션 2도 똑같은 update쿼리를 날렸지만 where구문 버전이 다르기에 쿼리는 실패하게 된다.