JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

Saga 패턴이란? / 보상 트랜잭션이란?

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
MSA
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 MSA 입문/실전
slug
what-is-saga-pattern-and-compensation
type
post
updatedAt
Dec 6, 2025 05:43 AM

✅ Saga 패턴이란?

MSA 환경에서의 트랜잭션을 처리할 때 사용하는 패턴 중 하나가 Saga 패턴이다. Saga 패턴은 보상 트랜잭션을 활용해 ‘여러 작업을 하나의 트랜잭션으로 묶은 것’처럼 작동시키는 방식이다.
 
 

✅ 보상 트랜잭션이란?

보상 트랜잭션이란 수동으로 트랜잭션의 롤백(Rollback) 효과를 내는 방법이다. 아래 예시를 바로 보자.
notion image
‘주문 생성 → 금액 출금 → 재고 차감 → 배송 준비’의 작업을 하던 중 ‘배송 준비’ 과정에서 에러가 났다면 지금까지 해왔던 작업을 다 취소시켜야 한다. 기존에 수행했던 작업을 취소하기 위해 기존 작업을 원래대로 돌릴 수 있는 반대되는 작업을 수행하면 된다. 즉, 재고 차감을 했으니 다시 재고 증감을 하면 되고, 금액 출금을 했으니 다시 금액 입금을 하면 되고, 주문을 생성했으니 주문을 삭제하면 된다.
 
여기서 기존에 수행했던 작업을 취소하기 위해 행하는 ‘재고 증감, 금액 입금, 주문 생성 취소’와 같은 취소 작업을 보고 보상 트랜잭션이라고 한다. 그리고 위 예시처럼 보상 트랜잭션을 활용해 여러 작업을 하나의 트랜잭션으로 묶은 것처럼 연결해주는 처리 방식이 Saga 패턴이다.
 
 
👨🏻‍🏫
Saga 패턴에 대한 이론은 이 정도면 충분하다. 이론을 더 자세히 설명하는 것보다 실제 프로젝트에서 코드를 짜보는 게 훨씬 이해가 빠르다. 다음 강의에서 Saga 패턴을 활용해 코드를 작성해보자.
 
author
JSCODE 박재성
category
MSA
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 MSA 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 05:45 AM
📎
이 글은 비전공자도 이해할 수 있는 MSA 입문/실전 강의의 수업 자료 중 일부입니다.