03.DDD 구현
EDA 기반 Microservice 구현
아키텍처 구성도
.
이벤트 스토밍 결과
.
서비스 매핑도
.
아키텍처 구성도
.
전술적 설계(구현 전략)
서브시스템 유형
핵심(Core)
: 회사가 경쟁업체와 다르게 수행하고 있는 시스템사내에서 직접 구현
핵심 숙련 인재 할당
가장 진보된 엔지니어링 기술 적용
일반(Generic)
: 모든 회사가 같은 방식으로 수행하는 비지니스 활동이미 만들어진 제품(오픈 소스 솔루션)
지원(Supporting)
: 회사 비지니스 지원 활동사내 구현 X
고급 엔지니어링 기술 불필요
MSA 내부 아키텍처 스타일
헥사고날 아키텍처, 클린 아키텍처
레이어드 아키텍처
CQRS
비지니스 로직 구현 스타일
Transaction Script
: 간단한 비지니스 로직구현, 절차지향, 트랜젝션간 비즈니스 로직 중복, 핵심 도메인 XActive Record
: 자료 holding 전용 객체 사용(자료구조 외에도 CRUD 구현), Anemic Domain Model(빈약한 도메인 모델), 지원/일반 도메인Domain Model
: 비지니스 로직을 POJO로 구성(인프라/기술적 관심사 분리), 응용서비스 업무 흐름 제어, 대부분의 비즈니스 로직은 도메인 모델에 위임, 핵심 도메인
핵심 도메인 (대여)
Type1: 헥사고날 아키텍처, Domain Model 중심, Spring MVC, Spring DATA JPA, RDB
일반 도메인(회원,도서)
Type1: 헥사고날 아키텍처, Domain Model 중심, Spring MVC, Spring DATA JPA, RDB
지원 도메인(Best도서)
Type2: 레이어드 아키텍처 + CQRS, Domain Model, Spring MVC, Spring DATA, MogoDB, NoSQL
.
Hexagonal MSA
헥사고날 아키텍처는 도메인, 어플리케이션, 프레임워크 헥사곤으로 구성
Domain Hexagon
aggregate
,entity
,VO
,Enum
,Domain Event
로 구성비지니스 로직 구현
Application Hexagon
유스케이스(I/F)
,입력 포트
,출력포트(I/F)
로 구성트랜잭션 처리, 흐름 제어, 유스케이스 구현
유스케이스
유스케이스의 입출력 매개 변수인 DTO는 애플리케이션 헥사곤 내에서 활동(framework.web 패키지에 위치)
DTO는 유스케이스마다 달라야 한다. (재사용을 위해 하나의 큰 DTO를 만들어 사용 X)
모델을 DTO로 변경하여 사용
Framework Hexagon
입력/출력 어댑터
로 구성데이터 입/출력, 메시지 생산(발행)/소비(가입)
API 제공
대여
도서
사용자
Best 서적
Last updated