이벤트 스토밍으로 DDD 전환: 도메인 이벤트부터 애그리게잇까지 워크숍 실전 가이드
핵심 내용
이벤트 스토밍을 통해 도메인 전문가와 개발자가 함께 문제를 식별하고 애그리게잇을 설계하는 과정을 상세히 소개했다.
자세히 보기
이벤트 스토밍의 본질과 준비
이벤트 스토밍은 불확실한 대상을 집단이 함께 파악하는 워크숍 형태의 방법론으로, DDD나 개발자 전용 도구가 아닌 문제 식별과 해결에 유용한 도구다. 문제를 올바르게 이해하기 위해 파인만의 인용처럼 '이해한 것, 새로 알게 된 것, 이해하지 못한 것'을 인정하는 태도가 선행되어야 한다.
진행 시 도메인 전문가, 기획자, 개발자, 디자이너 등 모든 스테이크 홀더가 한 장소에 모이는 것이 이상적이며, 물리적 한계가 있다면 Miro 사용을 추천한다. 상세한 과정은 KAIST의 K-MOOC 강의와 IBM developer 포스트를 참고할 수 있다.
핵심 요소와 배치 규칙
도메인 이벤트부터 애그리게잇 식별까지는 순서대로 진행하며, 각 요소는 다음과 같은 색상과 규칙으로 표현된다.
- 도메인 이벤트(주황색): 비즈니스 프로세스에서 유발되는 이벤트로, 과거형 동사를 사용하며 시간 흐름에 따라 왼쪽에서 오른쪽으로 배치한다.
- 커맨드(파란색): 액터가 이벤트를 유발하기 위해 실행하는 명령으로, 도메인 이벤트의 좌측에 배치한다.
- 애그리게잇(노란색): 커맨드 실행과 이벤트 발생을 포함하는 개념으로, 현실 세계의 문서와 유사하며 커맨드와 이벤트 상단에 배치해 시각적으로 포함시킨다.
- 액터(작은 노란색): 커맨드를 유발할 수 있는 사용자 역할로, 커맨드 옆에 작게 표시한다.
- 뷰(초록색): 사용자가 시스템과 상호작용하는 화면으로, 개념 이해를 위해 커맨드 좌측에 배치한다.
- 비즈니스 프로세스(보라색): 복잡한 절차로, 최소 하나 이상의 도메인 이벤트를 유발하며 독립적으로 전개된다.
- 외부 시스템(핫 핑크색): PG사 연동 등 서드 파티 서비스로, 이벤트 수용 또는 유발 동작을 한다.
- 이슈(빨간색): 모호하거나 의사 결정이 필요한 사항을 즉시 표시한다.
참여 태도와 난관 극복
이벤트 스토밍은 브레인스토밍에 도구와 규칙을 더한 것으로, 디자인이 한 번에 완성되지 않으므로 붙였다 뗐다 하는 과정을 두려워하지 않아야 한다. DDD의 지속적 통합(Continuous Integration) 개념처럼 변경은 프로세스의 일부로 받아들여야 하며, 미켈란젤로의 시스티나 성당 스케치 예시처럼 부분적인 수정과 완성 과정을 강조한다.
실제 진행 시 가장 큰 문제는 부담이나 의심으로 인한 '적극적인 참여 부족'이다. 도메인 지식이 있는 참여자의 독단이나 체면 문제, 기존 비즈니스의 임기응변 의존성으로 인해 난관에 봉착할 수 있다. '이거, 저거, 그거' 같은 모호한 표현이 등장하거나 대상이 경계선을 왔다 갔다 하는 현상은 도메인 경계선이 불명확하다는 증거다.
이벤트 스토밍은 체계화되지 않은 영역을 직관적으로 알아내고 적극적 논의를 통해 구체화해야 한다. 이는 DDD 실천을 위한 수많은 수단 중 '첫 단추'이며, 도메인 용어와 범위에 대한 끈질긴 호기심이 시스템 구성의 훌륭한 블록이 된다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.