덮어쓰기 발생 조건

둘 다 100만원을 읽은 뒤 따로 계산하면, 마지막 WRITE가 먼저 반영된 90만원을 무시하고 덮어씁니다.

1 읽기 같은 시작값 확보
READ
100만원 읽음

출금 10만원 계산 준비

DB
100만원

아직 아무 WRITE도 없음

READ
100만원 읽음

결제 20만원 계산 준비

2 먼저 기록 T1이 반영
WRITE
90만원 기록

100 - 10 결과가 먼저 저장됨

DB
90만원

여기까지는 정상 상태

HOLD
여전히 100만원 기준

최신값 90만원을 다시 읽지 않음

3 덮어쓰기 갱신 분실 발생
DONE
T1 변경 완료

원래는 이 90만원 위에서 다음 계산이 이어져야 함

DB
80만원

마지막 WRITE가 저장되며 T1의 10만원 출금이 사라짐

WRITE
80만원 기록

90만원이 아니라 옛값 100만원에서 20만원을 뺀 결과

정상 직렬 결과 70만원
실제 결과 80만원, T1 갱신 분실