트랜젝션(transaction)
2026년 5월 17일
-
트랜젝션은 거래라는 뜻이고 비즈니스 로직(Business Logic) 계층에서 사용하는 용어이다.
-
일반적인 서비스(Service) 업무 처리는 트랜젝션 단위로 진행된다.
-
쪼갤 수 없는 업무의 최소 단위라고 생각하면 된다.
-
트랜젝션이란 반드시 모두 성공해야 하는 일련의 과정을 뜻한다.
-
만약 성공하지 못하면 원래 상태로 복구, 롤백(Rollback)이 된다.
-
스프링은 서비스(Service) 클래스(Class)에 @Transactional를 이용하여 트랜젝션을 이용한다.
현실세계에서의 예시
-
식당 예약을 예를 들면 다음과 같다.
- 시간 예약
- 테이블 지정
- 메뉴 선택
- 결제
- 영수증 발행
- 예약 완료
-
만약 어떤 고객이 메뉴 선택까지 마친 상태, 즉 3번의 상태에서 결제에 실패했다면 앞서 진행한 기록은 모두 취소되어야 한다.
-
실패한 정보가 계속 남으면 또 다른 예약을 받을 수 없기 때문이다.
-
이렇게 모두 성공해야 하는 일련의 과정을 트랜젝션이라고 한다.
-
트랜젝션이 실패로 돌아갈 경우 진행 초기 단계로 돌리는 것을 롤백(Rollback)이라고 한다.
-
밑의 이미지는 트랜젝션과 롤백을 나타낸 것이다.
