Tag: software-design
All the articles with the tag "software-design".
DDD 7편 — Domain Event와 Anti-Corruption Layer
Domain Event로 Aggregate 간 결과적 일관성을 구현하고, Anti-Corruption Layer로 외부 시스템으로부터 도메인을 보호하는 방법을 다룬다.
DDD 6편 — Domain Service와 Application Service
도메인 로직을 Entity에 둘지, Domain Service에 둘지, Application Service에 둘지 — 배치 기준과 각 계층의 책임을 정리한다.
DDD 5편 — Aggregate와 Repository
Aggregate는 일관성의 경계를 정의하고, Repository는 그 경계 단위로 영속성을 다룬다. 주문 도메인 예시로 설계 규칙과 구현을 살펴본다.
DDD 4편 — Entity와 Value Object
같은 이름, 같은 속성이어도 다른 객체가 있고, 값만 같으면 같은 객체가 있다. Entity와 Value Object의 구분 기준과 설계 원칙을 정리한다.
DDD 3편 — Context Mapping
Bounded Context가 섬이 아닌 이상, 서로 연결되어야 한다. Shared Kernel부터 Separate Ways까지, 컨텍스트 간 관계를 정의하는 7가지 패턴을 다룬다.
DDD 2편 — 유비쿼터스 언어와 Bounded Context
같은 단어가 다른 뜻을 가질 때 혼란이 시작된다. 유비쿼터스 언어로 소통을 맞추고, Bounded Context로 경계를 긋는 방법을 다룬다.
DDD 1편 — 도메인 중심 설계가 필요한 이유
소프트웨어의 복잡성은 기술이 아니라 도메인에서 온다. DDD의 핵심 전제, 전략적·전술적 설계의 개요, 그리고 이 시리즈가 풀어갈 이야기를 정리한다.
소프트웨어 아키텍처 6편 — 모듈러 모놀리스: 마이크로서비스 전에 해볼 수 있는 것
모놀리스의 진짜 문제는 크기가 아니라 결합이다. 모듈 경계, Spring Modulith, 이벤트 기반 통신, 점진적 전환 전략을 정리한다.
소프트웨어 아키텍처 5편 — CQRS와 이벤트 드리븐: 읽기/쓰기 분리에서 이벤트 기반까지
CQRS의 Command/Query 분리 원칙, 이벤트 드리븐 아키텍처의 생산-소비 구조, Event Sourcing과의 조합까지. 도입 판단 기준을 정리한다.








