책너두 (도메인 주도 설계로 시작하는 마이크로서비스 개발) 16일차 (~133p)

요약

  • 5장. 마이크로서비스 설계 나머지 부분에 대해 이해함.
    • DDD의 전략적 설계
      • 컨텍스트 매핑
        • 컨텍스트 맵
    • 이벤트 스토밍을 통한 마이크로서비스 도출
      • 이벤트 스토밍 워크숍 준비

메모

컨텍스트 맵

  • 컨텍스트 맵은 여러 바운디드 컨텍스트 간의 관계를 보여주는 그림임.
    • 각각의 서브도메인 간의 관계를 설명하면 일반 서브도메인은 핵심 서브도메인과 지원 서브도메인과 공급자/소비자 관계를 맺음.
    • 이것은 일반 서브도메인이 공개 호스트 서비스로 일반 서브도메인을 사용할 수 있게 프로토콜/인터페이스를 제공하면서 발행된 언어를 다른 컨텍스트에 제공한다는 것을 의미함.
  • 또한, 하류의 두 컨텍스트는 충돌 방지 계층을 통해 상류 모델을 번역해서 사용할 수 있음.
    • 핵심 서브도메인에 포함되는 컨텍스트는 일반 서브도메인과 지원 서브도메인에 속하는 컨텍스트를 사용하고, 지원 서브도메인에 포함된 컨텍스트는 일반 서브도메인의 컨텍스트들을 사용함.
  • 전략적 설계로 도출된 컨텍스트를 기반으로 컨텍스트 매핑 관계를 표현한 개념적인 컨텍스트 맵은 아직 매핑을 위한 구체적인 기술 등이 정의되지 않은 상태임.
    • 매핑을 구현할 방안이 구체화되면, 상류에서 하류 컨텍스트로 데이터를 전달하기 위해 앞에서 설명한 컨텍스트 매핑 유형들을 구체적으로 표현할 수 있음.
  • 따라서 어느 정도 매핑 구현 방안이 정의되면 컨텍스트 맵을 구체적으로 표현할 수 있음.
    • 이를 통해 회원, 상품, 주문, 배송의 컨텍스트 매핑 관계를 보여주며, 공급자 컨텍스트들은 HTTP/JSON 기반의 REST API를 통해 동기 통신의 서비스를 제공함.
    • 회원 컨텍스트는 주문 컨텍스트로, 주문 컨텍스트는 배송 컨텍스트로 각각 비동기 이벤트 메시지를 발행함.

5.4 이벤트 스토밍을 통한 마이크로서비스 도출

  • 이벤트 스토밍DDD의 전략적 설계 과정에서 마이크로서비스 간의 의존성을 줄이는 방법으로, 서비스 간 비동기 메시지 기반 도메인 이벤트를 활용하는 것이 중요함.
    • 이는 알베르토 브란돌리니가 고안한 설계 기법으로, 이벤트 중심으로 이해관계자들이 모여 브레인 스토밍하는 워크숍을 의미함.
  • 이벤트 스토밍은 모든 이해관계자가 모여 서로가 가지고 있는 각 관점을 논의하며, 그 차이점을 이해하고 공유할 수 있다는 점에서 기존 방법론에서 장기간 단절하며 수행했던 요구사항, 프로세스 모델링 설계를 진행하는 과정을 뛰어넘는 민첩성과 효율성을 보여줌.
    • 또한 쉽고 간편한 도구를 사용해 빠른 시간 내에 지식 공유를 통한 협업을 가속화하고 시각화함으로써 서로간의 학습 및 탐색을 촉진하는 워크숍이라 할 수 있음.
  • 이벤트 스토밍에서는 현실의 비즈니스 도메인을 다양한 의미의 스티커를 통해 표현하며, 이 흐름대로 시스템을 분석함.
    • 시스템의 액터는 원하는 바를 얻기 위해 시스템을 조작하고, 이 조작은 시스템을 동작하게 함.
    • 이 동작을 통해 사용자의 요청에 해당하는 데이터를 만들고, 이 정보는 간단한 스케치 형태의 UI 형태로 액터에게 제공됨.
    • 액터는 이 정보를 바탕으로 다시 시스템을 조작하고, 또 시스템이 동작하는 절차를 반복하게 됨.

5.4.1 이벤트 스토밍 워크숍 준비

  • 이벤트 스토밍 워크숍은 지식 공유 및 아이디어 도출을 위해 진행됨.
    • 준비사항은 공간, 참가자, 준비물, 퍼실리테이터가 포함됨.
      • 공간은 깨끗한 벽이 있는 넓은 워크숍 공간임.
      • 참가자는 고객, 도메인 전문가, 설계자, 개발자, 테스트 등 모든 이해관계자가 참여함.
      • 준비물로는 흰색 AO 전지, 마커펜, 다양한 색의 스티커, 다양한 색깔의 라인 테이프, 스카치 테이프가 필요함.
      • 워크숍은 열린 분위기로 활동을 촉진하고 리딩할 수 있는 퍼실리테이터가 필요함.
  • 워크숍 공간에 의자를 치우는 것이 좋으며, 참여자는 적극적이고 긍정적이며, 열린 마음가짐과 토론 및 대화를 주저하지 않는 용기를 갖고 참여해야 함.
    • 마커펜은 모든 참여자가 하나씩 가질 수 있도록 충분히 준비해야 함.
  • 워크숍은 넓은 공간에 여러 장의 흰색 전지를 이어 붙여 설계 공간을 마련하고, 별도 공간에 다양한 색의 포스트잇과 기타 준비물을 올려 놓음.
    • 참가자들은 마커펜을 들고 설계 공간을 바라보며, 퍼실리테이터의 지시에 따라 워크숍을 진행합함.
    • 모든 활동은 타임박싱으로 집중해서 몰입하도록 유도함.
  • 이벤트 스토밍에서는 작은 노란색 스티커로 액터를 표현하고, 파란색 스티커의 커맨드, 오렌지색 스티커의 도메인 이벤트, 초록색 스티커의 참고 정보, 화면 레이아웃 스케치, 핑크색 스티커의 외부 시스템 연동, 자주색 스티커의 의문, 질문, 결정할 수 없는 문제 등 다양한 의미의 스티커로 현실 세계의 도메인을 표현함.

댓글

Designed by JB FACTORY