
모모플젝이 점점 커지면서 설계에 대한 고민이 생겼다. 이전의 플젝은 단순한 CRUD게시판이 전부라 설계라는게 없이 바로 제작을 했다. ERD조차 먼저 짜지 않고.
그러나 기획자님의 요구사항이 늘어나면서 관리자와 유저가 분리가 되었고 기능이 복잡해지면서 어떻게 설계할것인지 고민하게 되었다.
그렇게 찾게 된 것이 이벤트 스토밍이다.

기능이 엄청 늘어났다 ㅎㅎ
이벤트스토밍은 Event와 BrainStorming의 합성어로 Domain Expert와 개발 전문가가 함께 모여 워크샵 형태로 진행되는 방법론이다. 협업을 하게되면 비개발자와 개발자로 나눠지고 개발자도 프론트 백엔드로 나뉘어 각자의 용어가 충돌하게 된다. 같은 회원가입-로그인이라는 과정이라고 해도 각자가 알고있는 과정은 천차만별이다. 이런 이해의 차이를 없애고 서로가 같은 목표와 프로세스를 가지고 프로젝트를 할 수 있도록 도와주는 과정이 이벤트 스토밍이다.
사실 이벤트 스토밍은 사회자의 역할이 중요하다. 이벤트 스토밍 자체가 모두의 의견을 수렴하고 조율하면서 토의하는 과정이다보니 그만큼 지식을 폭넓게 알고있어야 한다. 하물며 도중에 산으로 가지 않도록 모든 조원들을 이끌 수 있어야 한다. 이는 커뮤니케이션도 중요하며 지식도 많아야 한다는 것이다.
하지만 모두가 배우는 단계이기에 다른 포지션까지 포함 하기엔 실력이 부족하다고 판단되었다. 백엔드 개발자끼리 먼저 진행해보기로 했다.
피그마라는 사이트를 이용하면 직접 만나서 포스트잇을 붙일 필요 없이
모두가 온라인에서 진행이 가능하다.

| 유형 | 색깔 | 설명 |
|---|---|---|
| 도메인 이벤트 | 오렌지색 | 발생된 사건, 과거시제 동사로 표현 |
| 커맨드 | 파란색 | 이벤트를 트리거하는 명령 |
| 외부 시스템 | 핑크색 | 이벤트가 호출하거나 관계가 있는 레거시 또는 외부 시스템, 장비 |
| 액터 | 노란색 작은 포스트잇 | 개인 또는 조직의 역할 |
| 어그리게잇 | 노란색 큰 포스트잇 | 상태가 변경되는 데이터 |
| 정책 | 라일락 색 | 이벤트 조건에 따라 진행되는 결정 When [이벤트]then [커맨드] |
| 핫스팟 | 보라 색 | 의문, 질문, 미결정 사항 |





처음에는 이벤트 스토밍의 필요성을 느끼지 못했다. 이건 국어시간인가 아니면 토론시간인가. 굳이 해야해? 시간낭비 아니야? 라는 생각이 컸다. 하지만 같은 회원가입-로그인 기능이더라도 누구는 Oauth를 염두하기도 했으며 프론트입장에서 쓰는 용어, 서버입장에서 쓰는 용어가 제각기 달라 재미있었다. 최종적으로 하나의 서비스 로직이 완성되었을때 팀원 모두가 같은 방향성을 보고 무엇을 해야하는지 숙지할수 있었기에 뜻깊은 시간이 되었다고 생각한다.
다음 시간에는 도출된 서비스 로직에 대한 기능명세를 제작할 예정이다
참고자료
https://engineering-skcc.github.io/microservice%20modeling/Event-Storming/#fn:3
http://www.msaschool.io/operation/design/design-three/
https://rok93.tistory.com/170