이벤트 스토밍(Event Storming)은 비즈니스 도메인을 깊이 탐색하고 복잡한 시스템의 구조를 식별하기 위한 협업 워크샵 기법이다. 개발자, 아키텍트, 도메인 전문가가 함께 참여하여 서비스의 흐름을 시각화하고, 도메인 이벤트(Domain Events), 명령(Commands), 애그리거트(Aggregates) 등 핵심 설계 요소를 신속하게 도출하는 데 최적화되어 있다.
2. 워크샵 구성 요소
도메인 이벤트 (Orange Card): 비즈니스에서 발생한 과거 시점의 중요한 사건. 시스템의 상태 변화를 나타냄.
명령 (Blue Card): 사용자의 의도나 시스템에 의해 발생하는 동작. 이벤트를 트리거함.
애그리거트 (Yellow Card): 명령을 받아 이벤트를 생성하는 데이터와 로직의 군집(트랜잭션의 단위).
액터/사용자 (Small Yellow): 명령을 수행하는 주체.
정책 (Lilac Card): 이벤트가 발생했을 때 자동으로 실행되는 반응 로직.
3. 실전 적용 가치
비즈니스-기술 싱크로: 도메인 전문가의 지식을 개발자가 즉각적으로 이해하고 모델링에 반영 가능.
병목 지점 식별: 전체 프로세스를 시각화하는 과정에서 비즈니스상의 비효율이나 병목 지점을 자연스럽게 발견.
아키텍처 설계의 뼈대: 도출된 이벤트와 애그리거트는 바운디드 컨텍스트를 정의하고 마이크로서비스 경계를 나누는 결정적 근거가 됨.
4. 트레이드오프 및 주의사항
장점: 짧은 시간 내에 복잡한 도메인에 대한 공통 멘탈 모델 형성.
단점: 도메인 전문가의 적극적인 참여 없이는 반쪽짜리 결과가 나올 수 있으며, 대규모 인원이 참여할 경우 퍼실리테이션 역량이 중요함.
주의: 시각화된 결과물에만 집중하지 말고, 그 과정에서 오가는 '대화'와 '보편적 언어'의 확립을 최우선으로 할 것.