LOCK STRATEGY

낙관적 vs 비관적 동시성 제어

충돌을 드물다고 보고 나중에 감지할지, 충돌 비용이 크다고 보고 먼저 잠글지 선택한다.

낙관적 감지
비관적 대기
재시도/타임아웃 설계
구분
낙관적 잠금
비관적 잠금
전제

충돌이 드물고 재시도가 가능하다

충돌이 잦거나 손실 비용이 크다

방식

version 컬럼 또는 조건부 update로 사후 감지

SELECT FOR UPDATE 등으로 먼저 잠금

실패

OptimisticLockException 후 재조회/재계산

대기, 타임아웃, 데드락 재시도