GitHub - github/spec-kit: ๐ซ Toolkit to help you get started with Spec-Driven Development
ํต์ฌ ํฌ์ธํธ
- 1Spec-Driven Development (SDD)๋ ์คํ ๊ฐ๋ฅํ ์คํ์ด ์ง์ ๊ตฌํ์ ์์ฑํ๋๋ก ํ์ฌ ์ฝ๋๋ฅผ ์ฐ์ ํ๋ ๊ฐ๋ฐ ๋ฐฉ์์์ ๋ฒ์ด๋ ์คํ์ ์ฐ์ ํ๋ ๋ฐฉ๋ฒ๋ก ์ด๋ฉฐ, `spec-kit`์ ์ด๋ฅผ ๋๋ ํดํท์ ๋๋ค.
- 2์ด ํดํท์ `Specify CLI`์ AI ์์ด์ ํธ๋ฅผ ํ์ฉํ์ฌ `/speckit.constitution`, `/speckit.specify`, `/speckit.plan`, `/speckit.tasks`, `/speckit.implement`์ ๊ฐ์ ํต์ฌ ์ฌ๋์ ๋ช ๋ น์ด๋ฅผ ํตํด ์ฒด๊ณ์ ์ธ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ์๋ดํฉ๋๋ค.
- 3`spec-kit`์ ์ฌ์ ์์ฑ, ๊ณํ, ์์ ๋ถํด ๋ฐ ์ฝ๋ ์คํ์ ํฌํจํ๋ ๋ค๋จ๊ณ ์ ์ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋์ ํ์ง์ ์ํํธ์จ์ด๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๊ณ , ๊ธฐ์ ๋ ๋ฆฝ์ฑ ๋ฐ ๋ฐ๋ณต์ ์ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ชฉํ๋ก ํฉ๋๋ค.
Spec-Driven Development(SDD)๋ ๊ธฐ์กด ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ์์ ํจ๋ฌ๋ค์์ ์ ํํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก, ์ฝ๋ฉ์ด ์ค์ฌ์ด ์๋ ์คํ ๊ฐ๋ฅํ(executable) ๋ช ์ธ(specifications)๊ฐ ํต์ฌ์ด ๋์ด ์ง์ ๋์ํ๋ ๊ตฌํ์ฒด๋ฅผ ์์ฑํ๋๋ก ํ๋ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. ์ด๋ ๋จ์ํ ์ฝ๋ ์์ฑ์ ์ํ ๊ฐ์ด๋ ์ญํ ์ ๋์ด, ๋ช ์ธ ์์ฒด๊ฐ ์ค์ ๊ตฌํ์ ์์ฒ์ด ๋๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. Spec Kit์ ์ด๋ฌํ SDD๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ์คํ ์์ค ํดํท์ ๋๋ค.
ํต์ฌ ๋ฐฉ๋ฒ๋ก ์ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค:
- Specify CLI ์ค์น (Install Specify CLI):
uv tool install specify-cli ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Specify CLI๋ฅผ ์ค์นํฉ๋๋ค. ์ด CLI ๋๊ตฌ๋ ํ๋ก์ ํธ ์ด๊ธฐํ ๋ฐ ๋๊ตฌ ์ํ ํ์ธ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- : ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํฉ๋๋ค. ์ด ๊ณผ์ ์์
--aiํ๋๊ทธ๋ฅผ ํตํด ์ฌ์ฉํ AI ์์ด์ ํธ๋ฅผ ์ง์ ํ ์ ์์ผ๋ฉฐ,--hereํ๋๊ทธ๋ก ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์ด๊ธฐํํ ์ ์์ต๋๋ค. specify check: ํ์ํ ๋๊ตฌ๋ค์ด ์ค์น๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
- ํ๋ก์ ํธ ์์น ์๋ฆฝ (Establish project principles):
/speckit.constitution ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ์ ์ธ ์์น๊ณผ ๊ฐ๋ฐ ๊ฐ์ด๋๋ผ์ธ์ ์ ์ํฉ๋๋ค. ์ด๋ memory/constitution.md ํ์ผ์ ๊ธฐ๋ก๋๋ฉฐ, ์ฝ๋ ํ์ง, ํ
์คํ
ํ์ค, ์ฌ์ฉ์ ๊ฒฝํ ์ผ๊ด์ฑ, ์ฑ๋ฅ ์๊ตฌ์ฌํญ ๋ฑ ์ ๋ฐ์ ์ธ ๊ฐ๋ฐ ๊ณผ์ ์ ์์ฌ๊ฒฐ์ ์ ์๋ดํ๋ ์ญํ ์ ํฉ๋๋ค.- ๋ช ์ธ ์์ฑ (Create the spec):
/speckit.specify ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถํ๊ณ ์ ํ๋ ๊ฒ์ ๋ํ ์๊ตฌ์ฌํญ๊ณผ ์ฌ์ฉ์ ์คํ ๋ฆฌ๋ฅผ ๋ช
์ธํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ๊ธฐ์ ์คํ๋ณด๋ค๋ ๋ฌด์์(what) ๋ง๋ค๊ณ ์(why) ๋ง๋๋์ง์ ์ง์คํด์ผ ํฉ๋๋ค. AI ์์ด์ ํธ(์: Claude Code)๋ ์ด ์
๋ ฅ์ ๋ฐํ์ผ๋ก ์ฌ์ฉ์ ์คํ ๋ฆฌ๊ฐ ํฌํจ๋ ์์ธ ๋ช
์ธ(์: specs/001-create-taskify/spec.md)๋ฅผ ์์ฑํ๋ฉฐ, ์ด๋ฅผ ์ํด ์๋ก์ด Git ๋ธ๋์น(์: 001-create-taskify)๋ฅผ ์์ฑํ๊ธฐ๋ ํฉ๋๋ค.
- ๋ช
์ธ ๋ช
ํํ (Functional specification clarification): ๊ธฐ์ ๊ณํ์ ์ธ์ฐ๊ธฐ ์ ,
/speckit.clarify๋ช ๋ น์ด๋ฅผ ํตํด ๋ช ์ธ๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ๋ช ํํํ๋ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค. ์ด๋ ๋ชจํธํ๊ฑฐ๋ ๋ถ์์ ํ ๋ถ๋ถ์ ์ง๋ฌธ๊ณผ ๋ต๋ณ์ ํตํด ๋ณด์ํ๊ณ , ๋ช ์ธ์ ์ผ๊ด์ฑ๊ณผ ์์ ์ฑ์ ๊ฒ์ฆํ๋ ๋ฐ ๋์์ ์ค๋๋ค. ํ์์ ์์ ํ์์ ์ถ๊ฐ ์ง๋ฌธ์ด๋Review & Acceptance Checklist๋ฅผ ํ์ฉํ์ฌ ๋ช ์ธ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ๊ธฐ์ ๊ตฌํ ๊ณํ ์์ฑ (Create a technical implementation plan):
/speckit.plan ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์ ์คํ๊ณผ ์ํคํ
์ฒ ์ ํ์ ํฌํจํ ๊ธฐ์ ๊ตฌํ ๊ณํ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, .NET Aspire, Postgres, Blazor server, REST API ๋ฑ์ ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ ์์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ๋จ๊ณ์ ๊ฒฐ๊ณผ๋ฌผ์ plan.md, data-model.md, api-spec.json, research.md ๋ฑ ๋ค์ํ ๊ตฌํ ์์ธ ๋ฌธ์๋ค์ ํฌํจํฉ๋๋ค. AI ์์ด์ ํธ์ ์ํธ์์ฉํ๋ฉฐ ๊ณํ์ ์ ํ์ฑ์ ๊ฒํ ํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ์ถ๊ฐ์ ์ธ ์กฐ์ฌ๋ฅผ ์ง์ํ์ฌ ๊ธฐ์ ์ ํ์ ํ๋น์ฑ์ ํ๋ณดํฉ๋๋ค.- ํ์คํฌ ๋ถํด (Break down into tasks):
/speckit.tasks ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ ๊ณํ์ ๊ตฌ์ฒด์ ์ด๊ณ ์คํ ๊ฐ๋ฅํ ํ์คํฌ ๋ชฉ๋ก์ผ๋ก ๋ถํดํฉ๋๋ค. ์ด ๊ณผ์ ์์ tasks.md ํ์ผ์ด ์์ฑ๋๋ฉฐ, ๋ค์์ ํฌํจํฉ๋๋ค:
- ์ฌ์ฉ์ ์คํ ๋ฆฌ์ ๋ฐ๋ฅธ ํ์คํฌ ๋ถํด (๊ฐ ์ฌ์ฉ์ ์คํ ๋ฆฌ๋ ๋ณ๋์ ๊ตฌํ ๋จ๊ณ๊ฐ ๋จ)
- ์์กด์ฑ ๊ด๋ฆฌ (์ปดํฌ๋ํธ ๊ฐ ์์กด์ฑ ๊ณ ๋ คํ์ฌ ํ์คํฌ ์์ ์ง์ )
- ๋ณ๋ ฌ ์คํ ๊ฐ๋ฅํ ํ์คํฌ ํ์ (
[P]) - ํ์ผ ๊ฒฝ๋ก ๋ช ์ (๊ฐ ํ์คํฌ์ ๊ตฌํ ์์น)
- ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD) ๊ตฌ์กฐ (ํ ์คํธ ํ์คํฌ ํฌํจ ๋ฐ ๊ตฌํ ์ ์์ฑ ์์)
- ์ฒดํฌํฌ์ธํธ ์ ํจ์ฑ ๊ฒ์ฌ (๊ฐ ์ฌ์ฉ์ ์คํ ๋ฆฌ ๋จ๊ณ์์ ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ ๊ฒ์ฌ)
- ๊ตฌํ ์คํ (Execute implementation):
/speckit.implement ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ ๊ณํ์ ๋ฐ๋ผ ํ์คํฌ๋ฅผ ์คํํ๊ณ ๊ธฐ๋ฅ์ ๊ตฌ์ถํฉ๋๋ค. ์ด ๋ช
๋ น์ constitution, spec, plan, tasks์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ , tasks.md์ ํ์คํฌ ๋ถํด๋ฅผ ํ์ฑํ์ฌ ์์กด์ฑ๊ณผ ๋ณ๋ ฌ ์คํ ๋ง์ปค๋ฅผ ์ค์ํ๋ฉฐ ํ์คํฌ๋ฅผ ์์๋๋ก ์คํํฉ๋๋ค. AI ์์ด์ ํธ๋ ๋ก์ปฌ CLI ๋ช
๋ น(์: dotnet, npm)์ ์คํํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ฏ๋ก, ํด๋น ๋๊ตฌ๋ค์ด ์์คํ
์ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. ๊ตฌํ ์๋ฃ ํ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ
์คํธํ๊ณ , ๋ฐํ์ ์ค๋ฅ ๋ฐ์ ์ AI ์์ด์ ํธ์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ์ฌ ํด๊ฒฐํ๋๋ก ํ ์ ์์ต๋๋ค.Spec-Driven Development๋ ์ด๋ฌํ ๋ค๋จ๊ณ์ ์ ์ ๊ณผ์ ์ ํตํด ๋จ์ผ ํ๋กฌํํธ์์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋, AI ๋ชจ๋ธ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ช ์ธ๋ฅผ ํด์ํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ฒด๊ณ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ ๋ํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ๋ก ์ ๊ธฐ์ ๋ ๋ฆฝ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ, ์ํฐํ๋ผ์ด์ฆ ์ ์ฝ ์กฐ๊ฑด ํตํฉ, ์ฌ์ฉ์ ์ค์ฌ ๊ฐ๋ฐ, ๊ทธ๋ฆฌ๊ณ ์ฐฝ์์ ์ด๊ณ ๋ฐ๋ณต์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ง์์ ๋ชฉํ๋ก ํฉ๋๋ค.