balance를 읽는 getter도 완료된 상태만 보도록 동일한 lock 규칙을 사용합니다.
balance ≥ amount
balance -= amount
balance += amount
같은 lock으로 읽기
모든 상태 접근 보호
핵심: 검증과 변경 사이에서 lock을 놓으면 다른 출금이 조건을 무효화할 수 있습니다.