From f776737bee86fda54076d5abb40ac514fd1680b8 Mon Sep 17 00:00:00 2001 From: jyjang Date: Sun, 19 Apr 2020 17:57:22 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 15c6e9f..5ec7854 100644 --- a/README.md +++ b/README.md @@ -119,24 +119,40 @@ ![image](https://user-images.githubusercontent.com/487999/79682333-500f3f00-825c-11ea-8a48-f51367a1592d.png) -- 이벤트 도출 +- 이벤트 도출 +![image](https://user-images.githubusercontent.com/487999/79683604-47bc0180-8266-11ea-9212-7e88c9bf9911.png) + +- 부적격 이벤트 탈락 +![image](https://user-images.githubusercontent.com/487999/79683612-4b4f8880-8266-11ea-9519-7e084524a462.png) - 과정중 도출된 잘못된 도메인 이벤트들을 걸러내는 작업을 수행함 - 주문시>메뉴카테고리선택됨, 주문시>메뉴검색됨 : UI 의 이벤트이지, 업무적인 의미의 이벤트가 아니라서 제외 -- 폴리시 매핑 +- 액터, 커맨드 부착하여 읽기 좋게 +![image](https://user-images.githubusercontent.com/487999/79683614-4ee30f80-8266-11ea-9a50-68cdff2dcc46.png) -- 커맨드/유저 - -- 어그리게잇: app의 Order, store 의 주문처리, 결제의 결제이력은 그와 연결된 command 와 event 들에 의하여 트랜잭션이 유지되어야 하는 단위로 그들 끼리 묶어줌 +- 어그리게잇으로 묶기 +![image](https://user-images.githubusercontent.com/487999/79683618-52769680-8266-11ea-9c21-48d6812444ba.png) + + - app의 Order, store 의 주문처리, 결제의 결제이력은 그와 연결된 command 와 event 들에 의하여 트랜잭션이 유지되어야 하는 단위로 그들 끼리 묶어줌 + +- 바운디드 컨텍스트로 묶기 +![image](https://user-images.githubusercontent.com/487999/79683625-560a1d80-8266-11ea-9790-40d68a36d95d.png) -- Bounded Context 도출 - 도메인 서열 분리 - Core Domain: app(front), store : 없어서는 안될 핵심 서비스이며, 연견 Up-time SLA 수준을 99.999% 목표, 배포주기는 app 의 경우 1주일 1회 미만, store 의 경우 1개월 1회 미만 - Supporting Domain: marketing, customer : 경쟁력을 내기위한 서비스이며, SLA 수준은 연간 60% 이상 uptime 목표, 배포주기는 각 팀의 자율이나 표준 스프린트 주기가 1주일 이므로 1주일 1회 이상을 기준으로 함. - General Domain: pay : 결제서비스로 3rd Party 외부 서비스를 사용하는 것이 경쟁력이 높음 (핑크색으로 이후 전환할 예정) -- 컨텍스트 매핑 +- 폴리시 부착 (괄호는 수행주체, 폴리시 부착을 둘째단계에서 해놔도 상관 없음. 전체 연계가 초기에 드러남) +![image](https://user-images.githubusercontent.com/487999/79683633-5aced180-8266-11ea-8f42-c769eb88dfb1.png) + +- 폴리시의 이동과 컨텍스트 매핑 (점선은 Pub/Sub, 실선은 Req/Resp) +![image](https://user-images.githubusercontent.com/487999/79683641-5f938580-8266-11ea-9fdb-4e80ff6642fe.png) + +- 완성된 1차 모형 +![image](https://user-images.githubusercontent.com/487999/79683646-63bfa300-8266-11ea-9bc5-c0b650507ac8.png) + - 1차 완성본에 대한 기능적 요구사항을 커버하는지 검증 @@ -168,13 +184,16 @@ ``` cd app -mvn spring-boot:run # H2 +mvn spring-boot:run + cd pay -mvn spring-boot:run # H2 +mvn spring-boot:run + cd store -mvn spring-boot:run # MySQL +mvn spring-boot:run + cd customer -python policy-handler.py # 파이썬 +python policy-handler.py ``` ## DDD 의 적용