2024/12/10 2

[DesignPattern] SAGA 패턴

이번엔 SAGA 패턴에 대해 정리하고자 한다. 1. 개념- 분산 시스템에서 장기 실행 트랜잭션을 처리하며 데이터의 (최종) 일관성을 보장하기 위한 설계 패턴- 하나의 비즈니스 프로세스를 여러 단계의 트랜잭션으로 분할하고, 각 단계를 독립적으로 실행하도록 설계 2. 구현 방식- 조정 기반  > 중앙에서 조정자가 각 단계의 트랜잭션 실행 제어  > 중앙 컨트롤러가 명시적으로 다음 작업을 호출하거나 롤백  > 구현이 비교적 간단하지만, 조정자의 단일 장애점(SPOF)의 발생 가능- 중재 기반  > 각 서비스가 이벤트 기반으로 서로 통신하며 SAGA의 단계를 독립적으로 진행  > 한 단계가 완료되면 이벤트를 발행하여 다음 단계 트리거  > 분산 시스템 특성에 더 적합하지만, 설계 복잡 및 디버깅 어려움 3. 장..

IT/DesignPattern 2024.12.10

[DesignPattern] CQRS 패턴

흔히 이야기 되는 디자인 패턴, 그 중에서도 CQRS 패턴에 대해 정리하고자 한다.그전에 디자인 패턴이 무엇인지에 대해 먼저 정리가 필요하다. 0. 디자인 패턴- 소프트웨어 개발 과정에서 반복적으로 나타나는 문제를 해결하기 위한 모범 사례를 체계화 한 것- 코드의 재사용성과 유지보수성을 높이고, 개발자 간의 의사소통을 원활하게 하기 위한 공통 언어를 제공한다.- 예시 > 생성 패턴: 객체 생성과 관련된 문제를 해결 (ex. singleton, factory method) > 구조 패턴: 객체 간의 관계를 정의하고 구조를 설계 (ex. adapter, decorator) > 행위 패턴: 객체 간의 책임 분담과 협력 방식을 정의 (ex. observer, strategy) 1. CQRS(Command ..

IT/DesignPattern 2024.12.10