비관적 락(Pessimistic Lock)

낙관적 락(Optimistic Lock)

데드락 (Dead Lock)

데드락은 두개 이상의 프로세스나 스레드가 서로의 작업을 기다리며 자원에 대해 무한정 대기하고 있는 상황을 뜻합니다.

*출처 : https://www.javatpoint.com/deadlock-in-dbms*

*출처 : https://www.javatpoint.com/deadlock-in-dbms*

선택 : 비관적 락

  1. 주문과 같이 동시에 여러 사용자의 쓰기 작업이 집중적으로 이루어지는 상황에선 많은 충돌이 일어난다.
  2. 낙관적 락을 사용하면 충돌 발생 시 지속적으로 버전을 확인하며 재 시도 로직이 너무 자주 발생하여 성능이 오히려 저하 됨.
  3. 비관적 락을 통해 접근을 제어해 데이터의 일관성을 효과적으로 관리할 수 있고 트랜잭션의 실행이나 처리 순서를 예측해 락을 획득하고 해제하는 과정이 명확해 서비스를 더욱 안정적으로 관리할 수 있다고 판단함.

사용할 비관적 락 종류