user-stories
npx skills add https://github.com/cna-bootcamp/clauding-guide --skill user-stories
Agent 安装分布
Skill 文档
ì ì ì¤í 리 ìì±
목ì
ì ì ë ì루ì ê³¼ Event Storming 결과를 기ë°ì¼ë¡ ì²´ê³ì ì¸ ì ì ì¤í 리를 ìì±í©ëë¤.
ì¬ì© ìì
- Event Stormingì´ ìë£ë í
- UI/UX ëìì¸ ì
- ê°ë° ì°ì ìì를 ì ìí´ì¼ í ë
- ì¬ì©ìê° “ì ì ì¤í 리”, “User Story”, “ë°±ë¡ê·¸”를 ì¸ê¸í ë
íì ì ë ¥
- ì ì ë ì루ì
:
think/íµì¬ì루ì .md(solution-selection ê²°ê³¼) - íê² ê³ ê° ì ì:
define/ê³ ê°ë¶ì.md(customer-analysis ê²°ê³¼) - Event Storming ê²°ê³¼ (event-storming ê²°ê³¼):
think/es/userflow.pumlthink/es/{ìë²}-{ì ì íë¡ì°ëª }.puml
- ì ì ì¤í 리 ìí ì°¸ê³ :
reference/sample_ì ì ì¤í 리.md
ì´ë²¤í¸ì¤í ë° â ì ì ì¤í 리 ì°ê²° ê°ì´ë
Event Storming ê²°ê³¼ìì ì ì ì¤í 리를 ëì¶íë ê°ì´ëì ëë¤.
1. 매í 기본 ìì¹
| Event Storming ìì | User Story ìì | ì¤ëª |
|---|---|---|
| ì ì íë¡ì°(ì 목) | Epic | 주ì ë¹ì¦ëì¤ ê¸°ë¥ ë¨ì |
| ì´ë²¤í¸ [ì´ë²¤í¸] | Story (I want to…) | ì¬ì©ìê° ë¬ì±íê³ ì¶ì ê²°ê³¼ |
| 커맨ë [커맨ë] | ìë리ì¤/Task | 결과를 ë¬ì±í기 ìí 구체ì íë |
| ì ì± /ê·ì¹ [ì ì± /ê·ì¹] | Acceptance Criteria | ë¹ì¦ëì¤ ê·ì¹ ë° ì ì½ì¬í |
| ë°ì´í° [ë°ì´í°] | ì ë ¥/ì¶ë ¥ ì구ì¬í | íìí ë°ì´í° ì ì |
| ì°¸ì¬ì (Actor) | Persona (As a…) | ì¤í 리ì 주체 |
íµì¬ ìì¹: ì¬ì©ìë “ë²í¼ì í´ë¦íê³ ì¶ì ê²”ì´ ìëë¼ “결과를 ë¬ì±íê³ ì¶ì ê²”ì ëë¤.
- 커맨ë(Command): How (ë°©ë²) – ìì¤í ì ìì²íë íë
- ì´ë²¤í¸(Event): What (목í) – ë¬ì±íê³ ì¶ì ê²°ê³¼/ìíë³í
2. ì ì íë¡ì° â Epic ë³í
ê° ì ì íë¡ì° íì¼ì´ íëì Epicì´ ë©ëë¤. ìì)
| íì¼ëª
| Epic |
|--------|------|
| `01-íìê°ì
.puml` | Epic 1: ì¬ì©ì ì¸ì¦ |
| `02-ì°¨ëë±ë¡ë°AIê²ì¦.puml` | Epic 2: ì°¨ë ë±ë¡ ë° ê²ì¦ |
3. ì´ë²¤í¸ â User Story ë³í
ë³í ê³µì:
{ì¬ì©ì ì í}ì¼ë¡ì | ëë, {목ì }ì ìí´ | {ì´ë²¤í¸/ê²°ê³¼}를 ìíë¤.
ìì (01-íìê°ì .puml 기ì¤):
| ì´ë²¤í¸ | User Story |
|---|---|
[ì´ë²¤í¸] ì¹´ì¹´ì¤ ì¸ì¦ ìë£ë¨ |
ì¬ì©ìë¡ì | ëë, ë³µì¡í ì ë ¥ ìì´ ë¹ ë¥´ê² ê°ì í기 ìí´ | ì¹´ì¹´ì¤ ê³ì ì¼ë¡ ì¸ì¦ì ìë£íê³ ì¶ë¤. |
[ì´ë²¤í¸] ì´ë©ì¼ ì¸ì¦ ìë£ë¨ |
ì¬ì©ìë¡ì | ëë, SNS ìì´ ê°ì í기 ìí´ | ì´ë©ì¼ ì¸ì¦ì ìë£íê³ ì¶ë¤. |
[ì´ë²¤í¸] 본ì¸ì¸ì¦ ìë£ë¨ |
ì¬ì©ìë¡ì | ëë, ìì í ê±°ë íê²½ì ì°¸ì¬í기 ìí´ | 본ì¸ì¸ì¦ì ìë£íê³ ì¶ë¤. |
[ì´ë²¤í¸] íìê°ì
ìë£ë¨ |
ì¬ì©ìë¡ì | ëë, ìë¹ì¤ë¥¼ ì´ì©í기 ìí´ | íìê°ì ì ìë£íê³ ì¶ë¤. |
4. 커맨ë â ìë리ì¤/Task ë³í
커맨ëë User Storyì ìëë¦¬ì¤ ëë 구í Taskë¡ ë³íë©ëë¤.
ìì:
### UFR-USER-010: [íìê°ì
] ì¬ì©ìë¡ì | ëë, ìë¹ì¤ë¥¼ ì´ì©í기 ìí´ | íìê°ì
ì ìë£íê³ ì¶ë¤.
- ìëë¦¬ì¤ 1: ì¹´ì¹´ì¤ ê°í¸ê°ì
íìê°ì
íë©´ìì | [커맨ë] ì¹´ì¹´ì¤ ë¡ê·¸ì¸ ë²í¼ì í´ë¦íë©´ | ì¹´ì¹´ì¤ ì¸ì¦ í ê°ì
ì´ ìë£ëë¤.
- ìëë¦¬ì¤ 2: ì´ë©ì¼ ê°ì
íìê°ì
íë©´ìì | [커맨ë] ì´ë©ì¼/ë¹ë°ë²í¸ë¥¼ ì
ë ¥íê³ ì¸ì¦íë©´ | ì´ë©ì¼ ì¸ì¦ í ê°ì
ì´ ìë£ëë¤.
5. ì ì± /ê·ì¹ â Acceptance Criteria ë³í
ìíì¤ ë¤ì´ì´ê·¸ë¨ì [ì ì±
/ê·ì¹] ë
¸í¸ê° Acceptance Criteria(ì¸ìì¡°ê±´)ê° ë©ëë¤.
6. ì¸ë¶ ìì¤í ì°ë ì¤í 리 ë¶ë¦¬
(E)ë¡ íìë ì¸ë¶ ìì¤í
ì°ëì ë³ë Technical Storyë¡ ë¶ë¦¬í©ëë¤.
ë§ì´í¬ë¡ìë¹ì¤ ì ì ê°ì´ë
Event Storming ê²°ê³¼ìì ë§ì´í¬ë¡ìë¹ì¤ë¥¼ ëì¶íë 5ë¨ê³ íë¡ì¸ì¤ì ëë¤.
1. ì´ë²¤í¸ í´ë¬ì¤í°ë§
ì ì íë¡ì°ë³ ì´ë²¤í¸ë¥¼ ë¹ì¦ëì¤ ê°ë 기ì¤ì¼ë¡ 그룹íí©ëë¤.
[ë°©ë²]
1. ê° .puml íì¼ìì [ì´ë²¤í¸] ì¶ì¶
2. ëì¼ ë¹ì¦ëì¤ ê°ë
ì´ë²¤í¸ 묶기
3. ëì¼ ì¡í°ê° ì£¼ë¡ ì¬ì©íë ì´ë²¤í¸ íì¸
[ìì]
ì¸ì¦ í´ë¬ì¤í°: íìê°ì
ìë£ë¨, ë¡ê·¸ì¸ ìë£ë¨, ì¸ì¦ ìë£ë¨
주문 í´ë¬ì¤í°: 주문 ìì±ë¨, 주문 ì·¨ìë¨, 주문 ìë£ë¨
2. Aggregate ìë³
ì´ë²¤í¸ê° ë³ê²½íë ìí°í°ì ìëª ì£¼ê¸°ë¥¼ íì í©ëë¤.
| ë¶ì í목 | ì§ë¬¸ |
|---|---|
| ìí ë³ê²½ | ì´ ì´ë²¤í¸ê° ì´ë¤ ìí°í°ì ìí를 ë³ê²½íëê°? |
| ìëª ì£¼ê¸° | ìì±-ìì -ìì ì¬ì´í´ì´ ê°ì ìí°í°ë? |
| ë¶ë³ì | íì í¨ê» ê²ì¦ëì´ì¼ íë ê·ì¹ì? |
[ìì]
주문 Aggregate: Order(Root), OrderItem, OrderStatus
íì Aggregate: Member(Root), Profile, Address
3. ë°ì´ëë 컨í ì¤í¸ ì ì
Aggregateì ì ì± /ê·ì¹ì ë¬¶ì´ ì»¨í ì¤í¸ ê²½ê³ë¥¼ ì¤ì í©ëë¤.
[ê²½ê³ ì¤ì 기ì¤]
- ì ë¹ì¿¼í°ì¤ ì¸ì´: ê°ì ì©ì´ê° ê°ì ìë¯¸ë¡ ì¬ì©ëë ë²ì
- ì ì±
ê·ì: [ì ì±
/ê·ì¹]ì´ ì ì©ëë ë²ì
- í ì±
ì: ë¨ì¼ íì´ ì±
ìì§ ì ìë ë²ì
4. 컨í ì¤í¸ ë§µí
컨í ì¤í¸ ê° ê´ê³ì íµì í¨í´ì ì ìí©ëë¤.
| ê´ê³ ì í | ì¤ëª | íµì í¨í´ |
|---|---|---|
| Customer-Supplier | ìì²-ìëµ ê´ê³ | ë기 í¸ì¶ |
| Conformist | ìì ìë¹ì¤ ëª¨ë¸ ë°ë¦ | ë기 í¸ì¶ |
| Published Language | íì¤ ì´ë²¤í¸ ê³µì | ë¹ë기 ì´ë²¤í¸ |
| Anti-Corruption Layer | ëª¨ë¸ ë³í ê³ì¸µ íì | ì´ëí° í¨í´ |
5. ë¶í /ë³í© ê²°ì
ìë 기ì¤ì ì ì©íì¬ ìµì¢ ë§ì´í¬ë¡ìë¹ì¤ë¥¼ ëì¶í©ëë¤.
ë¶í ê¸°ì¤ (íë ì´ì í´ë¹ ì ë¶ë¦¬)
| ê¸°ì¤ | ì¤ëª |
|---|---|
| ì°¨ë³í íµì¬ | ë¹ì¦ëì¤ ê²½ìë ¥ ìì² ê¸°ë¥ |
| ë¶í ë³ë | ì¤ì¼ì¼ë§ í¨í´ì´ ë¤ë¦ |
| ë³ê²½ ë¹ë | ë°°í¬ ì£¼ê¸°ê° ë¤ë¦ |
| ë°ì´í° ìì | ë³ë Aggregate Root ìì |
ë³í© ê¸°ì¤ (í´ë¹ ì íµí© ê³ ë ¤)
| ê¸°ì¤ | ì§í |
|---|---|
| í¸ëìì ê²½ê³ | ê°í ì¼ê´ì± íì |
| ìë¹ì¤ í¬ê¸° | ì½ë 5,000ì¤ ë¯¸ë§ |
| í¸ì¶ ë¹ë | ë기 í¸ì¶ 90% ì´ì |
| ì´ì ë³µì¡ë | íë¹ 3-5ê° ìë¹ì¤ ì ì |
MVP ë¨ê³ ë³í© ì ëµ
ì´ê¸°ìë ì´ì ë³µì¡ë를 ë®ì¶ê¸° ìí´ ê´ë ¨ 컨í ì¤í¸ë¥¼ ë³í©íê³ , í¸ëí½/ë³µì¡ë ì¦ê° ì ë¶ë¦¬í©ëë¤.
[ë³í© ìì]
íì + ì림 â íììë¹ì¤ (ë¶ë¦¬ í¸ë¦¬ê±°: ì림 ì²ë¦¬ë > 10,000ê±´/ìê°)
주문 + ê²°ì â ê±°ëìë¹ì¤ (ë¶ë¦¬ í¸ë¦¬ê±°: ê²°ì ê¸°ë¥ ë³µì¡í)
ìë¹ì¤ ì ì ì²´í¬ë¦¬ì¤í¸
- 모ë ì ì íë¡ì° ì´ë²¤í¸ê° ìë¹ì¤ì 매íë¨
- ê° ìë¹ì¤ê° ë¨ì¼ Aggregateë§ ìì í¨
- í¸ëìì ê²½ê³ê° ìë¹ì¤ ê²½ê³ ë´ì ìì
- ì´ë²¤í¸ ê¸°ë° íµì í¨í´ì´ ì ìë¨
ì ì ì¤í 리 íë ììí¬
1. ë§ì´í¬ë¡ìë¹ì¤
ì ì ì¤í 리ë ë§ì´í¬ë¡ìë¹ì¤ ë¨ìë¡ êµ¬ì±í©ëë¤:
ë§ì´í¬ë¡ìë¹ì¤ë ‘ë§ì´í¬ë¡ìë¹ì¤ ì ì ê°ì´ë’ì ë°ë¼ ì ìí©ëë¤.
‘MVP ë¨ê³ ë³í© ì ëµ’ì ë°ë¼ ì´ì ë³µì¡ë를 ë®ì¶ê¸° ìí´ ê´ë ¨ 컨í
ì¤í¸ë ë³í©í©ëë¤.
ìë¹ì¤ ì¡°ì§ ìì
- User Service: ì¬ì©ì ê´ë¦¬ (íìê°ì , ë¡ê·¸ì¸, íë¡í)
- [Core] Service: íµì¬ ë¹ì¦ëì¤ ê¸°ë¥
- [AI] Service: AI ê¸°ë° ê¸°ë¥
- [Integration] Service: ì¸ë¶ ì°ë 기ë¥
2. UFR (User Functional Requirement) í¬ë§·
ê° ì ì ì¤í 리ë ë¤ì íìì ë°ë¦ ëë¤:
UFR-{ìë¹ì¤ì½ì´}-{ë²í¸}: [{ì ì ì¤í 리 ì 목}] {ì¬ì©ìì í}ë¡ì | ëë, {목ì }ì ìí´ | {ì¡ì }ì íê³ ì¶ë¤.
ìì:
UFR-USER-010: [íìê°ì ] 구매ìë¡ì | ëë, ìë¹ì¤ë¥¼ ì´ì©í기 ìí´ | ê°í¸íê² íìê°ì íê³ ì¶ë¤.UFR-CORE-020: [주문í기] 구매ìë¡ì | ëë, ìíì 구매í기 ìí´ | ì½ê² 주문íê³ ì¶ë¤.
3. ìëë¦¬ì¤ ê¸°ë° ìì¸ ì구ì¬í
ê° UFRì ë¤ì êµ¬ì¡°ë¡ ìì¸íí©ëë¤:
– ìë리ì¤: {ìë리ì¤ëª }
{ìí© ì¤ëª } | {ì¡°ê±´} | {ê²°ê³¼}
[ì ë ¥ ì구ì¬í]
- 기본 ì ë³´
- {íëëª }: {ê²ì¦ ì¡°ê±´}
- {íëëª }: {ê²ì¦ ì¡°ê±´}
- ì¶ê° ì ë³´
- {íëëª }: {ê²ì¦ ì¡°ê±´}
[ê²ì¦ ì구ì¬í]
- {ê²ì¦ í목}: {ê²ì¦ ë´ì©}
- {ê²ì¦ í목}: {ê²ì¦ ë´ì©}
[ì²ë¦¬ ê²°ê³¼]
- ì±ê³µ ì
- {ê²°ê³¼ í목}
- {ê²°ê³¼ í목}
- ì¤í¨ ì
- {ì¤í¨ ì¡°ê±´}: {ì²ë¦¬ ë°©ë²}
– M/{í¬ì¸í¸}, S/{í¬ì¸í¸}, C/{í¬ì¸í¸}
ì°ì ìì í기ë²:
- M (Must Have): íì 구í 기ë¥
- S (Should Have): ì¤ì 구í 기ë¥
- C (Could Have): ì í 구í 기ë¥
- ì«ì: Story Points (í¼ë³´ëì¹: 1, 2, 3, 5, 8, 13, 21)
ìì: M/13 â Must Have, 13 í¬ì¸í¸
4. 기ì íì¤í¬ (ë³µì¡í ì¤í 리)
ë³µì¡í 구íì´ íìí ì¤í 리ë 기ì íì¤í¬ë¥¼ ë¶ë¦¬í©ëë¤:
[기ì íì¤í¬]
- Frontend
- {구í ë´ì©}
- {구í ë´ì©}
- Backend
- API Endpoint: {ìëí¬ì¸í¸}
- Service Layer: {ìë¹ì¤ ë¡ì§}
- Repository: {ë°ì´í° ì ê·¼}
- Infrastructure
- {ì¸íë¼ ì구ì¬í}
5. ì¬ì©ì ìí
ê° ìí ì ì:
- ì¤ëª
- ê¶í
- 목í
6. Feature Story Map
ê³ì¸µ 구조 ìì±:
User Service
âââ UFR-USER-010: íìê°ì
âââ UFR-USER-020: ë¡ê·¸ì¸
âââ UFR-USER-030: íë¡í ê´ë¦¬
Core Service
âââ UFR-CORE-010: [ê¸°ë¥ 1]
âââ UFR-CORE-020: [ê¸°ë¥ 2]
âââ UFR-CORE-030: [ê¸°ë¥ 3]
7. ì°ì ìì 매í¸ë¦ì¤
Must Have (P0)
- [UFR-XXX-###] – [ì¤í 리 ì 목]
Should Have (P1)
- [UFR-XXX-###] – [ì¤í 리 ì 목]
Could Have (P2)
- [UFR-XXX-###] – [ì¤í 리 ì 목]
Won’t Have (ì´ë² ë²ì ììë)
- [UFR-XXX-###] – [ì¤í 리 ì 목]
8. ì¤íë¦°í¸ ê³í (MVP 기ì¤)
Sprint 1 (1-2주차)
- UFR-USER-010: [ì 목] (M/5)
- UFR-CORE-020: [ì 목] (M/3)
- Sprint 목í: [ì¤íë¦°í¸ ëª©í]
- ì´ SP: 8
[ì´í ì¤íë¦°í¸ ê³ì]
9. ë¹ê¸°ë¥ì ì구ì¬í
ì±ë¥
- íì´ì§ ë¡ë: 3Gìì <3ì´, WiFiìì <1ì´
- API ìëµ: <200ms
- ëì ì¬ì©ì: 1000ëª
ë³´ì
- HTTPS ì ì©
- ì¸ì¦/ê¶í ê´ë¦¬
- ë°ì´í° ìí¸í
ì¬ì©ì±
- 모ë°ì¼ ë°ìí
- WCAG 2.1 ì ê·¼ì± ì¤ì
- ë¤êµì´ ì§ì
íì¥ì±
- ìí íì¥ ê°ë¥
- í´ë¼ì°ë ë¤ì´í°ë¸
- ë§ì´í¬ë¡ìë¹ì¤ ìí¤í ì²
10. Definition of Done
ì²´í¬ë¦¬ì¤í¸:
- ì½ë 리뷰 ìë£
- ë¨ì í ì¤í¸ ìì± ë° íµê³¼
- íµí© í ì¤í¸ íµê³¼
- 문ìí ìë£
- QA í ì¤í¸ íµê³¼
- ì¤í ì´ì§ ë°°í¬ ë° ê²ì¦
- íë¡ëì ë°°í¬
11. 리ì¤í¬ ë° ìì¡´ì±
| UFR ID | 리ì¤í¬/ì´ì | ìí¥ë | ìí ì ëµ |
|---|---|---|---|
| UFR-XXX-### | [리ì¤í¬] | ëì | [ì ëµ] |
INVEST ìì¹
ì ì ì¤í 리ë ë°ëì INVEST를 ë°ë¼ì¼ í¨:
- Independent (ë 립ì ): ë 립ì ì¼ë¡ ê°ë° ê°ë¥
- Negotiable (íì ê°ë¥): ì¸ë¶ì¬í ë ¼ì ê°ë¥
- Valuable (ê°ì¹ ìì): ì¬ì©ììê² ê°ì¹ ì ê³µ
- Estimable (ì¶ì ê°ë¥): ì¶ì ê°ë¥
- Small (ìì): í ì¤íë¦°í¸ ë´ ìë£ ê°ë¥
- Testable (í ì¤í¸ ê°ë¥): ëª íí ì¸ì 기ì¤
ìì± íì
ì ì ì¤í 리 ìì
# ì ì ì¤í 리
## User Service
### UFR-USER-010: [íìê°ì
] ì¬ì©ìë¡ì | ëë ìë¹ì¤ë¥¼ ì´ì©í기 ìí´ | ê°í¸íê² íìê°ì
íê³ ì¶ë¤.
- ìë리ì¤: ì ê· íìê°ì
미ë¡ê·¸ì¸ ìíìì íìê°ì
íë©´ì ì ê·¼í ìí©ìì | íì ì 보를 모ë ì
ë ¥íê³ íìê°ì
ë²í¼ì í´ë¦íë©´ | ê°ì
ì´ ìë£ëê³ ë¡ê·¸ì¸ íë©´ì¼ë¡ ì´ëíë¤.
[ì
ë ¥ ì구ì¬í]
- 기본 ì ë³´
- ì´ë¦: 2ì ì´ì (íê¸/ì문)
- ì´ë©ì¼: ì í¨í ì´ë©ì¼ íì
- ë¹ë°ë²í¸: 8ì ì´ì, ì문+ì«ì+í¹ì문ì
- ì¶ê° ì ë³´
- ëë¤ì: 2-10ì (ì í)
- íë¡í ì´ë¯¸ì§: JPG/PNG, ìµë 5MB (ì í)
[ê²ì¦ ì구ì¬í]
- ì´ë©ì¼ ì¤ë³µ íì¸: 기존 íìê³¼ ì¤ë³µ ë¶ê°
- ë¹ë°ë²í¸ ê°ë: ë³´ì ì ì±
ì¤ì
- íì ì
ë ¥: ì´ë¦, ì´ë©ì¼, ë¹ë°ë²í¸
[ì²ë¦¬ ê²°ê³¼]
- ì±ê³µ ì
- íì ì ë³´ DB ì ì¥
- íì ì´ë©ì¼ ë°ì¡
- ë¡ê·¸ì¸ íë©´ì¼ë¡ 리ëë ì
- ì¤í¨ ì
- ì´ë©ì¼ ì¤ë³µ: "ì´ë¯¸ ì¬ì© ì¤ì¸ ì´ë©ì¼ì
ëë¤" ë©ìì§
- ì í¨ì± ì¤ë¥: í´ë¹ íëì ì¤ë¥ ë©ìì§ íì
- M/13
---
(ë¤ì ì¤í 리 ë°ë³µ)
## ì¬ì©ì ìí
### ìí 1: {ìí ëª
}
- **ì¤ëª
**: {ìí ì¤ëª
}
- **ê¶í**: {ê¶í 목ë¡}
- **목í**: {ìí ì 주ì 목í}
### ìí 2: {ìí ëª
}
- **ì¤ëª
**: {ìí ì¤ëª
}
- **ê¶í**: {ê¶í 목ë¡}
- **목í**: {ìí ì 주ì 목í}
## Feature Story Map
\```
User Service
âââ UFR-USER-010: íìê°ì
âââ UFR-USER-020: ë¡ê·¸ì¸
âââ UFR-USER-030: íë¡í ê´ë¦¬
Core Service
âââ UFR-CORE-010: {ì¤í 리 ì 목}
âââ UFR-CORE-020: {ì¤í 리 ì 목}
âââ UFR-CORE-030: {ì¤í 리 ì 목}
\```
## ì°ì ìì 매í¸ë¦ì¤
### Must Have (P0) - íì
1. UFR-USER-010: íìê°ì
- ìë¹ì¤ ì´ì©ì ìí íì 기ë¥
2. UFR-CORE-020: {ì 목} - {ì¤ëª
}
### Should Have (P1) - ì¤ì
1. UFR-USER-030: {ì 목} - {ì¤ëª
}
2. UFR-CORE-030: {ì 목} - {ì¤ëª
}
### Could Have (P2) - ì í
1. UFR-XXX-###: {ì 목} - {ì¤ëª
}
### Won't Have - í¥í ê³ ë ¤
1. UFR-XXX-###: {ì 목} - {ì¤ëª
}
## ì¤íë¦°í¸ ê³í (MVP 기ì¤)
### Sprint 1 (1-2주차)
**Sprint 목í**: {ì¤í린í¸ì íµì¬ 목í}
- [ ] UFR-USER-010: íìê°ì
(M/5)
- [ ] UFR-USER-020: ë¡ê·¸ì¸ (M/3)
- [ ] UFR-CORE-010: {ì 목} (S/2)
**ì´ Story Points**: 10
**ìì ìë£ì¼**: {ë ì§}
### Sprint 2 (3-4주차)
**Sprint 목í**: {ì¤í린í¸ì íµì¬ 목í}
- [ ] UFR-CORE-020: {ì 목} (M/8)
- [ ] UFR-USER-030: {ì 목} (S/5)
**ì´ Story Points**: 13
**ìì ìë£ì¼**: {ë ì§}
(ì´í ì¤íë¦°í¸ ê³ì)
## ë¹ê¸°ë¥ì ì구ì¬í
### ì±ë¥ ì구ì¬í
- **íì´ì§ ë¡ë ìê°**: 3G ë¤í¸ìí¬ìì 3ì´ ì´ë´, WiFiìì 1ì´ ì´ë´
- **API ìëµ ìê°**: 200ms ì´ë´
- **ëì ì¬ì©ì ì²ë¦¬**: 1000ëª
ì´ì
- **í¸ëìì
ì²ë¦¬ë**: ì´ë¹ 100ê±´ ì´ì
### ë³´ì ì구ì¬í
- **HTTPS ì ì©**: 모ë íµì ìí¸í
- **ì¸ì¦/ê¶í ê´ë¦¬**: JWT ëë OAuth 기ë°
- **ë°ì´í° ìí¸í**: ë¯¼ê° ë°ì´í° ìí¸í ì ì¥
- **ë³´ì ê°ì¬**: ì 기ì ì¸ ë³´ì ì ê²
### ì¬ì©ì± ì구ì¬í
- **모ë°ì¼ ë°ìí**: 모ë 기기ìì ìµì íë íë©´
- **ì ê·¼ì±**: WCAG 2.1 AA ì´ì ì¤ì
- **ë¤êµì´ ì§ì**: ìµì 2ê° ì¸ì´ ì§ì
- **ë¸ë¼ì°ì í¸íì±**: Chrome, Safari, Firefox, Edge ìµì 2ê° ë²ì
### íì¥ì± ì구ì¬í
- **ìí íì¥**: í¸ëí½ ì¦ê° ì ìë² ì¶ê° ê°ë¥
- **í´ë¼ì°ë ë¤ì´í°ë¸**: í´ë¼ì°ë íê²½ ìµì í
- **ë§ì´í¬ë¡ìë¹ì¤**: ìë¹ì¤ ë
립 ë°°í¬ ê°ë¥
- **ìºì± ì ëµ**: Redis ê¸°ë° ìºì±
## Definition of Done
ê° ì¤í 리 ìë£ ê¸°ì¤:
### ê°ë° ìë£
- [ ] ì½ë ìì± ìë£
- [ ] ì½ë 리뷰 ìë£ (ìµì 1ëª
)
- [ ] ì½ë© ì¤íì¼ ê°ì´ë ì¤ì
- [ ] 기ì ë¶ì± ìµìí
### í
ì¤í¸ ìë£
- [ ] ë¨ì í
ì¤í¸ ìì± ë° íµê³¼ (커ë²ë¦¬ì§ 80% ì´ì)
- [ ] íµí© í
ì¤í¸ íµê³¼
- [ ] E2E í
ì¤í¸ íµê³¼ (주ì íë¡ì°)
- [ ] ì±ë¥ í
ì¤í¸ íµê³¼
### 문ìí ìë£
- [ ] ì½ë 주ì ìì±
- [ ] API 문ì ì
ë°ì´í¸
- [ ] ì¬ì©ì ê°ì´ë ì
ë°ì´í¸
- [ ] ë³ê²½ ì¬í ë¡ê·¸ ìì±
### ë°°í¬ ìë£
- [ ] ì¤í
ì´ì§ íê²½ ë°°í¬
- [ ] QA ê²ì¦ ìë£
- [ ] íë¡ëì
ë°°í¬ ì¹ì¸
- [ ] íë¡ëì
ë°°í¬ ìë£
## 리ì¤í¬ ë° ìì¡´ì±
### 리ì¤í¬ ê´ë¦¬
| UFR ID | 리ì¤í¬/ì´ì | ìí¥ë | ë°ì ê°ë¥ì± | ìí ì ëµ | ë´ë¹ì |
|----------|-----------|--------|-----------|----------|--------|
| UFR-USER-010 | {리ì¤í¬ ì¤ëª
} | ëì | ì¤ê° | {ìí ì ëµ} | {ë´ë¹ì} |
| UFR-CORE-020 | {리ì¤í¬ ì¤ëª
} | ì¤ê° | ëì | {ìí ì ëµ} | {ë´ë¹ì} |
### ìì¡´ì± ê´ë¦¬
| UFR ID | ìì¡´íë ì¤í 리 | ìì¡´ì± íì
| í´ê²° ë°©ë² |
|----------|--------------|-----------|----------|
| UFR-CORE-020 | UFR-USER-010 | 기ì ì ìì¡´ì± | {í´ê²° ë°©ë²} |
| UFR-XXX-### | UFR-CORE-020 | ë¹ì¦ëì¤ ìì¡´ì± | {í´ê²° ë°©ë²} |
ë구 íì©
Sequential MCP ì¬ì©
ë³µì¡í ì ì ì¤í 리 ë¶ìê³¼ ì°ì ìì ê²°ì ì´ íìí ë Sequential MCP를 íì©íì¬ ì²´ê³ì ì¼ë¡ ë°±ë¡ê·¸ë¥¼ 구ì±íì¸ì.
ê²°ê³¼ íì¼
- ì ì ì¤í 리.md:
design/userstory.md
주ìì¬í
-
UFR í¬ë§· ì¤ì:
UFR-{ìë¹ì¤}-{ì¼ë ¨ë²í¸}íì ì격í ì¬ì© -
ì¼ë ¨ë²í¸: ê° ìë¹ì¤ë³ë¡ ‘010’ë¶í° ììíì¬ 10ì© ì¦ê°ìí´
-
ìëë¦¬ì¤ êµ¬ì¡° íì: [ì ë ¥ ì구ì¬í], [ê²ì¦ ì구ì¬í], [ì²ë¦¬ ê²°ê³¼] 모ë ìì±
-
ì°ì ìì í기: M/S/C + Story Points (í¼ë³´ëì¹) íì ì¬ì©
-
ìµì 20ê° ì´ì: ì¶©ë¶í UFRë¡ MVP ë²ì ì ì
-
Event Storming ì°ê³: ES 결과를 UFRë¡ ì²´ê³ì ë³í
-
ë§ì´í¬ë¡ìë¹ì¤ 구조: ìë¹ì¤ë³ë¡ ëª íí 그룹í
-
기ì íì¤í¬: ë³µì¡í ì¤í 리ë Frontend/Backend/Infrastructure ë¶ë¦¬
-
INVEST ìì¹: ë 립ì±, íìê°ë¥ì±, ê°ì¹, ì¶ì ê°ë¥ì±, ìì í¬ê¸°, í ì¤í¸ê°ë¥ì±
-
ë¹ê¸°ë¥ì ì구ì¬í: ì±ë¥, ë³´ì, ì¬ì©ì±, íì¥ì± íì í¬í¨
-
Definition of Done: 모ë ìë£ ê¸°ì¤ ì¶©ì¡± íì
ë¤ì ë¨ê³
ì ì ì¤í 리 ìì± ìë£ í:
- UI/UX ëìì¸ (ìì´ì´íë ì, ëìì¸ ìì¤í )
- íë¡í íì ê°ë° (기ì ì¤í, 구í)
- ì¤íë¦°í¸ ì¤í ë° ê°ë°