2026/03/02 2

Saga 패턴 (Saga Pattern)

Saga 패턴은 마이크로서비스 아키텍처(MSA)와 같이 분산된 시스템 환경에서 데이터의 일관성을 유지하기 위해 사용되는 트랜잭션 관리 아키텍처 패턴입니다. 과거 모놀리식(Monolithic) 시스템에서 주로 사용하던 2-Phase Commit(2PC)과 같은 분산 트랜잭션은 서비스 간 결합도를 심하게 높이고 심각한 성능 저하를 유발하기 때문에, 이를 극복하기 위해 도입되었습니다.1. 핵심 동작 원리Saga 패턴은 여러 서비스에 걸쳐 있는 하나의 거대한 비즈니스 트랜잭션을 일련의 독립적인 로컬 트랜잭션(Local Transaction) 단위로 쪼개어 순차적으로 처리합니다.로컬 트랜잭션의 연속: 각 마이크로서비스는 자신의 데이터베이스에 대한 로컬 트랜잭션을 실행합니다. 작업이 성공적으로 완료되면, 다음 서비..

CQRS(Command Query Responsibility Segregation) 패턴

CQRS는 소프트웨어 시스템에서 데이터의 상태를 변경하는 작업(Command)과 데이터를 조회하는 작업(Query)의 책임을 분리하는 아키텍처 패턴입니다. 기존의 단순한 CRUD(Create, Read, Update, Delete) 기반 시스템은 하나의 데이터 모델을 읽기와 쓰기 양쪽에 모두 사용합니다. 하지만 도메인이 복잡해지고 트래픽이 증가하면, 하나의 모델로 복잡한 비즈니스 로직(쓰기)과 다양한 화면 요구사항(읽기)을 모두 만족시키기 어려워져 성능 저하와 병목 현상이 발생합니다. CQRS는 이 두 작업의 모델을 완벽히 분리하여 각각의 목적에 맞게 최적화합니다.1. 핵심 원리: Command와 Query의 분리구분Command (명령)Query (조회)역할데이터의 상태 변경 (Create, Updat..