입출금과 기록 추가는 같은 상태 전이 순서를 가진다

기존 상태와 요청을 검증한 뒤 성공한 다음 상태만 채택합니다.

  1. 현재 상태

    balance 또는 size

  2. 요청

    amount 또는 record

  3. 검증

    잔액·용량·값

  4. 다음 상태

    새 balance·새 size

  5. 채택

    호출자 변수 대입

핵심: 실패하면 기존 상태를 반환해 부분 변경이 남지 않게 합니다.