SpecKit

https://github.com/github/spec-kit
GitHub - github/spec-kit: ๐ซ Toolkit to help you get started with Spec-Driven Development
๐ซ Toolkit to help you get started with Spec-Driven Development - github/spec-kit
github.com
๊นํ๋ธ๊ฐ ๋ง๋ ์คํ์์ค ๋๊ตฌ๋ผ๊ณ ํ ์ ์๋ค.
ํ์ฌ์์ AI๋ฅผ ์ด์ฉํ ๋ฐ์ด๋ธ์ฝ๋ฉ์ ์ ์ฉํ๊ณ ์๋๋ฐ ์ด๋๋ง๋ค ๋ด๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ด ๋ง๋ค์ด์ง์ง ์์ ํจ์๋จ์๋ก ์ชผ๊ฐ์ ๊ฐ๋ฐํ๊ฑฐ๋,
Cursor Plan Mode ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๊ฐ SDD๋ ๋ฐฉ๋ฒ๋ก ์ ์ฐพ์๋ค.
์คํฉ์ฃผ๋ ๊ฐ๋ฐ์ด๋(Spec-Driven Development)
๊ฐ๋ฐ ์์ฒด๋ฅผ ์คํฉ(๋ช
์ธ?, ํ์คํ ๊ธฐ๋ฅ)์ ๋จผ์ ํ๊ณ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๋ ๋ฐฉ์์ด๋ค.
์๋๋ DDD ๋๋ฉ์ธ ์ฃผ๋ ๊ฐ๋ฐ์ด๋, TDDํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ ๋ฑ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ก ์ด ์์๊ณ ๊ทธ ์ด์ ์๋ Waterfall ๋ฐฉ์์ ๋ฐฉ๋ฒ๋ก ์ด ์์๋ค.
์ํฐํด์ ๋ฌธ์๋ฅผ ํตํด ์๋ฒฝํ๊ฒ ์ค๊ณ๋ฅผ ํ๊ณ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๋ ๋ฐฉ์์ธ๋ฐ ์ ํ๋ ์ด์ ๋
์ ์์ผ (Agile) ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ ธ๊ณ (๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ณ ์์ฅ์ ๋ฐ์์ ๋ด์ผํ๋๋ฐ ์ค๊ณํ๋๋ฐ ์๊ฐ์ด ๋ง์ด ๋ค์ด๊ฐ)
์ค๊ณ๋ฅผ ์๋ฒฝํ๊ฒ ํด๋ ์ค๋ฅ๋ ๊ตฌ๋ฉ์ด ์์๊ณ , ๋ฌธ์๋ฅผ ์ฐ๋๊ฒ ๋๋ฌด ์ด๋ ต๊ณ
์ด๋ฅผ ์ฝ๋์ ๋๊ธฐํ ์ํคํค๋ ์ด๋ ต๋ค๋ ์ด์ ๋๋ฌธ์ ์ ์ฐ์ด๊ณ ์์๋ค.
๊ทผ๋ฐ LLM์ด ๋ฑ์ฅํ๋ฉด์ ์ํฉ์ด ๋ฐ๋์๋ค.
-> ๋ฌธ์๋ฅผ ์ฐ๋ ๋ฐ์ ๋
ธ๋ ฅ์ด ๋งค์ฐ ๋ฎ์์ก๊ณ , ์์ฐ์ด๋ก ์ด๋ฐ ๊ธฐ๋ฅ ๋ง๋ค๊ณ ์ถ์ด ํ๋ฉด AI ๊ฐ ๋์ ์์ฑํด ์ฃผ๋ ๊ฒฝ์ง๊น์ง ์ด๋ฅด๋ ๋ค.
๋ํ ๋ฐ์ด๋ธ ์ฝ๋ฉ์ ํด๋ณด๋ ํ์คํ ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ธฐ์ ์ด ํ์ํด์ก๋ค.
AI๋ ๋ช
ํํ๊ฒ ์ค๋ช
ํ๋ฉด ์ ์ํํ์ง๋ง ์ถ์์ ์ผ๋ก ์ค๋ช
ํ๋ฉด ์ถ์์ ์ผ๋ก ๊ตฌํํ๋ค. (์๊ธฐ ๋ง์๋๋ก)
๋ฐ๋ผ์ ๊ฐ๋ฐ์๋ค์ ๋ฐ์ด๋ธ ์ฝ๋ฉ์ ํ๊ธฐ์ ์ ์์ธํ ์คํ์ ๋ฏธ๋ฆฌ AI์ ํจ๊ป ์์ฑํ๊ณ ๊ทธ ์คํ์ ๊ณ์ํด์ ์ฐธ๊ณ ํ๊ฒ instruction์ผ๋ก ์ฃผ์๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ๋ก ์ด ๋๋ฆฌ ํผ์ ธ์ ์ง๊ธ์ ์ด๋ฅด๋ฌ SDD ๊ฐ ๋์๋ค.
SpecKit์์์ SDD
SpecKit์ SDD๋ฅผ GitHub Next ํ์์ ํด์ํ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ ๊ทธ๋ค์ ์๊ฐ์ ์ง์ ์ ๋ฆฌํด๋์ ๋ฌธ์๋ค.
https://github.com/github/spec-kit/blob/main/spec-driven.md
spec-kit/spec-driven.md at main · github/spec-kit
๐ซ Toolkit to help you get started with Spec-Driven Development - github/spec-kit
github.com
๋ช ์ธ์๊ฐ ์ฝ๋๋ฅผ ์ฌ๊ธฐ๋ ๊ฒ์ด ์๋๋ผ, ์ฝ๋๊ฐ ๋ช ์ธ์๋ฅผ ์ฌ๊น๋๋ค. PRD๋ ๊ตฌํ์ ์ํ ๊ฐ์ด๋๊ฐ ์๋, ์ด๋ฅผ ๋ณด๊ณ ๊ตฌํ์ ํ๋ ์์ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋ฌด์์ด ๊ฐ๋ฐ์ ์ฃผ๋ํ๋๊ฐ์ ๋ํ ๊ทผ๋ณธ์ ์ธ ์ฌ ํด์์ ๋๋ค.
์ฝ๋์ ๋ง์ถ์ด ๋ช ์ธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋ ๋ช ์ธ๋ฅผ ์ฝ๋๋ก ๋ณํ(Transformation)์ด ๊ทธ๋ค์ด ์ ์ํ ๋น์ ์ด๋ค.
์์)
- ์ ํต์ ๋ฐฉ์: ์ฝ 12์๊ฐ์ ๋ฌธ์ ์์ (PRD ์์ฑ, ์ค๊ณ ๋ฌธ์, ํ๋ก์ ํธ ์ธํ , ๊ธฐ์ ๋ช ์ธ, ํ ์คํธ ๊ณํ ๋ฑ)
- ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ SDD ๋ฐฉ์:
- /speckit.specify: "๋ฉ์์ง ๊ธฐ๋ก๊ณผ ์ฌ์ฉ์ ์ํ๊ฐ ์๋ ์ค์๊ฐ ์ฑํ ์์คํ " (5๋ถ) -> ๋ช ์ธ์ ์์ฑ
- /speckit.plan: "์ค์๊ฐ ๋ฉ์์ง์ฉ ์น์์ผ, ๊ธฐ๋ก์ฉ PostgreSQL, ์ํ์ฉ Redis" (5๋ถ) -> ๊ตฌํ ๊ณํ ์์ฑ
- /speckit.tasks: (5๋ถ) -> ์คํ ๊ฐ๋ฅํ ์์ ๋ชฉ๋ก ์์ฑ
15๋ถ ๋ง์ ๋ค์์ ์ป์ต๋๋ค: ์ฌ์ฉ์ ์คํ ๋ฆฌ, ๊ธฐ์ ์ ์ ํ๊ณผ ๊ทผ๊ฑฐ๊ฐ ๋ด๊ธด ๊ตฌํ ๊ณํ, API ๊ณ์ฝ, ๋ฐ์ดํฐ ๋ชจ๋ธ, ํฌ๊ด์ ํ ์คํธ ์๋๋ฆฌ์ค, ๋ฒ์ ๊ด๋ฆฌ๋ ๋ฌธ์๋ค.
๊ตฌ์กฐํ๋ ์๋ํ์ ํ
์ด ๋ช ๋ น์ด๋ค์ ๋จ์ํ ์๊ฐ์ ์ ์ฝํ๋ ๊ฒ์ด ์๋๋ผ ์ผ๊ด์ฑ๊ณผ ์์ ์ฑ์ ๊ฐ์ ํฉ๋๋ค:
- ๋๋ฝ๋ ์ธ๋ถ ์ฌํญ ์์: ํ ํ๋ฆฟ์ด ๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ๋ถํฐ ์๋ฌ ์ฒ๋ฆฌ๊น์ง ๋ชจ๋ ์ธก๋ฉด์ ๊ณ ๋ คํ๊ฒ ํจ
- ์ถ์ ๊ฐ๋ฅํ ๊ฒฐ์ : ๋ชจ๋ ๊ธฐ์ ์ ์ ํ์ด ํน์ ์๊ตฌ์ฌํญ์ผ๋ก ์ฐ๊ฒฐ๋จ
- ์ด์์๋ ๋ฌธ์: ๋ช ์ธ์๊ฐ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๋๊ธฐํ๊ฐ ์ ์ง๋จ
- ๋น ๋ฅธ ๋ฐ๋ณต: ์๊ตฌ์ฌํญ์ ๋ณ๊ฒฝํ๊ณ ๋ฉฐ์น ์ด ์๋ ๋ช ๋ถ ๋ง์ ๊ณํ์ ์ฌ์์ฑ
๋ฐ๋ผ์ ๊ทธ๋ค์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ "AI๋ผ๋ ๋ฌดํํ ๋ ธ๋๋ ฅ์ ์ด์ฉํด ์ฝ๋ฉ(๊ตฌํ)์ ๊ณ ํต์ ์ ๊ฑฐํ๊ณ , ๊ฐ๋ฐ์๋ ์์ํ "์ค๊ณ ์ ๋ ผ๋ฆฌ"์ ์์ญ์ผ๋ก ๋์ด๊ฐ๋ ๊ทธ ๊ณผ์ ์ค์ ํ๋"๋ผ๊ณ ๋๊ผ์ต๋๋ค.
์ฌ์ฉ ์ค๋น
ํ์ ๋๊ตฌ: Python 3.11+, Git, uv (ํ์ด์ฌ ํจํค์ง ๋งค๋์ )
AI ์์ด์ ํธ: Claude Code, GitHub Copilot CLI, Cursor ๋ฑ
๋จผ์ SpecKit CLI๋ฅผ ์ค์นํ๊ณ ํ๋ก์ ํธ๋ฅผ ์ธํ ํด์ผํฉ๋๋ค.
- UV๋ฅผ ์ด์ฉํด์ ์ค์น
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
- ํ๋ก์ ํธ ์์ฑ
# ์ ํ๋ก์ ํธ ์์ฑ (์: my-app) ๋ฐ AI ์์ด์ ํธ ์ ํ (์: claude)
specify init my-app --ai claude
# ๋๋ ํ์ฌ ํด๋์์ ์์
specify init . --ai claude
์ด๋ฐ ์์ผ๋ก
์ด ๊ณผ์ ์ ๊ฑฐ์น๋ฉด ํ๋ก์ ํธ ํด๋์. specify ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๊ณ ๊ฐ์ข ํ ํ๋ฆฟ์ด ๋ค์ด๋ก๋๋๋ค.
์ดํ ์ํ๋ AI ๋ช ๋ น์ด์ ์ด๋ฐ ์์ผ๋ก ๋ชฉ๋ก์ด ๋น๋๋ค.

- ํ๋ฒ(Constitution) ์ ์
ํ๋ก์ ํธ์ '๋์์น'์ ์ธ์ฐ๋ ๋จ๊ณ์ ๋๋ค. AI๊ฐ ๋ด ๋ง์๋๋ก ์ฝ๋๋ฅผ ์ง์ง ์๋๋ก ๊ท์น์ ์ ํฉ๋๋ค.
์ฌ๊ธฐ์๋ ํ๋ก์ ํธ์ ์ปจ๋ฒค์
์ด๋, ์ฝ๋์คํ์ผ, ์ํคํ์ณ ๋ฑ๋ฑ AI๊ฐ ๋ง์๋๋ก ์ฝ๋๋ฅผ ์ง์ง ์๊ฒ ์ ์ธ์ ํด์ค๋๋ค.
ํ๋ก์ ํธ์์ ํ ๋ฒ๋ง ์คํํด๋ ๋๋ ์ปจ๋ฒค์
์ด ๋ฐ๋๋ฉด ์์ ํด ๋ฌ๋ผ๊ณ ์ํํ๋ฉด ๋ฉ๋๋ค.
์ฌ์ฉ์ฒ: AI ์์ด์ ํธ ์ฑํ ์ฐฝ (ํฐ๋ฏธ๋ ์๋)
๋ช
๋ น์ด: /speckit.constitution
์์ ํ๋กฌํํธ: " ์ํคํ ์ฒ๋ MVC์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฅผ ๊ฑฐ๊ณ Kotlin์ค๋ฌ์ด ๋ฌธ๋ฒ์ผ๋ก ์์ฑํด ์ค, ๊ฐ๊ฐ์ ํจ์๋ ๋ชจ๋ํ๋ฅผ ๊ฑฐ์น ๊ฑฐ๊ณ ์๋น์ค๋ ์๋น์ค ํด๋์ ์ปจํธ๋กค๋ฌ๋ ์ปจํธ๋กค๋ฌ ํด๋์ ์ปจํธ๋กค๋ฌ ํด๋ ์์ ๋๋ฉ์ธ ๋ณ๋ก ๊ฐ๊ฐ ํด๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ํํ์ผ์๋ ๊ผญ ํ๋์ API๊ฐ ์ ์ธ์ด ๋์ด์ผ ํด ์ด๋ ์๋น์ค๋ ๋ง์ฐฌ๊ฐ์ง์ผ ์๋ช ์ RESTful์ ๋ง์ถฐ์ฃผ๊ณ ํด๋๋ ์นด๋ฉ์ผ์ด์ค ํ์ผ์ ์ค๋ค์ดํฌ ์ผ์ด์ค๋ฅผ ๋ฐ๋ผ์ค ๋ค๊ฐ ํ๋จํด์ ์ฌ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ํจ์๋ค์ Common์ ๋ฐ๋ก ๋ชจ์์ฃผ๊ณ DB์ ์ ๊ทผํ๋ ์ฝ๋(ORM)๋ ๋ ํฌ์งํ ๋ฆฌ์ ๋ชจ์์ค ๋ฑ.."
์ค์ ์ฌ์ฉ
- ์คํ ์์ฑ
"๋ฌด์(What)์ ๋ง๋ค์ง ์ ์ํฉ๋๋ค."
์ฌ๊ธฐ์๋ ๊ธฐํ์/์ฌ์ฉ์๊ฐ ๋์ด ์ฌ์ฉ์๊ฐ ๊ฒฉ์ ๊ฒฝํ๊ณผ ๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌ์ฌํด์ผ ํ๋ค.
๋ฐ๋ผ์ ์์ฐ์ด๋ก ์ด๋ค ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ ์ถ์์ง ์์ธํ ์์ฑํ๋ค.
๋ช
๋ น์ด: /speckit.specify
โ ๋์ ์ (๊ธฐ์ ์คํ์ ๋ฏธ๋ฆฌ ์ ํด๋ฒ๋ฆผ)
"React๋ Tailwind CSS ์จ์ ํฌ๋๋ฆฌ์คํธ ๋ง๋ค์ด์ค. ์ํ ๊ด๋ฆฌ๋ Redux๋ก ํ๊ณ DB๋ Firebase ๋ถ์ฌ์ค."
๐ ๋ฌธ์ ์ : plan ๋จ๊ณ์์ ํด์ผ ํ ๊ธฐ์ ์ ๊ฒฐ์ ์ ๋ฏธ๋ฆฌ ํด๋ฒ๋ฆฌ๋ฉด, AI๊ฐ ๋ ๋์ ์ํคํ ์ฒ๋ฅผ ์ ์ํ ๊ธฐํ๋ฅผ ์๊ณ ์คํ ๋ฌธ์๊ฐ ๊ธฐ์ ์ ์ข ์๋ฉ๋๋ค.
โญ ์ข์ ์ : ํ ํ๋ก์ ํธ์ฉ ์นธ๋ฐ ๋ณด๋ (์ค๊ธ์ฉ)
๋ณต์กํ ๋ก์ง๊ณผ ์ฌ์ฉ์ ์ธํฐ๋์
์ ๋ฌ์ฌํฉ๋๋ค.
/speckit.specify "์๊ท๋ชจ ํ์ ์ํ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ์ธ 'Taskify'๋ฅผ ๋ง๋ค ๊ฑฐ์ผ.
์ฃผ์ ๊ธฐ๋ฅ:
๋ณด๋ ๊ตฌ์ฑ: ๊ธฐ๋ณธ์ ์ผ๋ก 'ํ ์ผ', '์งํ ์ค', '์๋ฃ' 3๊ฐ์ ์นผ๋ผ์ ๊ฐ์ง๋ค.
๋๋๊ทธ ์ค ๋๋กญ: ์นด๋๋ฅผ ๋ง์ฐ์ค๋ก ์ก์์ ๋ค๋ฅธ ์นผ๋ผ์ผ๋ก ์ฎ๊ธฐ๋ฉด ์ํ๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํ๋ค.
์นด๋ ์์ธ: ์นด๋๋ฅผ ํด๋ฆญํ๋ฉด ์์ธ ๋ชจ๋ฌ์ด ๋จ๊ณ , ์ ๋ชฉ/์ค๋ช /๋ด๋น์๋ฅผ ์ง์ ํ ์ ์๋ค.
์ฌ์ฉ์: ๋ณ๋ ๋ก๊ทธ์ธ ์์ด, ์ฑ ์คํ ์ '๊ธฐํ์', '๊ฐ๋ฐ์', '๋์์ด๋' ์ค ํ๋๋ฅผ ์ ํํด์ ์ ์ฅํ๋ค.
์ ์ฝ ์ฌํญ: ์๋ฃ๋ ์นด๋๋ ์์ ํ ์ ์๋ค."
๊ทธ๋ผ ์ด๋ฐ ์์ผ๋ก

spec.md ๋ฌธ์๊ฐ ์๊ธฐ๋๋ฐ ์ฌ๊ธฐ์๋

์ด๋ฐ ์์ผ๋ก ์ด๋ค ๊ธฐ๋ฅ์ ํ ์ง ๋ฌธ์ํ๊ฐ ๋๋ค.
- ๋ช ํํ (Clarification) - ์ ํ์ด์ง๋ง ๊ฐ๋ ฅ ์ถ์ฒ
AI๊ฐ ์คํ์ ๊ตฌ๋ฉ์ ์ฐพ์๋ด ์ง๋ฌธ์ ๋์ง๋๋ค.
๋ช
๋ น์ด: /speckit.clarify
์ด๊ฑธ ํ๋ฉด AI ๊ฐ ์ง๋ฌธ์ ๋์ง๋๋ค. ๋ชจํธํ ์๊ตฌ์ฌํญ์ ์ ๊ฑฐํ์ฌ ๊ตฌํ ๋จ๊ณ์ ์ฝ์ง์ ๋ฐฉ์งํฉ๋๋ค.
์: "์ญ์ ๊ธฐ๋ฅ์ ๋ง๋์ ๋ค๊ณ ํ๋๋ฐ, ์ค์๋ก ์ญ์ ํ์ ๋ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ด ํ์ํ๊ฐ์, ์๋๋ฉด ์๊ตฌ ์ญ์ ์ธ๊ฐ์?", "์ฌ์ฉ์ ์ด๋ฆ์ ํน์๋ฌธ์ ์ ๋ ฅ์ ํ์ฉํ ๊น์?"
์ฌ์ฉ์๋ ์์ฐ์ด๋ก ๋ต๋ณ์ ํจ. -> ์ด๋ฅผ ํ ๋๋ก spec.md์์
- ๊ตฌํ ๊ณํ ์๋ฆฝ
AI์ ๋์ (The Action):
AI๊ฐ '์๋ฃจ์ ์ํคํ ํธ(Architect)'๊ฐ ๋ฉ๋๋ค.
์์ฑ๋ ์คํ(What)๊ณผ ์ฌ์ฉ์๊ฐ ์ง์ ํ ๊ธฐ์ ์คํ(How)์ ๊ฒฐํฉํ์ฌ ์ ์ฒด ์์คํ ์ค๊ณ๋๋ฅผ ๊ทธ๋ฆฝ๋๋ค.
ํ๋ก์ ํธ์ 'ํ๋ฒ(Constitution)'์ ์๋ฐํ์ง ์๋์ง ๊ฒ์ฌํฉ๋๋ค. (์: "ํ๋ฒ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ํ๊ฐ ์๋๋ฐ, ์ฌ๊ธฐ์ Lodash๋ฅผ ์ฐ๋ ๊ฑด ๋ถํ์ํด ๋ณด์ ๋๋ค"๋ผ๊ณ ํ๋จ)
๋ช
๋ น์ด: /speckit.plan (๋ค์ ๊ธฐ์ ์คํ ํ๋กฌํํธ ์ถ๊ฐ)
ํ๋กฌํํธ:
/speckit.plan "์ด ์ฑ์ ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ํด์ผ ํด.
- Frontend: React์ Vite๋ฅผ ์ฌ์ฉํ๊ณ , ์คํ์ผ๋ง์ Tailwind CSS๋ก ํด์ค. ์ํ ๊ด๋ฆฌ๋ Context API๋ฉด ์ถฉ๋ถํด.
- Backend: Node.js์ Express๋ฅผ ์ฌ์ฉํด ์ค.
- Database: ๋ก์ปฌ ๊ฐ๋ฐ์ฉ์ผ๋ก SQLite๋ฅผ ์ฌ์ฉํ๊ณ , ORM์ Prisma๋ฅผ ์จ์ค."
๊ฒฐ๊ณผ๋ฌผ
data-model.md: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง(ERD), ํ ์ด๋ธ ๊ตฌ์กฐ, ํ๋ ํ์ ์ ์.
contracts/ ํด๋: ํ๋ก ํธ์๋์ ๋ฐฑ์๋๊ฐ ์ํตํ API ๋ช ์ธ์(JSON/Markdown). ์ด๋ค URL๋ก ์์ฒญํ๋ฉด ์ด๋ค JSON์ ์๋ตํ๋์ง ๋ฏธ๋ฆฌ ์ ์๋ฉ๋๋ค.
research.md: ์ ์ด ๊ธฐ์ ์ ์ ํํ๋์ง์ ๋ํ ๊ธฐ์ ์ ๊ทผ๊ฑฐ์ ๋ถ์ ๋ด์ฉ.
์๋๋ data-model.md ์์)

- ์์ ๋ถํด
๋ช
๋ น์ด: /speckit.tasks
๐ค AI์ ๋์ (The Action):
AI๊ฐ 'ํ๋ก์ ํธ ๋งค๋์ (PM)'๊ฐ ๋ฉ๋๋ค.
๊ฑฐ๋ํ ๊ณํ(plan.md)์ ์ค์ ๋ก ์ฝ๋ฉ ๊ฐ๋ฅํ ์์ฃผ ์์ ๋จ์(Unit)๋ก ์๊ฒ ์ชผ๊ฐญ๋๋ค.
์์กด์ฑ(Dependency) ๊ด๋ฆฌ: "DB ํ ์ด๋ธ์ ๋จผ์ ๋ง๋ค์ด์ผ API๋ฅผ ์งค ์ ์์ง"์ ๊ฐ์ด ์์ ์์๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
TDD ์ ์ฉ: ๊ตฌํ ์ฝ๋๋ณด๋ค ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋๋ก ์์ ์ ๋ฐฐ์นํฉ๋๋ค.
๐ ๊ฒฐ๊ณผ๋ฌผ (The Output):
tasks.md: ์คํ ๊ฐ๋ฅํ ์ฒดํฌ๋ฆฌ์คํธ ํ์ผ.
์์ ๋ด์ฉ ์์:
[ ] 1.1: ์ฌ์ฉ์(User) ๋ฐ์ดํฐ ๋ชจ๋ธ(Schema) ํ์ผ ์์ฑ
[ ] 1.2: ์ฌ์ฉ์ ์์ฑ API์ ๋ํ ๋จ์ ํ ์คํธ ์ฝ๋ ์์ฑ
[ ] 1.3: ์ฌ์ฉ์ ์์ฑ API ์ค์ ๊ตฌํ
๋ณ๋ ฌ ํ์: [P] ๋งํฌ๊ฐ ๋ถ์ ์์ ์ ๋์์ ์งํํด๋ ๋๋ค๋ ๊ฒ์ ์๋ ค์ค๋๋ค.
- ๊ตฌํ(Implement)
๋ช
๋ น์ด: /speckit.implement
AI ๊ฐ Task์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๊ตฌํํฉ๋๋ค!
์ง์ ์จ๋ณด๊ณ ๋๋ SpecKit ๋ฆฌ์ผ ํ๊ธฐ
- ํ ํฐ ๋น์ฉ vs ๊ฐ๋ฐ ๋น์ฉ (ROI์ ๊ด์ )
์์งํ ๋งํ๋ฉด ํ ํฐ ์๋ชจ๋์ด ์๋นํฉ๋๋ค. ์คํ์ ์์ธํ๊ฒ ์์ฑํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณํ์ ์ง๋ ๊ณผ์ ์์ ์๊ฐ๋ณด๋ค ๋ง์ ํ ํฐ์ด ์ฆ๋ฐํ๋ ๊ฒ์ ๋ณด๋ฉฐ ํ ์นซํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก๋ "์คํ๋ ค ๋น์ฉ์ด ์ ์ฝ๋๋ ๋๋"์ ๋ฐ์์ต๋๋ค.
๊ธฐ์กด ๋ฐฉ์: ๋์ถฉ ์ง๊ณ -> ์๋ฌ ๋๊ณ -> ๋๋ฒ๊น ํ๊ณ -> ๋ค์ ์ง๋ ๋ฌดํ ๋ฃจํ (์๊ฐ๊ณผ ์ ์ ๋ ฅ ์๋ชจ)
SpecKit ๋ฐฉ์: ์ด๋ฐ์ ํ ํฐ์ ํ์์ ์คํ์ ์๋ฒฝํ ์ก์ -> ๊ฑฐ์ ์ ํํ ์ฝ๋๊ฐ ํ ๋ฒ์ ๋์ด
๊ฒฐ๊ตญ '๋๋ฒ๊น ์๊ฐ'๊ณผ '์คํธ๋ ์ค'๋ฅผ ํ ํฐ ๊ฐ์ผ๋ก ์๋ค๊ณ ์๊ฐํ๋ฉด, ์ถฉ๋ถํ ๋จ๋ ์ฅ์ฌ์ ๋๋ค.
- DB ์ค๊ณ๋ ์ฌ์ ํ 'ํด๋จผ ํฐ์น'๊ฐ ํ์ํ๋ค
AI๊ฐ data-model.md๋ฅผ ํตํด DB ๊ตฌ์กฐ๋ฅผ ์ ์ํด ์ฃผ์ง๋ง, ์ด ๋ถ๋ถ์ 100% ์ ๋ขฐํ๊ณ ๋ฐ๋ก ์ ์ฉํ๊ธฐ์ ๋ฌด๋ฆฌ๊ฐ ์์ต๋๋ค. ํนํ RDB(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ๊ตฌ์กฐ๋ ์๋น์ค์ ํน์ฑ์ด๋ ๊ฐ๋ฐ์์ ์๋์ ๋ฐ๋ผ ์ ๊ทํ/๋น์ ๊ทํ ์ ๋ต์ด ๋ฌ๋ผ์ ธ์ผ ํฉ๋๋ค. AI๊ฐ ์ ์ํ ๊ตฌ์กฐ๋ฅผ ๋ฒ ์ด์ค๋ก ํ๋, ๋ฐ๋์ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ ํ์ฌ ๊ฒ์ํ๊ณ ์ต์ ํํ๋ ๊ณผ์ ์ ๊ฑฐ์น ๋ค ๋ฐฑ์๋์ ์ฐ๊ฒฐํ์๊ธธ ๊ถ์ฅํฉ๋๋ค. - ๊ฐ๋ฐ์์ ๋ฏธ๋: '์ฝ๋(Coder)'์ ์ข
๋ง๊ณผ '์ํคํ
ํธ'์ ๋ถ์
SpecKit์ ์ฐ๋ฉด์ ํ์ ์ด ๋ค์์ต๋๋ค. ์ด์ ๋จ์ํ ๋ฌธ๋ฒ์ ์ธ์ ์ฝ๋๋ฅผ ํ์ดํํ๋ '์ฝ๋'๋ก์์ ๊ฒฝ์๋ ฅ์ ๋๋ฌ์ต๋๋ค. ๊ทธ๋์์ '๊ตฌํ ๋ฅ๋ ฅ' ํ๋๋ก๋ ๋จน๊ณ ์ด ์ ์์์ง๋ง, ์์ผ๋ก ํ์ํ ์ญ๋์ ์์ ํ ๋ฌ๋ผ์ง ๊ฒ์ ๋๋ค.
์ค๊ณ ์ญ๋: ๋ฌด์์ ๋ง๋ค์ง ๋ช ํํ๊ฒ ์ ์ํ๋ ๋ฅ๋ ฅ
๊ฒ์ฆ ์ญ๋: AI๊ฐ ์ง์ค ์ฝ๋๊ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ง๋์ง, ์ํคํ ์ฒ๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ๋จํ๋ ๋ฅ๋ ฅ
์ด์ ์ฐ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ง์ ์ง๋ ์ฌ๋์ด ์๋๋ผ, AI๋ผ๋ ์ ๋ฅํ ์๊ณต์ฌ๋ฅผ ๊ฐ๋ ํ๋ 'ํ์ฅ ์์ฅ'์ด๋ '์ํคํ ํธ'๊ฐ ๋์ด์ผ ํฉ๋๋ค.
- ๊ฟํ: ์ ์ฐํ ํด ์ค์์นญ (Claude Code ↔ Cursor)
์์ ํ๋ค๊ฐ Claude Code์ ํ ํฐ์ด๋ ํ ๋น๋์ ๋ค ์ผ๋ค๊ณ ๋นํฉํ์ง ๋ง์ธ์. ์์ ํ๋ ํด๋ ๊ทธ๋๋ก Cursor(์ปค์) ๊ฐ์ ๋ค๋ฅธ AI ์๋ํฐ๋ก ๋์ด๊ฐ์ ์์ ์ ์ด์ด๊ฐ ์ ์์ต๋๋ค.
์ฃผ์ํ ์ : ํด์ ์ฎ๊ธธ ๋ Constitution(ํ๋ฒ/์์น) ์ปจํ ์คํธ๊ฐ ๋๊ธธ ์ ์์ต๋๋ค.
ํด๊ฒฐ๋ฒ:. spec ํด๋ ๋ด์ ๋ฉ๋ชจ๋ฆฌ ํ์ผ๋ ์์ง๋ง, ๊ฐ์ฅ ํ์คํ ๊ฑด ๊ธฐ์กด. claude ์ค์ ํ์ผ์ ์๋ ๋ด์ฉ์ ์ฐธ๊ณ ํ๋ผ๊ณ ๋์ ธ์ฃผ๊ฑฐ๋, Constitution ๋ด์ฉ์ ๋ณต์ฌํด์ ํ๋กฌํํธ์ ํ ๋ฒ ์ ๋ ฅํด ์ฃผ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ๋ง ํด์ฃผ๋ฉด AI๊ฐ ์ฐฐ๋ก๊ฐ์ด ์์๋ฃ๊ณ ์์ ์ ์ด์ด๊ฐ๋๋ค.