IT/Micro Service Architecture

Micro Service Architecture - 5.분해전략 2

상쾌한기분 2021. 9. 27. 12:03
반응형

마이크로서비스 아키텍쳐

3단계 프로세스

1단계는 요청을 추출, 요청에 대해서 추상적으로 관찰 해야 합니다.
2단계는 어떻게 서비스로 분해할지 결정 해야 합니다.
3단계는 서비스별 API를 정의하고 서비스에 역할 배정 및 서비스간 협동에 대해서 정의를 해야 합니다.

2-2-1

#

1단계. 시스템 작업 식별

시스템 작업을 기술하기 위한 고수준 도메인 모델을 생성한다.
위 그림을 통하면 이는 Order, Delivery, Restaurant 로 추출할 수 있다.

고수준의 도메인 모델로 나누기 위해서는 시나리오 작성을 통해서 하는 방법이 있다.

전제 (Given)
- 소비자가 있다.
- 음식점이 있다.
- 음식점은 소비자의 주소로 음식을 배달 한다.
- 주문 총액은 최소 주문량 조건에 부합해야 한다.

조건 (When)
- 소비자가 음식점에 주문을 할 때

결과 (Then)
- 소비자의 신용카드가 승인 되고
- 주문은 음식점 승인 대기로 생성
- 생성된 주문은 소비자와 연관
- 생성된 주문은 음식점과 연관

주문 생성 시나리오를 통해서 Consumer, Order, Restraunt, CreditCard, MenuItem 등의 클래스(명사)를 알 수 있다.

전제 (Given)
- 현재 주문은 음식점 승인 대기 상태
- 음식점에 배달원이 있다.

조건 (When)
- 음식점은 언제까지 음식을 준비할 수 있다고 승인 한다.

결과 (Then)
- 주문은 음식점 승인으로 변경
- 주문의 약속 시간이 업데이트
- 주문은 배달원 배정

주문 승인 시나리오에서 Courier(배달원), Delievery, Address등의 클래스(명사)를 알 수 있다.

시나리오 확인 후에는 클래스를 정리한다.

Consumer : 주문을 하는 소비자
Order : 소비자가 한 주문 및 상태 추적
OderLineItem : Order 품목
DeliveryInfo : 주문 배달할 시간과 장소 등
Restaruant : 음식점
Courier : 주문을 배달하는 배달원 가용성 및 현재 위치 추적
Address : 소바자와 음식점의 주소
Location : 주소의 위치(위도,경도)

작업정의

작업 식별 후에는 작업에 대한 더 추상화 정의를 한다.

소비자
주문 생성 - createOrder() - 주문을 생성한다.

음식점
주문 접수 - accecptOrder() - 음식점에 주문정보를 접수하고 준비할 수 있도록 한다.
주문 픽업 - notifyOrderIsReadyForPickup() - 주문 음식이 준비 되었다고 알린다.

배달원
위치 업데이트 - updateLocation() - 배달원의 현재 위치를 업데이트.
배달 픽업 - notifyDeliveryPickUp() - 주문 음식이 배달원이 픽업 했음을 알린다.
주문 배달 완료 - notifyDeliveryIsDone() - 주문음식을 배달원이 소비자에게 배달 했음을 알린다.

#

2단계. 서비스 식별

비지니스(조직의 하는 업무 및 능력)을 분석 합니다.

공급자 관리
배달원 관리 : 배달 정보 관리
음식점 정보 관리 : 음식점 메뉴, 위치, 영업 시간, 기타 정보

소비자 관리
소비자에 관한 정보 관리

주문 접수 및 이행
주문 관리 : 음식점과 소비자가 주문을 생성/관리
배달원 가용성 : 배달원의 배달 가능 유무 실시간 관리
배달 관리 : 주문을 소비자에게 배달

회계
소비자, 음식점, 배달원 회계

2-2-2

이후에 더 정교하게 발전할 것이다. 처음에는 서비스들을 어떻게 협동 구현하는지 살피는 과정이 중요하다.

728x90
반응형