event-storming

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

이벤트 스토밍으로 기획 구체화

通过Event Storming实现规划具体化

목적

目的

DDD(Domain-Driven Design)의 Event Storming 기법을 활용하여 선택된 솔루션의 시스템 이벤트 흐름을 분석하고, PlantUML 시퀀스 다이어그램으로 표현하여 유저스토리 작성을 준비합니다.
利用DDD(Domain-Driven Design)的Event Storming方法,分析选定解决方案的系统事件流,并通过PlantUML序列图进行呈现,为用户故事编写做准备。

사용 시점

使用时机

  • 핵심 솔루션이 선정된 후
  • 유저스토리 작성 전 시스템 설계가 필요할 때
  • 비즈니스 플로우를 시각화해야 할 때
  • 사용자가 "이벤트 스토밍", "시퀀스 다이어그램", "유저플로우"를 언급할 때
  • 核心解决方案选定后
  • 编写用户故事前需要进行系统设计时
  • 需要可视化业务流程时
  • 用户提及"Event Storming"、"序列图"、"用户流"时

필수 입력

必要输入

  • 핵심 솔루션:
    think/핵심솔루션.md
    (solution-selection 결과)
  • 대상 고객 정의:
    define/고객분석.md
    (customer-analysis 결과)
  • User Journey Map (선택):
    define/유저저니맵.md
    (journey-mapping 결과)
  • 비즈니스 모델 (선택):
    think/비즈니스모델.md
    (business-modeling 결과)
  • 核心解决方案:
    think/핵심솔루션.md
    (solution-selection结果)
  • 目标客户定义:
    define/고객분석.md
    (customer-analysis结果)
  • User Journey Map(可选):
    define/유저저니맵.md
    (journey-mapping结果)
  • 业务模型(可选):
    think/비즈니스모델.md
    (business-modeling结果)

Event Storming 프로세스

Event Storming流程

개념 이해

概念理解

Event Storming은 Alberto Brandolini가 고안한 워크숍 기법으로, 비즈니스 도메인을 빠르게 탐색하고 시각화하는 방법입니다.
단계:
  1. Big Picture: 전체 흐름 파악
  2. Process Modeling: 프로세스 상세화
  3. Software Design: 소프트웨어 설계
Event Storming是Alberto Brandolini提出的研讨会方法,用于快速探索和可视化业务领域。
步骤:
  1. Big Picture: 把握整体流程
  2. Process Modeling: 细化流程
  3. Software Design: 软件设计

우리의 접근 방법

我们的方法

이 skill에서는 Event Storming의 핵심 요소만 추출하여:
  • 이벤트 (Events)
  • 커맨드 (Commands)
  • 액터 (Actors)
  • 정책/규칙 (Policies/Rules)
  • 외부 시스템 (External Systems)
  • 필요 데이터 (Data)
를 도출하고, 이를 PlantUML 시퀀스 다이어그램으로 작성합니다.
本skill仅提取Event Storming的核心要素,导出:
  • 事件(Events)
  • 命令(Commands)
  • 参与者(Actors)
  • 策略/规则(Policies/Rules)
  • 外部系统(External Systems)
  • 所需数据(Data)
并将其编写为PlantUML序列图

PlantUML 시퀀스 다이어그램 작성

PlantUML序列图编写

1. 유저플로우 식별

1. 识别用户流

먼저 핵심 솔루션의 주요 사용자 플로우를 식별합니다.
예시:
  • 사용자 등록 플로우
  • 로그인 플로우
  • 주문 생성 플로우
  • 결제 플로우
  • 배송 조회 플로우
首先识别核心解决方案的主要用户流。
示例:
  • 用户注册流程
  • 登录流程
  • 订单创建流程
  • 支付流程
  • 配送查询流程

2. 유저플로우 간 연결도 작성

2. 编写用户流关联图

파일명:
think/es/userflow.puml
내용 예시:
@startuml
!theme mono

title 유저플로우 연결도

rectangle "사용자 인증" as auth {
  (1. 회원가입)
  (2. 로그인)
}

rectangle "주요 기능" as main {
  (3. 대시보드 조회)
  (4. 주문 생성)
  (5. 결제 진행)
}

rectangle "부가 기능" as sub {
  (6. 주문 내역 조회)
  (7. 배송 추적)
}

(1. 회원가입) --> (2. 로그인)
(2. 로그인) --> (3. 대시보드 조회)
(3. 대시보드 조회) --> (4. 주문 생성)
(4. 주문 생성) --> (5. 결제 진행)
(5. 결제 진행) --> (6. 주문 내역 조회)
(6. 주문 내역 조회) --> (7. 배송 추적)

@enduml
文件名:
think/es/userflow.puml
内容示例:
@startuml
!theme mono

title 유저플로우 연결도

rectangle "사용자 인증" as auth {
  (1. 회원가입)
  (2. 로그인)
}

rectangle "주요 기능" as main {
  (3. 대시보드 조회)
  (4. 주문 생성)
  (5. 결제 진행)
}

rectangle "부가 기능" as sub {
  (6. 주문 내역 조회)
  (7. 배송 추적)
}

(1. 회원가입) --> (2. 로그인)
(2. 로그인) --> (3. 대시보드 조회)
(3. 대시보드 조회) --> (4. 주문 생성)
(4. 주문 생성) --> (5. 결제 진행)
(5. 결제 진행) --> (6. 주문 내역 조회)
(6. 주문 내역 조회) --> (7. 배송 추적)

@enduml

3. 각 유저플로우별 시퀀스 다이어그램 작성

3. 编写各用户流的序列图

각 유저플로우마다 별도의 PlantUML 파일로 작성합니다.
파일명 형식:
think/es/{순번}-{유저플로우명}.puml
  • 참여자: Actor, 내부서비스, 외부시스템으로만 구성
  • 내부서비스: 내부의 업무 그룹을 명시. 예) 회원업무, 결제업무
  • 외부시스템: "(E){외부시스템명}"으로 표시. 예) (E)CRM
  • (중요) 내부서비스 내부와 외부시스템 내부에서 이루어지는 플로우는 표시하지 않음
  • (중요) 이벤트 스토밍 요소를 명확히 표시: [{이벤트 스토밍 요소}] {내용}
    • 예1) [이벤트] 차량등록 시작됨
    • 예2) [커맨드] 차량 등록 버튼 클릭
    • 예3) [정책/규칙] 가격 100만원 이상 확인
    • 예4) [데이터] 차량정보
  • 이벤트: 과거형으로 표현 (예: "회원가입 완료됨", "주문 생성됨")
  • 커맨드: 명령형으로 표현 (예: "회원가입 요청", "주문 생성")
  • 데이터: 화살표 라벨에 괄호로 명시 (예:
    (이메일, 비밀번호)
    )
  • 정책:
    note over
    사용하여 명시
文件名格式:
think/es/{序号}-{用户流名}.puml
  • 参与者: 仅由Actor、内部服务、外部系统组成
  • 内部服务: 明确标注内部业务组。例如) 会员业务、支付业务
  • 外部系统: 以"(E){外部系统名}"标注。例如) (E)CRM
  • (重要) 不展示内部服务内部和外部系统内部的流程
  • (重要) 明确标注Event Storming要素: [{Event Storming要素}] {内容}
    • 例1) [事件] 车辆注册开始
    • 例2) [命令] 点击车辆注册按钮
    • 例3) [策略/规则] 确认价格100万以上
    • 例4) [数据] 车辆信息
  • 事件: 以过去式表达(例如: "会员注册完成", "订单创建完成")
  • 命令: 以命令式表达(例如: "请求会员注册", "创建订单")
  • 数据: 在箭头标签中以括号标注(例如:
    (邮箱, 密码)
  • 策略: 使用
    note over
    标注

4. Event Storming 핵심 요소 도출

4. 导出Event Storming核心要素

이벤트 (Events)

事件(Events)

시스템에서 발생하는 중요한 사건 (과거형)
표기:
[이벤트명] 발생
예시:
  • 회원가입 완료됨
  • 로그인 성공됨
  • 주문 생성됨
  • 결제 완료됨
  • 배송 시작됨
系统中发生的重要事件(过去式)
标注:
[事件名] 发生
示例:
  • 会员注册完成
  • 登录成功
  • 订单创建完成
  • 支付完成
  • 配送开始

커맨드 (Commands)

命令(Commands)

사용자나 시스템이 수행하는 행위 (명령형)
표기:
[커맨드명]
예시:
  • 회원가입 요청
  • 로그인 시도
  • 주문 생성
  • 결제 진행
  • 배송 조회
用户或系统执行的行为(命令式)
标注:
[命令名]
示例:
  • 请求会员注册
  • 尝试登录
  • 创建订单
  • 进行支付
  • 查询配送

액터 (Actors)

参与者(Actors)

시스템과 상호작용하는 주체
예시:
  • 사용자
  • 관리자
  • 배송 기사
  • 시스템 스케줄러
与系统交互的主体
示例:
  • 用户
  • 管理员
  • 配送员
  • 系统调度器

정책/규칙 (Policies/Rules)

策略/规则(Policies/Rules)

이벤트 발생 시 자동으로 실행되는 규칙
표기:
note over [참여자] : [정책/규칙]
예시:
  • "이메일 중복 확인"
  • "재고 확인 필수"
  • "결제 금액 검증"
  • "배송지 유효성 검사"
事件发生时自动执行的规则
标注:
note over [参与者] : [策略/规则]
示例:
  • "邮箱重复检查"
  • "必须检查库存"
  • "验证支付金额"
  • "检查配送地址有效性"

외부 시스템 (External Systems)

外部系统(External Systems)

시스템이 연동하는 외부 서비스
예시:
  • 결제 게이트웨이 (PG사)
  • 이메일 발송 서비스
  • SMS 서비스
  • 물류 시스템
  • 지도 API
系统对接的外部服务
示例:
  • 支付网关(PG公司)
  • 邮件发送服务
  • SMS服务
  • 物流系统
  • 地图API

필요 데이터 (Data)

所需数据(Data)

각 단계에서 필요한 데이터를 명시
표기: 화살표 라벨에
(데이터)
로 표시 예시:
  • (이메일, 비밀번호, 이름)
  • (주문 ID, 상품 목록, 배송지)
  • (결제 금액, 결제 수단)

标注各阶段所需的数据
标注: 在箭头标签中以
(数据)
标注 示例:
  • (邮箱, 密码, 姓名)
  • (订单ID, 商品列表, 配送地址)
  • (支付金额, 支付方式)

PlantUML 확인 방법

PlantUML查看方法

작성한 PlantUML 다이어그램은 다음 방법으로 확인할 수 있습니다:
编写的PlantUML图可通过以下方法查看:

방법 1: PlantUML Online Server

方法1: PlantUML Online Server

  1. https://plantuml.com 접속
  2. 좌측 메뉴에서 "Online Server" 클릭
  3. PlantUML 스크립트 붙여넣기
  4. 하단 우측 PNG 또는 SVG 링크에서 우클릭 > "새 탭에서 링크 열기"
  1. 访问https://plantuml.com
  2. 点击左侧菜单的"Online Server"
  3. 粘贴PlantUML脚本
  4. 在右下角PNG或SVG链接上右键 > "在新标签页中打开链接"

방법 2: VS Code 플러그인

方法2: VS Code插件

  1. VS Code에서 "PlantUML" 확장 설치
  2. .puml 파일 열기
  3. Alt + D
    (미리보기 창 열기)

  1. 在VS Code中安装"PlantUML"扩展
  2. 打开.puml文件
  3. Alt + D
    (打开预览窗口)

도구 활용

工具运用

작성 순서

编写顺序

  1. 핵심 솔루션 분석
  2. 주요 유저플로우 식별 (5-10개)
  3. 유저플로우 간 연결도 작성
  4. 각 유저플로우별 시퀀스 다이어그램에 아래 이벤트 스토밍 요소 식별하여 작성
    • 이벤트 (Events)
    • 커맨드 (Commands)
    • 액터 (Actors)
    • 정책/규칙 (Policies/Rules)
    • 외부 시스템 (External Systems)
    • 필요 데이터 (Data)

  1. 分析核心解决方案
  2. 识别主要用户流(5-10个)
  3. 编写用户流关联图
  4. 在各用户流的序列图中识别并标注以下Event Storming要素
    • 事件(Events)
    • 命令(Commands)
    • 参与者(Actors)
    • 策略/规则(Policies/Rules)
    • 外部系统(External Systems)
    • 所需数据(Data)

출력 파일

输出文件

필수 파일

必要文件

  • 유저플로우 연결도:
    think/es/userflow.puml
  • 각 유저플로우 시퀀스:
    think/es/{순번}-{유저플로우명}.puml
    • 예:
      think/es/01-회원가입.puml
    • 예:
      think/es/02-로그인.puml
    • 예:
      think/es/03-대시보드조회.puml
  • 用户流关联图:
    think/es/userflow.puml
  • 各用户流序列图:
    think/es/{序号}-{用户流名}.puml
    • 示例:
      think/es/01-회원가입.puml
    • 示例:
      think/es/02-로그인.puml
    • 示例:
      think/es/03-대시보드조회.puml

파일명 규칙

文件名规则

  • 순번: 2자리 숫자 (01, 02, 03...)
  • 유저플로우명: 한글로 작성
  • 확장자: .puml
  • 序号: 2位数字(01, 02, 03...)
  • 用户流名: 以韩语编写
  • 扩展名: .puml

중요 가이드라인

重要指南

PlantUML 작성 규칙

PlantUML编写规则

  • 테마: 항상
    !theme mono
    사용
  • 한국어: 모든 텍스트를 한국어로 작성
  • 主题: 始终使用
    !theme mono
  • 语言: 所有文本使用韩语

Sequential MCP 활용

Sequential MCP运用

  • 복잡한 도메인 분석
  • 이벤트와 커맨드 도출
  • 유저플로우 간 의존성 분석
  • 复杂领域分析
  • 导出事件和命令
  • 分析用户流间的依赖关系

품질 기준

质量标准

  • 실제 시스템 아키텍처를 반영
  • 유저스토리로 직접 변환 가능한 수준
  • 개발팀이 이해하고 구현할 수 있는 명확성
  • 비즈니스 로직과 기술적 세부사항의 균형
  • 反映实际系统架构
  • 达到可直接转换为用户故事的水平
  • 具备开发团队可理解和实现的清晰度
  • 平衡业务逻辑与技术细节

다음 단계

下一步

Event Storming이 완료되면:
  1. user-stories
    skill을 사용하여 유저스토리 작성
  2. 시퀀스 다이어그램을 참고하여 Acceptance Criteria 작성
  3. Epic과 Story 우선순위 결정
  4. Sprint Planning 수행
Event Storming完成后:
  1. 使用
    user-stories
    skill编写用户故事
  2. 参考序列图编写验收标准
  3. 确定Epic和Story的优先级
  4. 执行Sprint规划