EventStorming을 도입하자!
⛳ 목표 설정
- DomainEvent, Aggregates, BoundedContext 등 키워드를 출현시키려고 노력하지 말아 주세요.
- 필요에 따라 자연스럽게 등장할 테니, 이해관계자들과 함께 어떤 좋은 서비스를 만들고 싶은지 고민해주세요.
- EventStorming의 핵심은 다양한 이해관계자들의 제안과 피드백입니다. 이를 이해해야 합니다.
- 비즈니스 모델은 지속해서 변화하므로 반복해서 도입을 목표해 봅니다.
🔖 주제
- EventStorming은 복잡한 업무를 분석하고, 논의하는 과정을 통해 도메인을 모델링하는 방법론입니다.
- 모두가 이해할 수 있는 단어(유비쿼터스 언어)를 사용하여, 이해 관계자들과 피드백을 진행합니다.
- 특정 이해관계자에게 특정 업무의 정보가 몰리는 것을 방지하며, 전반적인 이해도를 높일 수 있습니다.
- 즉, 요구사항에 부합하는 좋은 서비스를 만들 수 있는 방향이 될 수 있습니다.
📓 설명
1️⃣ EventStorming의 목표는?
제품에 어떠한 [Event]가 존재하는지, 연관된 추가적인 요소가 무엇이 있을지 시각화합니다.
최종적으로 연관된 [Event]를 군집화하여 도메인을 그려내는 것이 목표입니다.
2️⃣ 참여자를 모집해요!
목표를 위해서 가장 우선해야 할 것은 여러 포지션의 이해관계자들과 함께하는 것입니다.
혼자 진행한다면 굳이 해당 과정에 대해 고민하고 배우는 것보단 평소 하던 개발방식이 진행에 도움이 될 것입니다.
3️⃣ 스티커를 나누어 주어요!
EventStorming은 다양한 색상의 포스트잇에 의미를 두고 의견을 시각화하는 것으로 시작합니다.
포스트잇의 색상과 의미는 참여자들과 의논하여 결정하면 되지만 일반적으로 사용되는 내용을 알려드리겠습니다.
Name | Color | Desc | Example |
DomainEvent | 주황 | 시스템 내에서 발생한 상태 변화를 표현합니다. 해당 이벤트에 관심을 갖을 이벤트가 있을지 고민해주세요. | 회원가입됨. 축하 메세지 전송됨. |
Command | 하늘 | 이벤트를 발생시키는 트리거를 표헌합니다. | 회원가입 요청함 축하 메세지 전송 요청함. |
Policy | 파랑 | 커맨드를 호출하는 특정 조건 및 규칙을 표현합니다. 즉, 이벤트를 일으키는데 필요한 조건 및 규칙을 의미합니다. | 회원가입이 되었다면 가입 축하 메세지 전송을 요청합니다. |
ReadModel | 초록 | 이벤트에 필요한 데이터 모델링 정보입니다. | 닉네임,성별,이메일 |
Problem | 분홍 | 이벤트 동작 과정에서 발생할 수 있는 문제를 의미합니다. 또는 특정 스티커의 궁금한 내용을 적어주시면 됩니다. | 성별은 필수 입력인가요? 메세지는 꼭 발송되어야하나요? |
ExternSystem | 보라 | 모델링하고 있는 도메인의 외부에 있는 시스템을 의미합니다. | 회원 기준 → 메세지 |
다시 한번 상기하자면, 핵심은 좋은 제품을 만드는 것에 있습니다.
EventStorming은 도구일 뿐이니, 예시로 알려드린 스티커의 의미를 너무 깊게 고민하지 말고 시도해 주세요.
예를 들어 ReadModel은 예시와 다르게 [동작에 필요하거나 표현할 정보]로 표현해도 좋습니다.
4️⃣ 필요한 것을 쓰고 붙여보아요
이제 시도해 볼 것은 손에 주황색 포스트잇을 들고 제품에 있을 법한 이벤트를 작성하는 것입니다.
제품, 상황, 팀원 성향에 따라 결과는 변하므로, 대화를 통해 하나하나 맞추며 진행해 주세요.
|
|
5️⃣ 질문이요!
잔뜩 붙여진 이벤트를 보고 있으면 질문하고 싶은 내용이 떠오르지 않나요?
생각하는 내용이 당연하지 않을 수 있으니, 나와 동일한 생각을 하여 이벤트를 붙인 건지 질문해 보아요.
|
6️⃣ 답변이요!
답변하기 쉬운 질문들이 보이나요? 내가 작성한 이벤트가 아니어도 상관없어요.
다 함께 질문에 대해 의논하여 답변을 작성해 주세요.
|
7️⃣ 나열해 볼까요?
Command, Event, Policy, Problem을 작성했어요!
이제부터는 작성된 내용들로 무엇이 필요한지 시각화할 차례예요
|
8️⃣ 정리해 볼까요?
연관성이 높은 스티커가 뭉쳐졌나요?
그러면 그 스티커들을 뭐라고 부를지 정해보아요.
|
📚 정리
'기타' 카테고리의 다른 글
비바리움 만들기-0회차 (0) | 2024.05.16 |
---|---|
IntelliJ 라이브 템플릿 기능 사용하기 (0) | 2021.06.30 |
Maven 소개 (0) | 2021.05.03 |
Tomcat 설치 (0) | 2021.05.03 |
Type vs Interface (0) | 2021.04.26 |