event-storming
npx skills add https://github.com/cna-bootcamp/clauding-guide --skill event-storming
Agent 安装分布
Skill 文档
ì´ë²¤í¸ ì¤í ë°ì¼ë¡ 기í 구체í
목ì
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ê° ê³ ìí ìí¬ì 기ë²ì¼ë¡, ë¹ì¦ëì¤ ëë©ì¸ì ë¹ ë¥´ê² íìíê³ ìê°ííë ë°©ë²ì ëë¤.
ë¨ê³:
- Big Picture: ì ì²´ íë¦ íì
- Process Modeling: íë¡ì¸ì¤ ìì¸í
- 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
- https://plantuml.com ì ì
- ì¢ì¸¡ ë©ë´ìì “Online Server” í´ë¦
- PlantUML ì¤í¬ë¦½í¸ ë¶ì¬ë£ê¸°
- íë¨ ì°ì¸¡ PNG ëë SVG ë§í¬ìì ì°í´ë¦ > “ì íìì ë§í¬ ì´ê¸°”
ë°©ë² 2: VS Code íë¬ê·¸ì¸
- VS Codeìì “PlantUML” íì¥ ì¤ì¹
- .puml íì¼ ì´ê¸°
Alt + D(미리보기 ì°½ ì´ê¸°)
ë구 íì©
ìì± ìì
- íµì¬ ì루ì ë¶ì
- 주ì ì ì íë¡ì° ìë³ (5-10ê°)
- ì ì íë¡ì° ê° ì°ê²°ë ìì±
- ê° ì ì íë¡ì°ë³ ìíì¤ ë¤ì´ì´ê·¸ë¨ì ìë ì´ë²¤í¸ ì¤í ë° ìì ìë³íì¬ ìì±
- ì´ë²¤í¸ (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ì´ ìë£ëë©´:
user-storiesskillì ì¬ì©íì¬ ì ì ì¤í 리 ìì±- ìíì¤ ë¤ì´ì´ê·¸ë¨ì ì°¸ê³ íì¬ Acceptance Criteria ìì±
- Epicê³¼ Story ì°ì ìì ê²°ì
- Sprint Planning ìí