트랜잭션 격리 수준이 필요한 이유
트랜잭션 수준 읽기 일관성 (Transaction-Level Read Consistency)을 지키기 위함이다.
격리수준에는 4가지
가 있다.
격리 수준이 높아질수록 동시성(Concurrency)은 높아지고 속도는 느려진다.
JPA를 사용하게 되면 트랜잭션 격리 수준이 READ COMMITTED 정도가 된다.
낙관적 락
낙관적 락은 이름 그대로 트랜잭션 대부분은 충돌이 발생하지 않는다고 낙관적으로 가정하는 방법이다. 이 경우 데이터베이스가 제공하는 락 기능 대신 JPA가 제공하는 버전 관리 기능을 사용한다.
쉽게 말하자면, 어플리케이션이 제공하는 락이라고 할 수 있다.