select for update/ share 모두 현재 record에 잠금을 걸어야 하기 때문에 격리수준에 관계 없이 최신 commit을 읽어오게된다.A의 balance가 100일 때 for update없이 2개의 session에서 select한후에 -100을 수행하면 계좌가 -100인 상태가 되어버린다.이를 방지하기 위해 select ~ for update를 통해 exclusive lock을 걸어서 더 이상 dml이 작동못하게 막은후에 현 트랜잭션에서만 dml 작업을 수행하게 한다.굳이 select for update를 쓰지말고 update where절에 조건을 넣어주고 처리된 row 행 숫자 값으로 부가적인 처리를 할 수 있다.select for update자체에 where 절을 추가해서 불필요한 l..