event-storming

Event Storming 기법을 사용하여 PlantUML 시퀀스 다이어그램을 작성하고 유저스토리 개발을 준비합니다. 기획 구체화 시 사용하세요.

8 stars

Best use case

event-storming is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Event Storming 기법을 사용하여 PlantUML 시퀀스 다이어그램을 작성하고 유저스토리 개발을 준비합니다. 기획 구체화 시 사용하세요.

Teams using event-storming should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/14-event-storming/SKILL.md --create-dirs "https://raw.githubusercontent.com/cna-bootcamp/aiguide/main/.claude/skills/14-event-storming/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/14-event-storming/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How event-storming Compares

Feature / Agentevent-stormingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Event Storming 기법을 사용하여 PlantUML 시퀀스 다이어그램을 작성하고 유저스토리 개발을 준비합니다. 기획 구체화 시 사용하세요.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

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

## 목적

DDD(Domain-Driven Design)의 Event Storming 기법을 활용하여 선택된 솔루션의 시스템 이벤트 흐름을 분석하고, PlantUML 시퀀스 다이어그램으로 표현하여 유저스토리 작성을 준비합니다.

## 사용 시점

- 핵심 솔루션이 선정된 후
- 유저스토리 작성 전 시스템 설계가 필요할 때
- 비즈니스 플로우를 시각화해야 할 때
- 사용자가 "이벤트 스토밍", "시퀀스 다이어그램", "유저플로우"를 언급할 때

## 필수 입력

- 핵심 솔루션: `think/핵심솔루션.md` (solution-selection 결과)
- 대상 고객 정의: `define/고객분석.md` (customer-analysis 결과)
- User Journey Map (선택): `define/유저저니맵.md` (journey-mapping 결과)
- 비즈니스 모델 (선택): `think/비즈니스모델.md` (business-modeling 결과)

## Event Storming 프로세스

### 개념 이해

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 시퀀스 다이어그램**으로 작성합니다.

## PlantUML 시퀀스 다이어그램 작성

### 1. 유저플로우 식별

먼저 핵심 솔루션의 주요 사용자 플로우를 식별합니다.

**예시**:
- 사용자 등록 플로우
- 로그인 플로우
- 주문 생성 플로우
- 결제 플로우
- 배송 조회 플로우

### 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
```

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

각 유저플로우마다 별도의 PlantUML 파일로 작성합니다.

**파일명 형식**: `think/es/{순번}-{유저플로우명}.puml`  
- **참여자**:  Actor, 내부서비스, 외부시스템으로만 구성
- **내부서비스**: 내부의 업무 그룹을 명시. 예) 회원업무, 결제업무  
- **외부시스템**:  "(E){외부시스템명}"으로 표시. 예) (E)CRM    
- (중요) 내부서비스 내부와 외부시스템 내부에서 이루어지는 플로우는 표시하지 않음 
- (중요) 이벤트 스토밍 요소를 명확히 표시: [{이벤트 스토밍 요소}] {내용}
  - 예1) [이벤트] 차량등록 시작됨
  - 예2) [커맨드] 차량 등록 버튼 클릭
  - 예3) [정책/규칙] 가격 100만원 이상 확인
  - 예4) [데이터] 차량정보
- **이벤트**: 과거형으로 표현 (예: "회원가입 완료됨", "주문 생성됨")
- **커맨드**: 명령형으로 표현 (예: "회원가입 요청", "주문 생성")
- **데이터**: 화살표 라벨에 괄호로 명시 (예: `(이메일, 비밀번호)`)
- **정책**: `note over` 사용하여 명시
  
### 4. Event Storming 핵심 요소 도출

#### 이벤트 (Events)
시스템에서 발생하는 중요한 사건 (과거형)

**표기**: `[이벤트명] 발생`
**예시**:
- 회원가입 완료됨
- 로그인 성공됨
- 주문 생성됨
- 결제 완료됨
- 배송 시작됨

#### 커맨드 (Commands)
사용자나 시스템이 수행하는 행위 (명령형)

**표기**: `[커맨드명]`
**예시**:
- 회원가입 요청
- 로그인 시도
- 주문 생성
- 결제 진행
- 배송 조회

#### 액터 (Actors)
시스템과 상호작용하는 주체

**예시**:
- 사용자
- 관리자
- 배송 기사
- 시스템 스케줄러

#### 정책/규칙 (Policies/Rules)
이벤트 발생 시 자동으로 실행되는 규칙

**표기**: `note over [참여자] : [정책/규칙]`
**예시**:
- "이메일 중복 확인"
- "재고 확인 필수"
- "결제 금액 검증"
- "배송지 유효성 검사"

#### 외부 시스템 (External Systems)
시스템이 연동하는 외부 서비스

**예시**:
- 결제 게이트웨이 (PG사)
- 이메일 발송 서비스
- SMS 서비스
- 물류 시스템
- 지도 API

#### 필요 데이터 (Data)
각 단계에서 필요한 데이터를 명시

**표기**: 화살표 라벨에 `(데이터)`로 표시
**예시**:
- (이메일, 비밀번호, 이름)
- (주문 ID, 상품 목록, 배송지)
- (결제 금액, 결제 수단)

---

## PlantUML 확인 방법

작성한 PlantUML 다이어그램은 다음 방법으로 확인할 수 있습니다:

### 방법 1: PlantUML Online Server
1. https://plantuml.com 접속
2. 좌측 메뉴에서 "Online Server" 클릭
3. PlantUML 스크립트 붙여넣기
4. 하단 우측 PNG 또는 SVG 링크에서 우클릭 > "새 탭에서 링크 열기"

### 방법 2: VS Code 플러그인
1. VS Code에서 "PlantUML" 확장 설치
2. .puml 파일 열기
3. `Alt + D` (미리보기 창 열기)

---

## 도구 활용

### 작성 순서
1. 핵심 솔루션 분석
2. 주요 유저플로우 식별 (5-10개)
3. 유저플로우 간 연결도 작성
4. 각 유저플로우별 시퀀스 다이어그램에 아래 이벤트 스토밍 요소 식별하여 작성
   - 이벤트 (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`

### 파일명 규칙
- **순번**: 2자리 숫자 (01, 02, 03...)
- **유저플로우명**: 한글로 작성
- **확장자**: .puml

## 중요 가이드라인

### PlantUML 작성 규칙
- **테마**: 항상 `!theme mono` 사용
- **한국어**: 모든 텍스트를 한국어로 작성

### Sequential MCP 활용
- 복잡한 도메인 분석
- 이벤트와 커맨드 도출
- 유저플로우 간 의존성 분석

### 품질 기준
- 실제 시스템 아키텍처를 반영
- 유저스토리로 직접 변환 가능한 수준
- 개발팀이 이해하고 구현할 수 있는 명확성
- 비즈니스 로직과 기술적 세부사항의 균형

## 다음 단계

Event Storming이 완료되면:
1. `user-stories` skill을 사용하여 유저스토리 작성
2. 시퀀스 다이어그램을 참고하여 Acceptance Criteria 작성
3. Epic과 Story 우선순위 결정
4. Sprint Planning 수행

Related Skills

service-planning

8
from cna-bootcamp/aiguide

비즈니스 도메인만 입력하면 MVP 정의부터 프로토타입까지 전체 서비스 기획 워크플로우를 자동으로 실행합니다. 17개의 전문화된 스킬을 순차적으로 orchestrate하여 완전한 기획 산출물을 생성합니다. (project)

프로토타입 개발 가이드

8
from cna-bootcamp/aiguide

## 목적

uiux-design

8
from cna-bootcamp/aiguide

유저스토리를 기반으로 사용자 인터페이스와 경험을 디자인할 때 상세한 UI/UX 디자인 명세를 작성합니다.

user-stories

8
from cna-bootcamp/aiguide

사용자 관점에서 제품 요구사항을 정의할 때 INVEST 원칙을 따르는 포괄적인 유저스토리를 작성합니다.

presentation

8
from cna-bootcamp/aiguide

비즈니스 모델을 기반으로 서비스 기획서 발표자료 스크립트를 작성합니다. 발표 자료 작성 시 사용하세요. (project)

business-modeling

8
from cna-bootcamp/aiguide

Lean Canvas를 사용하여 포괄적인 비즈니스 모델을 설계합니다. 수익 흐름과 비즈니스 전략을 계획할 때 사용하세요.

solution-selection

8
from cna-bootcamp/aiguide

생성된 아이디어를 평가하고 최적의 솔루션을 선택합니다. MVP 개발을 위한 기능 우선순위를 지정할 때 사용하세요.

ideation

8
from cna-bootcamp/aiguide

브레인스토밍을 통해 창의적인 솔루션 아이디어를 생성합니다. 식별된 문제를 해결하기 위한 여러 접근 방식을 개발할 때 사용하세요.

direction-setting

8
from cna-bootcamp/aiguide

킹핀 문제를 발견하고 문제해결 방향성을 Needs Statement로 정의합니다. 핵심 문제를 해결할 때 사용하세요.

problem-hypothesis

8
from cna-bootcamp/aiguide

고객 여정 분석과 고객 경험 조사 데이터를 기반으로 핵심 문제 가설과 근본원인을 도출하고, 문제검증 인터뷰를 통해 문제가설을 검증 합니다. 그리고 비즈니스 가치를 도출합니다.

journey-mapping

8
from cna-bootcamp/aiguide

모든 터치포인트에서 고객 경험을 시각화하고 분석하는 포괄적인 고객 여정 맵을 작성합니다.

customer-experience

8
from cna-bootcamp/aiguide

인터뷰, 관찰, 제품 테스트를 통해 포괄적인 고객 경험 데이터를 생성합니다. 고객 여정 맵 작성 준비 시 사용하세요.