이벤트 스토밍은 복잡한 비즈니스 도메인을 빠르게 탐색하고 학습하는 설계 기법으로, 프로젝트 기획 시 발생하는 용어 불일치, 의미 혼동, 지식 불균형 등의 문제를 해결하여 팀원 간 도메인 이해도를 일치시키는 데 중점을 둡니다. 💡
개발자, 도메인 전문가, 기획자, 디자이너 등 모든 이해관계자가 참여하여 협업을 촉진하는 과정입니다. 🤝
커다란 종이에 포스트잇을 붙여 비즈니스 프로세스를 시각화하며, 단계별로 설계가 구체화되고 각 단계에 맞는 포스트잇을 사용합니다. 🗺️
핵심 구성 요소로는 비즈니스 상태 변화를 나타내는 '도메인 이벤트(주황색)', 문제점과 질문을 시각화하는 '핫스팟(빨간색)', 책임 전가 가능한 '외부 시스템(분홍색)', 구체적인 행위 주체인 '액터(노란색)'가 있습니다. 🟠🔴🌸🟡
용어 불일치를 기준으로 도메인 경계를 나누는 '바운디드 컨텍스트'와 그 안에서 정의되는 공통 언어인 '유비쿼터스 언어'를 구축하는 것이 중요합니다. 📦📚
시스템 동작을 구체화하기 위해 도메인 이벤트의 원인인 '커맨드(파란색)', 액터의 커맨드를 돕는 정보인 '리드 모델(초록색)', 이벤트와 커맨드 사이의 규칙인 '정책(보라색)', 그리고 일관성을 유지해야 하는 트랜잭션 단위인 '애그리게이트(회색)'를 정의합니다. 🔵🟢🟣⚪
모든 과정을 다 할 필요 없이 '빅 픽처' 부분이나 유비쿼터스 언어 구축만으로도 충분한 효과를 얻을 수 있으며, 일관된 색상 규칙을 사용하면 초보자도 도메인 지식 누락을 빠르게 파악할 수 있습니다. 🌈
궁극적으로는 모든 참여자가 같은 사실을 알게 되는 것을 넘어, '사람들을 합치고 소프트웨어를 분리하는 활동'으로서 팀의 협업과 소프트웨어 설계의 명확성을 높이는 데 기여합니다. 🫂