| name | react-refactoring |
| description | | Use when this capability is needed. |
React Refactoring Skill
์ฌ์ฉ์๊ฐ ์ ์ํ๋ ๋ฌธ์ ์ ์ ๋ฌด์กฐ๊ฑด ์์ฉํ์ง ์๋๋ค. ๊ฐ ๋ฌธ์ ์ ์ ๋ํด ๋นํ์ ์ผ๋ก ๊ฒํ ํ๊ณ , ์ ๋ง ๋ฌธ์ ์ธ์ง, ์ ์๋ ๋ฐฉํฅ์ด ์ต์ ์ธ์ง ๋ถ์ํ ํ ๋ฆฌํฉํ ๋ง์ ์ํํ๋ค.
ํต์ฌ ์์น: ์์ ํ๊ธฐ ์ข์ ์ฝ๋
๋ชจ๋ ํ๋จ์ ๊ธฐ์ค์ **"์์ ํ๊ธฐ ์ข์ ์ฝ๋์ธ๊ฐ?"**์ด๋ค. ํ๊ฐ ๊ธฐ์ค ์์ธ๋ references/evaluation-criteria.md ์ฐธ์กฐ.
์ํฌํ๋ก์ฐ
Phase 1: ํํฉ ํ์
- ๋์ ์ปดํฌ๋ํธ/ํ์ผ ์ฝ๊ธฐ
- ๊ด๋ จ ์์กด์ฑ ํ์ผ๋ค ํ์
(imports, hooks, types)
- ํ์ฌ ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ตํ ์ ๋ฆฌ
Phase 2: ๋ฌธ์ ์ ๋ณ ๋นํ์ ๋ถ์
์ฌ์ฉ์๊ฐ ์ ์ํ ๋ฌธ์ ์ ์ ์์ ๋ณต์ก๋์ ๋ฐ๋ผ ๋ชจ๋๋ฅผ ์ ํํ๋ค.
๋ชจ๋ ์ ํ ๊ธฐ์ค
| ์กฐ๊ฑด | ๋ชจ๋ | ์ค๋ช
|
|---|
| 1-2๊ฐ ๋จ์ ๋ฌธ์ ์ | Standard Mode | ๊ธฐ์กด sequential-thinking 3ํ ๋ฐฉ์ |
| 3๊ฐ ์ด์ ๋๋ ๋ณต์กํ ๋ฌธ์ ์ | Multi-Perspective Mode | ๋ณ๋ ฌ sub-agent 3๊ด์ ๋ถ์ |
Standard Mode (1-2๊ฐ ๋จ์ ๋ฌธ์ ์ )
๊ฐ ๋ฌธ์ ์ ๋ง๋ค mcp__sequential-thinking__sequentialthinking ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๊ณ ๊ณผ์ ์ ๊ธฐ๋กํ๋ค.
๊ฐ ๋ฌธ์ ์ ๋น ์ต์ 3๋ฒ์ thinking ๋ฃจํ๋ฅผ ์ํํ๋ค.
Step 2.1: ๋ฌธ์ ์ ์ ๊ฒ์ฆ
sequential-thinking์ผ๋ก ๋ค์์ ๋ถ์:
์ด ๋ฌธ์ ๊ฐ ์ ๋ง ๋ฌธ์ ์ธ๊ฐ?
- ํ์ฌ ์ฝ๋๊ฐ ์ค์ ๋ก ์ด๋ค ๋ถํธ/์ํ์ ์ด๋ํ๋๊ฐ?
- "์์ ํ๊ธฐ ์ข์ ์ฝ๋" 9๊ฐ์ง ๊ธฐ์ค ์ค ์ด๋ค ๊ฒ์ ์๋ฐํ๋๊ฐ?
- ์๋ฐ์ด ์๋ค๋ฉด, ์ด๊ฑด ์ทจํฅ์ ๋ฌธ์ ์ธ๊ฐ ์ค์ง์ ๋ฌธ์ ์ธ๊ฐ?
Step 2.2: ์ ์๋ ๋ฐฉํฅ ํ๊ฐ
์ฌ์ฉ์๊ฐ ๋ฐฉํฅ์ ์ ์ํ๋ค๋ฉด:
์ด ๋ฐฉํฅ์ด ์ ๋ง ๊ฐ์ ์ธ๊ฐ?
- ์ ์๋ ๋ณ๊ฒฝ์ด "์์ ํ๊ธฐ ์ข์ ์ฝ๋" ๊ธฐ์ค์ ์ถฉ์กฑํ๋๊ฐ?
- ์คํ๋ ค ๋ณต์ก์ฑ์ ์ฆ๊ฐ์ํค์ง๋ ์๋๊ฐ?
- ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ์ผ๊ด์ฑ์ ํด์น์ง ์๋๊ฐ?
- ๊ณผํ ์ถ์ํ(Over-engineering)๋ ์๋๊ฐ?
Step 2.3: ๋์ ํ์
์ ์๋ ๋ฐฉํฅ์ด ์ต์ ์ด ์๋๋ผ๋ฉด:
๋ ๋์ ๋์์?
- ๋ ๋จ์ํ ํด๊ฒฐ์ฑ
์ด ์๋๊ฐ?
- ์ ์ง์ ์ผ๋ก ๊ฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์?
- ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์๋ ๊ฒ๋ ์ ํ์ง์ธ๊ฐ?
Multi-Perspective Mode (3๊ฐ ์ด์ ๋๋ ๋ณต์กํ ๋ฌธ์ ์ )
๊ฐ ๋ฌธ์ ์ ์ ๋ํด 3๊ฐ ๊ด์ ์ Task sub-agent๋ฅผ ๋ณ๋ ฌ ์คํํ๋ค.
์์ด์ ํธ ๊ตฌ์ฑ
| Agent | subagent_type | model | ๊ด์ |
|---|
| Readability Advocate | general-purpose | sonnet | ๊ฐ๋
์ฑ, ์๋์ ๋ช
ํ์ฑ |
| Architecture Purist | typescript-pro | sonnet | ํ์
์์ ์ฑ, ํจํด ์ผ๊ด์ฑ, ๊ตฌ์กฐ์ ์ ํฉ์ฑ |
| Pragmatic Developer | frontend-developer | sonnet | ์ ์ง๋ณด์์ฑ, ์ค์ฉ์ฑ, ๊ฐ๋ฐ ๊ฒฝํ |
์คํ ๋ฐฉ๋ฒ
3๊ฐ์ Task sub-agent๋ฅผ ๋จ์ผ ๋ฉ์์ง์์ ๋์ ์คํ (run_in_background: true):
Agent: Readability Advocate
You are a Readability Advocate analyzing a React refactoring proposal.
Your lens: code readability, intent clarity, self-documenting code.
Read the target component at: [ํ์ผ ๊ฒฝ๋ก]
The user's proposed issues and changes:
[๋ฌธ์ ์ ๋ชฉ๋ก]
For EACH issue, provide your verdict:
- Verdict: [์์ฉ/์์ /๊ธฐ๊ฐ]
- Reasoning: [Why, focused on readability impact]
- Alternative: [Better approach from readability perspective, if any]
Write your analysis. Focus on whether each change makes the code easier to READ and UNDERSTAND.
Agent: Architecture Purist
You are an Architecture Purist analyzing a React refactoring proposal.
Your lens: type safety, pattern consistency, structural integrity, SOLID principles.
Read the target component at: [ํ์ผ ๊ฒฝ๋ก]
The user's proposed issues and changes:
[๋ฌธ์ ์ ๋ชฉ๋ก]
For EACH issue, provide your verdict:
- Verdict: [์์ฉ/์์ /๊ธฐ๊ฐ]
- Reasoning: [Why, focused on type safety and architectural patterns]
- Alternative: [Better approach from architecture perspective, if any]
Write your analysis. Focus on whether each change improves TYPE SAFETY and STRUCTURAL CONSISTENCY.
Agent: Pragmatic Developer
You are a Pragmatic Developer analyzing a React refactoring proposal.
Your lens: maintainability, practicality, developer experience, cost-benefit.
Read the target component at: [ํ์ผ ๊ฒฝ๋ก]
The user's proposed issues and changes:
[๋ฌธ์ ์ ๋ชฉ๋ก]
For EACH issue, provide your verdict:
- Verdict: [์์ฉ/์์ /๊ธฐ๊ฐ]
- Reasoning: [Why, focused on practical maintenance impact]
- Alternative: [Better approach from practical perspective, if any]
Write your analysis. Focus on whether each change is WORTH THE EFFORT and improves MAINTAINABILITY.
์ข
ํฉ ๊ท์น
3๊ฐ ์์ด์ ํธ์ ๊ฒฐ๊ณผ๋ฅผ ์์งํ ํ ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์ข
ํฉ:
| ํฉ์ ์ํฉ | ํ๋ |
|---|
| 3๊ฐ ์ผ์น (์์ฉ/์์ /๊ธฐ๊ฐ) | ๋์ ํ์ ์ผ๋ก ํด๋น ํ๋จ ์ฑํ |
| 2:1 (๋ค์:์์) | ์์ ์๊ฒฌ์ ๊ทผ๊ฑฐ๋ฅผ ๊ฒํ ํ ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์ต์ข
๊ฒฐ์ |
| 3๊ฐ ์์ด | AskUserQuestion์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ ํ์ง์ ๊ทผ๊ฑฐ๋ฅผ ์ ์ํ์ฌ ํ๋จ ์์ฒญ |
Step 2.4: ๋ถ๋ช
ํํ ์ ์ง๋ฌธ (๊ณตํต)
๋ถ์ ์ค ๋ค์ ์ํฉ์ด๋ฉด ๋ฐ๋์ AskUserQuestion ๋๊ตฌ๋ก ์ง๋ฌธ:
- ๋น์ฆ๋์ค ์ปจํ
์คํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ (์: "์ด ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฌ์ฉ๋๋์?")
- ๊ธฐ์กด ์ฝ๋์ ์๋๊ฐ ๋ถ๋ช
ํํ ๊ฒฝ์ฐ (์: "์ด ํ
์ด ์ด๋ ๊ฒ ์ค๊ณ๋ ์ด์ ๊ฐ ์๋์?")
- ์ฌ์ฉ์์ ์ ์๊ณผ ๋ถ์ ๊ฒฐ๊ณผ๊ฐ ์ถฉ๋ํ๋ ๊ฒฝ์ฐ (์: "์ด ๋ฐฉํฅ์ ์คํ๋ ค ๋ณต์กํด์ง ์ ์๋๋ฐ, ๊ทธ๋๋ ์งํํ ๊น์?")
- ํ ์ปจ๋ฒค์
ํ์ธ์ด ํ์ํ ๊ฒฝ์ฐ (์: "ํ์์ ๋ค์์คํ์ด์ค ํจํด์ ์ฌ์ฉํ๋ ๊ณณ์ด ์๋์?")
Phase 3: ๋ฆฌํฉํ ๋ง ๊ณํ ์๋ฆฝ
๋ชจ๋ ๋ฌธ์ ์ ๋ถ์ ์๋ฃ ํ:
- ๋ถ์ ๊ฒฐ๊ณผ ์์ฝ: ๊ฐ ๋ฌธ์ ์ ์ ๋ํ ํ๋จ (์์ฉ/์์ /๊ธฐ๊ฐ)
- Multi-Perspective Mode์ธ ๊ฒฝ์ฐ: ๊ฐ ๊ด์ ์ Verdict์ ์ต์ข
๊ฒฐ์ ๊ทผ๊ฑฐ ํฌํจ
- ๋ฆฌํฉํ ๋ง ๊ณํ์ ์์ฑ:
- ๋ณ๊ฒฝ ๋์ ํ์ผ ๋ชฉ๋ก
- ๊ฐ ๋ณ๊ฒฝ์ ๋ชฉ์ ๊ณผ ๊ธฐ๋ ํจ๊ณผ
- ๋ณ๊ฒฝ ์์ (์์กด์ฑ ๊ณ ๋ ค)
- ์์ ์ํ ์์
- ์ ์ง์ ์คํ ๊ณํ: ํ ๋ฒ์ ํฐ ๋ณ๊ฒฝ ๋์ ์์ ๋จ์๋ก ๋ถ๋ฆฌ
Phase 4: ์ฌ์ฉ์ ์น์ธ
๊ณํ์๋ฅผ ์ ์ํ๊ณ AskUserQuestion์ผ๋ก ์น์ธ ์์ฒญ:
๋ฆฌํฉํ ๋ง ๊ณํ์ ๊ฒํ ํด์ฃผ์ธ์.
- [์์ฉ] ๋ฌธ์ 1: ... โ ์ด๋ ๊ฒ ๋ณ๊ฒฝ
- [์์ ] ๋ฌธ์ 2: ... โ ์ ์๊ณผ ๋ค๋ฅด๊ฒ ์ด ๋ฐฉํฅ์ผ๋ก
- [๊ธฐ๊ฐ] ๋ฌธ์ 3: ... โ ํ์ฌ ๊ตฌ์กฐ๊ฐ ๋ ์ ์ ํจ
์งํํด๋ ๋ ๊น์?
Phase 5: ๋ฆฌํฉํ ๋ง ์คํ
์น์ธ ํ ๊ณํ์ ๋ฐ๋ผ ์ฝ๋ ์์ . ๊ฐ ๋จ๊ณ๋ง๋ค:
- ๋ณ๊ฒฝ ์ ์ํ ํ์ธ
- ๋ณ๊ฒฝ ์ํ
- ๋ณ๊ฒฝ์ด ์๋๋๋ก ๋์๋์ง ๊ฒ์ฆ
- ํ์์ ๊ด๋ จ ํ
์คํธ ํ์ธ/์์
์ฃผ์์ฌํญ
ํ์ง ๋ง์์ผ ํ ๊ฒ
- ์ฌ์ฉ์ ์ ์์ ๋ฌด๋นํ์ ์ผ๋ก ์์ฉ
- ๋ถ์ ์์ด ๋ฐ๋ก ์ฝ๋ ์์ ์์
- "์ผ๋ฐ์ ์ผ๋ก ์ข์ ํจํด"์ด๋ผ๋ ์ด์ ๋ง์ผ๋ก ๋ณ๊ฒฝ ์ ์
- ํ ๋ฒ์ ๋๋ฌด ๋ง์ ๊ฒ์ ๋ณ๊ฒฝ
ํญ์ ํด์ผ ํ ๊ฒ
- ๋ชจ๋ ํ๋จ์ ๊ตฌ์ฒด์ ๊ทผ๊ฑฐ ์ ์
- ๋ถํ์คํ๋ฉด ์ง๋ฌธ
- ๋ณ๊ฒฝ์ ํธ๋ ์ด๋์คํ ๋ช
์
- ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค ์คํ์ผ ์กด์ค
React/TypeScript ํนํ ์ฒดํฌ๋ฆฌ์คํธ
ํ
๋ถ๋ฆฌ ์:
- ๋ถ๋ฆฌ ํ์๋ co-location์ด ์ ์ง๋๋๊ฐ?
- ์ปค์คํ
ํ
์ ๋ฐํ ํ์
์ด ๋ช
ํํ๊ฐ?
- ํ
๊ฐ ์์กด์ฑ์ด ๋จ๋ฐฉํฅ์ธ๊ฐ?
์ปดํฌ๋ํธ ๋ถ๋ฆฌ ์:
- Props drilling์ด ๊ณผ๋ํด์ง์ง ์๋๊ฐ?
- ์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ๊ฐ ํ์ํด์ง์ง ์๋๊ฐ?
- ์ปดํฌ๋ํธ ๊ฒฝ๊ณ๊ฐ ์์ฐ์ค๋ฌ์ด๊ฐ?
ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์:
- import ๊ฒฝ๋ก๊ฐ ๊ณผ๋ํ๊ฒ ๊ธธ์ด์ง์ง ์๋๊ฐ?
- ์ํ ์์กด์ฑ์ด ์๊ธฐ์ง ์๋๊ฐ?
- ๊ธฐ์กด ๊ตฌ์กฐ์์ ์ผ๊ด์ฑ์?
Converted and distributed by TomeVault โ claim your Tome and manage your conversions.