728x90
반응형

CQRS 5

Event-Carried State Transfer (ECST)

개요Event-Carried State Transfer(ECST)는 이벤트 소싱(Event Sourcing)과 비동기 메시징 기반 시스템에서 데이터를 일관되고 신속하게 전달하기 위한 설계 방식입니다. 이벤트 메시지 자체에 상태(State) 정보를 포함시켜, 소비자(Consumer)가 별도 조회 없이 필요한 정보를 즉시 활용할 수 있게 하며, CQRS(Command Query Responsibility Segregation) 및 마이크로서비스 아키텍처에서 자주 사용됩니다.1. 개념 및 정의 항목 설명 정의이벤트 메시지에 상태 정보 전체 또는 핵심 속성을 포함하여 상태를 동기화하는 이벤트 설계 방식목적소비자가 이벤트만으로 필요한 상태를 식별할 수 있도록 함적용 구조Event-driven architectu..

Topic 2025.06.12

CQRS(Command Query Responsibility Segregation)

개요CQRS(Command Query Responsibility Segregation)는 애플리케이션의 읽기와 쓰기 작업을 명확하게 분리하여 설계하는 아키텍처 패턴입니다. 복잡한 비즈니스 로직을 처리하고 확장성을 높이기 위한 목적으로 사용되며, 마이크로서비스 아키텍처나 이벤트 소싱과 자주 결합됩니다.1. 개념 및 정의CQRS는 Command(명령)와 Query(조회)의 책임을 분리함으로써, 애플리케이션에서 상태 변경과 상태 조회를 각각 독립적으로 처리할 수 있도록 합니다.Command: 데이터를 변경하는 작업 (예: 생성, 수정, 삭제)Query: 데이터를 조회하는 작업 (예: 목록 보기, 상세 보기)이 분리는 시스템 복잡도를 관리하고, 성능과 보안 요구 사항에 따라 각 책임을 독립적으로 최적화할 수 있..

Topic 2025.05.31

Event Modeling

개요Event Modeling은 소프트웨어 시스템을 **시간의 흐름에 따른 이벤트 중심(Event-Centric)**으로 설계하고 문서화하는 방법론입니다. 이는 복잡한 시스템의 비즈니스 로직, 사용자 인터랙션, 데이터 흐름을 이벤트 시퀀스 기반의 타임라인 모델로 시각화하여 팀 전체의 이해를 높이고 일관된 구현을 가능하게 합니다. 특히 이벤트 소싱, CQRS, 마이크로서비스 기반의 시스템 설계와 잘 맞물립니다.1. 개념 및 정의Event Modeling은 Adam Dymitruk이 제안한 설계 기법으로, 시스템을 상태(State)가 아닌 이벤트(Event) 단위로 기술합니다. 핵심은 사용자 행동, 시스템 반응, 데이터 저장/조회 등을 시간 순으로 정렬하여 흐름 기반으로 시스템을 설계하는 것입니다. 이는 ‘..

Topic 2025.05.08

Event Sourcing Storage

개요Event Sourcing은 시스템의 상태를 현재 데이터(snapshot)로 저장하는 대신, 과거에 발생한 모든 변경 이벤트(event)들을 순차적으로 기록하여 시스템 상태를 복원하는 데이터 저장 및 처리 패턴입니다. 이벤트 로그(event log)를 통해 전체 변경 이력을 보존할 수 있어, 감사 추적, 디버깅, 복원, 실시간 스트리밍 등 다양한 응용 분야에서 강력한 유연성과 신뢰성을 제공합니다.1. 개념 및 정의항목내용정의시스템 상태 변경을 각각의 불변(immutable) 이벤트로 기록하고, 이벤트 시퀀스를 통해 현재 상태를 유추하는 데이터 저장 방식목적상태 변경 이력 완전 보존 및 복원 가능성 확보필요성단순 CRUD 시스템은 변경 이유 추적과 세밀한 복원에 한계 존재Event Sourcing은 시..

Topic 2025.05.04

DDD(Domain Driven Design)

개요DDD(Domain Driven Design, 도메인 주도 설계)는 복잡한 비즈니스 도메인을 효과적으로 반영하고 유지보수 가능한 소프트웨어를 개발하기 위한 모델 중심의 설계 철학입니다. Eric Evans가 제안한 이 개념은 도메인 전문가와 개발자 간의 협업을 중심에 두고, 공통된 언어(Ubiquitous Language), 도메인 모델링, 계층화 설계 등을 통해 소프트웨어와 비즈니스 간의 일관성을 확보합니다. 이 글에서는 DDD의 개념, 핵심 원칙, 구성 요소, 적용 전략 등을 체계적으로 설명합니다.1. 개념 및 정의DDD는 비즈니스 도메인 지식을 바탕으로 소프트웨어를 설계하고 구현하는 접근 방식입니다. 소프트웨어의 구조와 용어가 비즈니스의 본질을 반영하도록 하여, 개발자와 도메인 전문가가 동일한 ..

Topic 2025.03.26
728x90
반응형