PREVENTION

갱신 분실 방지 선택지

같은 행을 동시에 바꾸는 경로는 먼저 잠그거나, 원자적으로 갱신하거나, 버전으로 충돌을 감지한다.

비관적 잠금
원자적 갱신
낙관적 검증
SELECT FOR UPDATE

읽은 뒤 계산해야 한다면 행 잠금으로 다른 수정을 대기시킨다.

조건부 UPDATE

잔액 조건을 포함한 update 한 문장으로 원자성을 확보한다.

Version Check

수정 시 version이 그대로인지 확인하고 0행이면 재시도한다.

실무 팁: 재고와 잔액처럼 음수가 되면 안 되는 값은 조건부 update와 영향 행 수 확인이 강력하다.