dobecom.log
로그인
dobecom.log
로그인
[MSA] 6. MSA 개발 프로세스와 도메인 주도 설계 개념
steve
·
2024년 3월 12일
팔로우
0
0
Backend
목록 보기
13/17
개요
마이크로서비스 개발 프로세스에 대해 이해한다
도메인 주도 설계의 전반적인 내용을 알아본다
컨텍스트 매핑에 대해 알아본다
마이크로서비스 개발 프로세스
마이크로서비스 도출
고려 사항
도메인 : 업무영역, 제공서비스
구성원 역량 및 운영 조직 구조
서비스 변경 / 배포 빈도
사용량 파악 (트랜잭션 빈도)
데이터베이스 Ownership
시스템 복잡성 고려하여 마이크로 서비스를 정의
로컬 복잡성 : 개별 마이크로 서비스 내에서의 복잡성
글로벌 복잡성 : 서비스 간의 상호작용과 의존성
판단 기준 : 너무 많이 쪼개도 안좋고 너무 안쪼개도 안좋으니 균형있게 설계해야 함
기능 분해를 통해 서브 시스템, 업무 영역 분리
도메인 주도 설계를 통한 마이크로 서비스 도출
도메인 주도 설계
마이크로 서비스 분리 기준
Bounded Context 기준
전략적 설계, 전술적 설계를 통한 분리
유비쿼터스 언어를 사용하여 현업(도메인 전문가)과 개발자 간 서로 이해할 수 있는 소통 필요
예시)
사용자 - 포괄적인 의미 사용 X
방문자 - O
도메인 모델링
유비쿼터스 언어로 비즈니스 도메인 모델을 구축하는 것
고객과 주문이라는 멘탈 모델(머릿속의 모델링) 을 구분을 해서 정의를 하는것은 좋으나 덩어리가 너무 커지도록 하지 않고 Bounded Context(맥락의 경계)를 잘 설계해야 한다
동일한 Customer라고 해도 각각 컨텍스트내에서 일관성을 가져야 한다
과거에는 "Customer"라는 용어를 모든 시스템 총괄 하나의 의미를 가졌다 → 의미 충돌 발생
혼동을 피하기 위해 컨텍스트 간 용어를 분리하여 정의해야함
도메인과 BC(바운디드 컨텍스트)는 아래처럼 필드/메소드 등을 정의
Context Mapping
Bounded Context간에 상호 작용 하기 위한 관계 설정을 Context Mapping이라 함
유형
협력 패턴 1. 파트너쉽 관계
A-B 팀 간 의사 소통으로 풀어나가는 관계
협력 패턴 2. 공유 영역
A-B 팀 간 공유 영역이 존재할 때 공통 부분은 공통 라이브러리화 하여 배포 진행
공급자-소비자 패턴
대부분의 Bounded Context는 공급자-소비자 패턴
공급자 → 소비자 방향 = Down stream
소비자 → 공급자 방향 = Up stream
세부적으로는 Conformist(순응주의자), ACL(충돌방지계층), OHS(오픈 호스트 서비스), 공개프로토콜 공표된 언어(PL) 유형이 있음
분리형 노선
각각의 BC가 커뮤니케이션이 어려운 경우 특정 기능을 중복으로 두는 것이 더 저렴한 경우 사용
서비스 매핑도
예시 참고
실무 설계 예시
호출 방식은 실선(동기)과 점선(비동기)로 표기
위 과정에 대한 표준화 된 프로세스는 Event Storming 기법을 활용하여 Bounded Context를 도출하고, 그 결과에 대한 서비스 매핑도를 위와 같이 작성해보는 연습이 필요함
steve
팔로우
이전 포스트
[MSA] 5. MSA 설계 동향과 기술 개념 설명
다음 포스트
[MSA] 7. MSA 설계 기법 - 전략적 설계
0개의 댓글
댓글 작성
관련 채용 정보