Skip to content

Latest commit

 

History

History
21 lines (15 loc) · 969 Bytes

rollback-need.md

File metadata and controls

21 lines (15 loc) · 969 Bytes

트랜잭션 롤백이 필요한 이유

상황을 통해 예시를 들어보자
누군가에게 돈을 송금한다는 로직을 작성한다고 가정해보자.

그렇다면 발생해야되는 일을 간단히 적어보자면

  1. 보내는 사람의 계좌에서 돈을 꺼낸다.
  2. 받는 사람의 계좌에 돈을 넣는다.

정도 일 것이다.

그래서 돈을 송금하는 상황이 발생했을 때
송금이 제대로 성공하면 모두 승인되고 데이터베이스에 반영되겠지만

송금 도중에 뭔가 오류가 발생했다고 가정해보자.
예를 들어 보내는 사람의 계좌에서 돈을 꺼내는데는 성공했지만,
받는 사람의 계좌에 돈을 넣는데 실패했다면
이 때 RollBack하는 것이다.

즉, 처음 부터 없던 송금으로 되돌리는 것.
보내는 사람의 계좌에서도 돈이 빠져나가지 않은 상태가 되는 것이다. (모든 작업을 원상태로 되돌림)