계좌 lock 하나는 잔액 검증과 차감의 같은 불변식을 보호한다

balance를 읽는 getter도 완료된 상태만 보도록 동일한 lock 규칙을 사용합니다.

Account invariantbalance ≥ 0

check

balance ≥ amount

withdraw

balance -= amount

deposit

balance += amount

getBalance

같은 lock으로 읽기

lock

모든 상태 접근 보호

핵심: 검증과 변경 사이에서 lock을 놓으면 다른 출금이 조건을 무효화할 수 있습니다.