여러 상태 변경을 하나의 작업으로 묶고 실패 시 이전 값으로 되돌립니다.
트랜잭션은 관련 변경이 전부 성공하거나 전부 취소되도록 경계를 만듭니다. 실습에서는 두 계좌 잔액의 이전 상태를 보관하고 검증 실패가 발생하면 rollback하는 흐름을 직접 실행합니다.
업무 작업을 시작하기 전 상태를 확보하고 모든 검증과 변경이 성공한 뒤에만 결과를 확정합니다.
실제 JDBC에서는 autoCommit을 끄고 성공 시 commit, 예외 시 rollback하며 Connection·PreparedStatement·ResultSet을 닫습니다.
트랜잭션 내부에 사용자 입력 대기나 외부 API 호출을 두지 않아 잠금 시간을 짧게 유지합니다.
첫 번째 값만 변경한 뒤 예외를 삼키면 두 계좌의 합계가 깨집니다.
직접 바꿔보세요잔액보다 큰 금액을 전달해 catch의 rollback 이후 두 잔액이 유지되는지 출력하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.