비관적 락(Pessimistic Lock)
비관적 락은 동시에 여러 트랜잭션이 같은 데이터를 수정할 때 발생할 수 있는 충돌을 방지하기 위해서 사용된다. 동시성 제어가 중요한 시나리오에서 데이터 무결성을 유지하는데 유용하다.
비관적 락은 두 가지 유형이 있다.
- PESSIMISTIC_READ: 다른 트랜잭션이 데이터를 읽을 수는 있지만, 수정할 수는 없다.
- PESSIMISTIC_WRITE: 다른 트랜잭션이 데이터를 읽거나 수정할 수 없다.
@Lock(LockModeType.PESSIMISTIC_WRITE)
비관적 쓰기 락을 사용하면 트랜잭션이 특정 엔티티를 수정하기 전에 해당 엔티티를 잠근다. 이를 통해 다른 트랜잭션이 해당 엔티티를 읽거나 수정하지 못하도록 한다.
@Lock(LockModeType.PESSIMISTIC_READ)
비관적 읽기 락을 사용하면 트랜잭션이 특정 엔티티를 읽는 동안 다른 트랜잭션이 해당 엔티티를 수정하지 못하도록 한다. 이를 통해 읽는 동안 데이터의 일관성을 보장할 수 있다.
반응형