728x90
반응형
MSA에서 중요한 Saga 패턴에 대해 정리해보았습니다.
🏗️ 사가 패턴 (Saga Pattern) 이란?
사가 패턴은 마이크로서비스 아키텍처(MSA)처럼 데이터베이스가 분산되어 있는 환경에서 데이터 일관성(Data Consistency)을 유지하기 위해 사용하는 핵심 디자인 패턴입니다.
- 문제 상황: 서비스마다 DB가 따로 있어서, 기존의 단일 DB 방식인 ACID 트랜잭션을 사용할 수 없음. (주문은 성공했는데 결제가 실패하면? 난감하죠.)
-> ACID가 뭐야?
- 원자성 (Atomicity): 다 성공하거나, 아니면 다 취소하거나 (중간은 없다).
- 일관성 (Consistency): 데이터베이스 규칙은 어떤 상황에서도 꼭 지킨다.
- 격리성 (Isolation): 여러 작업이 동시에 돌아가도 서로 간섭하지 않는다.
- 지속성 (Durability): 한번 저장된 데이터는 절대 사라지지 않는다 (정전돼도 안심).
- 해결책: 비즈니스 로직을 여러 개의 로컬 트랜잭션으로 쪼개고, 이를 순차적으로 실행하며 관리함.
🔄 핵심 작동 원리: 보상 트랜잭션 (Compensating Transaction)
사가 패턴의 가장 큰 특징은 "실패했을 때 되돌리는 방법"입니다.
보상 트랜잭션이란?
어떤 단계에서 오류가 발생했을 때, 그 이전에 성공했던 단계들을 취소하기 위해 실행하는 '반대 작업'입니다. (예: 결제 실패 시 -> 주문 상태를 '취소'로 변경)
반응형
'Study' 카테고리의 다른 글
| [내일배움캠프 TIL] 29일차 - 테라폼 (Terraform)에 대해 (0) | 2026.05.15 |
|---|---|
| [내일배움캠프 TIL] 28일차 - CQRS (1) | 2026.05.14 |
| [내일배움캠프 TIL] 26일차 - DB 성능 최적화 전략 (0) | 2026.05.12 |
| [내일배움캠프 TIL] 25일차 - 캐싱 전략 (0) | 2026.05.11 |
| [내일배움캠프 TIL] 24일차 - CI, Github Actions로 CI 파이프라인 구축하기 (0) | 2026.05.08 |