FE TechSpec 문ì ìì± í í릿과 í¨í´. Linear íë¡ì í¸ì 기ì ëª ì¸ì를 ìì±í ë 참조. Use when: TechSpec ìì±, 기ì ëª ì¸ì ìì±, Given/When/Then í ì¤í¸ ì¼ì´ì¤ ì ì, Acceptance Criteria ìì±, Solution ì¤ê³ 문ì ìì± ì ì¬ì©.
Install
npx skillscat add seonghyeonkimm/my-claude-code-config/fe-techspec Install via the SkillsCat registry.
FE TechSpec
ê´ë ¨ ì¤í¬: entity-object-pattern - 구í ì ë°ë³µëë ëë©ì¸ ë¡ì§ì Entity Objectë¡ ê·¸ë£¹ííë í¨í´
FE TechSpecì íë¡ì í¸ì 기ì ì 구í ë°©í¥ì ì ìíë 문ì. PRD(ì구ì¬í)ì Figma(ëìì¸)를 기ë°ì¼ë¡ Solution, Acceptance Criteria, Test Cases를 ëì¶íë¤.
문ì 구조
Summary â Solution â Acceptance Criteria â Non-Functional Requirements â Functional Requirements (Given/When/Then) â Design â Component & Code â Verificationì ì²´ í
í릿ì references/template.md 참조.
ì¹ì ë³ ìì± ê°ì´ë
Summary
íë¡ì í¸ ë°°ê²½ê³¼ ë§¥ë½. PRD/Figma ë§í¬ í¬í¨.
## Summary
{íë¡ì í¸ ë°°ê²½ 1-3문ì¥}
- **PRD**: {Notion URL}
- **Figma**: {Figma URL}Solution
ë¹ì¦ëì¤ ê´ì ìì íµì¬ ë³ê²½ì¬íì ìì½. 기ì ì©ì´ ìì´ "무ìì´ ì´ë»ê² ë°ëëê°"ì ì§ì¤.
## Solution
### íµì¬ ë³ê²½ì¬í
1. **{ë³ê²½1}**: {ì¤ëª
}
2. **{ë³ê²½2}**: {ì¤ëª
}
3. **{ë³ê²½3}**: {ì¤ëª
}ìì± ê·ì¹:
- â ì½ë, APIëª , íì ëª ì¬ì© ê¸ì§
- â ì¬ì©ì/ê´ê³ 주 ê´ì ìì ìì
- 3-5ê° íµì¬ ë³ê²½ì¬íì ë²í¸ 매기기 íìì¼ë¡ ëì´
Acceptance Criteria
ê¸°ë¥ ëìì ìµì 기ì¤. í ì¤í¸ ê°ë¥í ííë¡ ìì±.
## Acceptance Criteria
1. {주ì´} ìíìì {ëì}íë©´ {ê²°ê³¼}ê° ë°ìíë¤
2. ...- 측ì ê°ë¥íê³ ê²ì¦ ê°ë¥í 문ì¥ì¼ë¡ ìì±
- "ë¹ ë¥´ê²", "ì" ê°ì 모í¸í íí ê¸ì§
- íµì¬ ì ì íë¡ì°ë³ 1ê° ì´ì
Non-Functional Requirements
SLA/SLO 기ì¤ì ìì¤í ì구ì¬í.
ì¹´í ê³ ë¦¬:
- Performance: LCP < 2.5s, FID < 100ms, CLS < 0.1
- Accessibility: WCAG AA
- SEO: ë©í íê·¸, OG íê·¸, ìë§¨í± ë§í¬ì
í´ë¹ íë¡ì í¸ì ê´ë ¨ ìë ì¹´í ê³ ë¦¬ë ìëµ ê°ë¥.
Functional Requirements (Given/When/Then)
í ì¤í¸ ì¼ì´ì¤ë¥¼ 구조íë í ì´ë¸ë¡ ì ì.
íµì¬ ê°ë :
- ê¸°ë¥ ì구ì¬íì Test cases (Given, When, Then) ííë¡ ì ìí´ì.
## Functional Requirements (Test cases / Given, When, Then)
| # | Given | When | Then |
|---|-------|------|------|
| 1 | {ì´ê¸° ìí/ì¡°ê±´} | {ì¬ì©ì íë/ì´ë²¤í¸} | {기ë ê²°ê³¼} |
| 2 | ... | ... | ... |ìì± í:
- ì ì ì¼ì´ì¤ â ìë¬ ì¼ì´ì¤ â ì£ì§ ì¼ì´ì¤ ìì
- Givenì ìí, Whenì íë, Thenì ê²ì¦ ê°ë¥í ê²°ê³¼
- â ï¸ Entity/Command ìë³ì Design ì¹ì ìì ìí, FRìë í ì´ë¸ë§ ìì±
Design
í ì¤í¸ ì¼ì´ì¤ 기ë°ì¼ë¡ ëë©ì¸ ì¤ê³ë¥¼ ì§í.
ìì± ìì:
- ë°ì´í° 모ë¸: API ìëµ ê¸°ë° interface ì ì
- API ìëµ ëª¨ë¸ì 기ë°ì¼ë¡ interface를 ì ìíê³ , ì»´í¬ëí¸ë ì´ interfaceìë§ ìì¡´
- ëë¶ë¶ API íì ì°¸ì¡°ë¡ ì¶©ë¶. ë³ë í´ë¼ì´ì¸í¸ Entityë ì ë§ íìí ê²½ì°ìë§ ì¶ê°
- íìí ê²½ì°: ì¬ë¬ API ìëµ ì¡°í©, í´ë¼ì´ì¸í¸ ê³ ì ìí, APIì ë¤ë¥¸ êµ¬ì¡°ê° íìí ê²½ì°
- Usecase: 주ì ì¬ì© ìëë¦¬ì¤ í
ì´ë¸ (Input â Output)
2.5. Interface Contract: Server-Client API (hooks/endpoints) + Client-Client API (component props)- Server-Client: query hook, mutation hook, íë¼ë¯¸í°, ìëµ íì , ìºì ì ëµ
- Client-Client: 모ë ê²½ê³ë¥¼ íì±íë íµì¬ Props Interfaceì Callback ìê·¸ëì²
- TC ë²í¸ë¡ ì¶ì
- Component & Visual Contract: ì»´í¬ëí¸ ê³ì¸µ ì¤ê³. ë ì íì¼ë¡ ë¶ë¥:
- Container: Usecase ì°ê²°, ìë² ìí 구ë , ë°ì´í° ê°ê³µ â íì Presentationalì ì ë¬. Visual Contract ìì
- Presentational: Props/Callbacks ê¸°ë° ìì UI. Visual Contract íì (Layout, States, Interactions)
- Figmaê° ìì¼ë©´
get_design_context/get_variable_defsìì ì¶ì¶, ìì¼ë©´ í ì¤í¸ ì¼ì´ì¤ìì ëì¶
- Usecase-Component Integration: ì°ê²° ì§ì ì ì
- Optimization Checklist: TC/NFRìì ëì¶ë ìµì í íëª©ë§ ê¸°ë¡
- Performance, UX, Network, A11y ì¹´í ê³ ë¦¬
- í´ë¹ ìë í목ì 기ë¡íì§ ìì
ë°ì´í° ëª¨ë¸ ê°ì´ë:
- â API ìëµ íì ì 기ë°ì¼ë¡ interface ì ì â ì»´í¬ëí¸ë interfaceë§ ìì¡´
- â
enum/ììê°ì
constants/ì ë³ë ì ì ê°ë¥ - â API ìëµê³¼ ëì¼í 구조를 í´ë¼ì´ì¸í¸ Entityë¡ ì¬ì ì
- â ï¸ ë³ë í´ë¼ì´ì¸í¸ Entityê° íìíë©´ ì¬ì 를 ëª ì (ì: "ì¬ë¬ API ìëµ ì¡°í© íì")
Component & Code - Client
- Test cases 기ë°ì¼ë¡ module, usecase, ì»´í¬ëí¸ êµ¬ì¡° ì¶ì¶
- ì»´í¬ëí¸ ë¶í´, íì¼ êµ¬ì¡°, Props ì¸í°íì´ì¤.
- interfaceë API íì 기ë°ì¼ë¡ ì ìíë, ì»´í¬ëí¸ê° API 모ë¸ì ì§ì ìì¡´íì§ ìëë¡ ë ì´ì´ ë¶ë¦¬
(Optional) Context & Container Diagram / Component & Code - Server
íìí ê²½ì°ìë§ ìì±.
Verification
í ì¤í¸ ì¼ì´ì¤ ê²ì¦ ì ëµ.
ì°ì ìì:
- Integration Tests (íì): TC ê¸°ë° ì»´í¬ëí¸ íµí© í ì¤í¸
- Unit Tests (íì ì): ë³µì¡í íì ìí ë¡ì§ë§
- E2E Tests (íì ì): ì ì²´ ì¬ì©ì íë¡ì° ê²ì¦
Integration Test í ì´ë¸ íì:
| TC# | í ì¤í¸ ëª | ê²ì¦ ë´ì© |
|---|---|---|
| TC1 | ... | ... |
íí ì¤ìì í´ê²°ì±
| 문ì | ìì¸ | í´ê²° |
|---|---|---|
| ACê° ëª¨í¸í¨ | "ë¹ ë¥´ê²", "ì" ê°ì ì¶ìì íí | 측ì ê°ë¥í ê¸°ì¤ ì¬ì© (ì: "3ì´ ì´ë´") |
| Given/When/Then ë¶ëª í | ìí/íë/ê²°ê³¼ êµ¬ë¶ ìì | Given=ìí, When=íë, Then=ê²ì¦ ê°ë¥í ê²°ê³¼ |
| Test Case ëë½ | ì ì ì¼ì´ì¤ë§ ìì± | ìë¬/ì£ì§ ì¼ì´ì¤ ë°ëì í¬í¨ |
| NFR ìëµ | ì íì¬íì´ë¼ 무ì | ê³µê° íì´ì§ë©´ SEO/A11y íì ê²í |
| Solutionì ì½ë í¬í¨ | "기ì ì í´ê²°ì± "ì¼ë¡ ì¤í´ | ë¹ê¸°ì ìì½ì¼ë¡ ìì± |
| í´ë¼ì´ì¸í¸ Entity ê³¼ì ì¤ê³ | API ìëµì ì¬ì ìíë ¤ í¨ | API íì ê¸°ë° interfaceë¡ ì¶©ë¶. ë³ë Entityë ì¬ì íì |
| UI 문구 ê°ì | Figma 미íì¸ | variantsìì ì¤ì 문구 ì¶ì¶ |
| FRì Entity/Command í¤ë | ì§ì¹¨ ì¤í´ | Designììë§ ì¬ì©, FRì í ì´ë¸ë§ |
| Verification ëë½ | ì íì¬íì¼ë¡ ì¤ì¸ | Integration Test íì |
| ê·ì¹ ì¤ë³µ 구í | UI/APIìì ê°ì ê·ì¹ì ê°ê° 구í | 구í ì entity-object-pattern ì¤í¬ 참조 |
| Container/Presentational í¼í© | íëì ì»´í¬ëí¸ê° Usecase í¸ì¶ + UI ë ëë§ | Container(ë°ì´í° íë¦)ì Presentational(Props/Callbacks)ì ë¶ë¦¬ |
| 모ë Props를 Interface Contractì ê¸°ë¡ | ê³¼ì ëª ì¸ | 모ë ê²½ê³ë¥¼ íì±íë íµì¬ ì¸í°íì´ì¤ë§ ì ì. ë´ë¶ ì»´í¬ëí¸ Propsë Component ì¹ì ìì |
| Optimization Checklist ì ë¶ ì±ì | RADIO ìì¹ ì¤í´ | TC/NFRìì ëì¶ë í목ë§. "í´ë¹ìì"ì´ ëë¶ë¶ì´ì´ë ì ì |