Spec Kit: ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์„ ํ™œ์šฉํ•œ ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ

Spec Kit: ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์„ ํ™œ์šฉํ•œ ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ

Tech

Dec 29, 2025

๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•œ๊ณ„ ๋ณด์™„: AI ์ปจํ…์ŠคํŠธ ํŒŒ์ผ(claude.md, agents.md)์˜ ์—ญํ• 

๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•œ๊ณ„ ๋ณด์™„: AI ์ปจํ…์ŠคํŠธ ํŒŒ์ผ(claude.md, agents.md)์˜ ์—ญํ• 

2025๋…„ 2์›”, AI ์—ฐ๊ตฌ์ž Andrej Karpathy๋Š” ์ž์—ฐ์–ด ์„ค๋ช…๋งŒ์œผ๋กœ LLM์ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ(Vibe coding)์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์€ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์—ˆ์œผ๋‚˜, AI๊ฐ€ ํ”„๋กฌํ”„ํŠธ์˜ ๋งฅ๋ฝ์„ ์™„๋ฒฝํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด ๋ฒ„๊ทธ, ๋ณด์•ˆ ์ทจ์•ฝ์ , ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค[1].

์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด claude.md, agents.md ๊ฐ™์€ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

  • claude.md๋Š” Anthropic์ด 2025๋…„ 5์›” ๊ณต๊ฐœํ•œ Claude Code์˜ ํ”„๋กœ์ ํŠธ ๊ฐ€์ด๋“œ ํŒŒ์ผ๋กœ, ๋Œ€ํ™”๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๋ถ„์„ํ•ด ์Šค์Šค๋กœ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ์ดˆ๊ธฐ ์„ค์ •์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ฃผ๋ฉฐ ์™ธ๋ถ€ ๋„๊ตฌ ์—ฐ๊ณ„, ์‚ฌ์šฉ์ž ์ง€์ • ๋ช…๋ น ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค[2].

  • agents.md๋Š” 2025๋…„ 8์›”, OpenAI๋ฅผ ๋น„๋กฏํ•œ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์‚ฌ๋“ค์ด ํ˜‘๋ ฅํ•˜์—ฌ ๋งŒ๋“  ์—์ด์ „ํŠธ ์ „์šฉ ํ‘œ์ค€ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต ๊ทœ์น™์„ ์ง€ํ–ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ 6๋งŒ ๊ฐœ ์ด์ƒ์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ฑ„ํƒ๋˜์—ˆ์œผ๋ฉฐ, 15๊ฐœ ์ด์ƒ์˜ ์ฃผ์š” AI ์—์ด์ „ํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค[3].

2025๋…„ 2์›”, AI ์—ฐ๊ตฌ์ž Andrej Karpathy๋Š” ์ž์—ฐ์–ด ์„ค๋ช…๋งŒ์œผ๋กœ LLM์ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ(Vibe coding)์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์€ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์—ˆ์œผ๋‚˜, AI๊ฐ€ ํ”„๋กฌํ”„ํŠธ์˜ ๋งฅ๋ฝ์„ ์™„๋ฒฝํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด ๋ฒ„๊ทธ, ๋ณด์•ˆ ์ทจ์•ฝ์ , ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค[1].

์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด claude.md, agents.md ๊ฐ™์€ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

  • claude.md๋Š” Anthropic์ด 2025๋…„ 5์›” ๊ณต๊ฐœํ•œ Claude Code์˜ ํ”„๋กœ์ ํŠธ ๊ฐ€์ด๋“œ ํŒŒ์ผ๋กœ, ๋Œ€ํ™”๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๋ถ„์„ํ•ด ์Šค์Šค๋กœ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ์ดˆ๊ธฐ ์„ค์ •์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ฃผ๋ฉฐ ์™ธ๋ถ€ ๋„๊ตฌ ์—ฐ๊ณ„, ์‚ฌ์šฉ์ž ์ง€์ • ๋ช…๋ น ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค[2].

  • agents.md๋Š” 2025๋…„ 8์›”, OpenAI๋ฅผ ๋น„๋กฏํ•œ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์‚ฌ๋“ค์ด ํ˜‘๋ ฅํ•˜์—ฌ ๋งŒ๋“  ์—์ด์ „ํŠธ ์ „์šฉ ํ‘œ์ค€ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต ๊ทœ์น™์„ ์ง€ํ–ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ 6๋งŒ ๊ฐœ ์ด์ƒ์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ฑ„ํƒ๋˜์—ˆ์œผ๋ฉฐ, 15๊ฐœ ์ด์ƒ์˜ ์ฃผ์š” AI ์—์ด์ „ํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค[3].

์ปจํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๊ตฌ์กฐ์  ์ œ์•ฝ: ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ(SDD)์ด ํ•„์š”ํ•œ ์ด์œ 

์ปจํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๊ตฌ์กฐ์  ์ œ์•ฝ: ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ(SDD)์ด ํ•„์š”ํ•œ ์ด์œ 

์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์ธ ๋ช…์„ธ ์ œ๊ณต์—๋Š” ์œ ์šฉํ–ˆ์ง€๋งŒ, ์ž‘์—…์„ ๊ตฌ์กฐํ™”ํ•˜๊ธฐ์—๋Š” ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ํ™”๋œ ์ž‘์„ฑ ๋ฐฉ์‹, ๋ช…ํ™•ํ•œ ์ž‘์—… ์ˆœ์„œ์™€ ํŒ๋‹จ ๊ธฐ์ค€์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ ์—ญ์‹œ โ€œํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜๋‚˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์„ค๋ช…ํ•˜๋ผโ€๋Š” ์ˆ˜์ค€์˜ ์ถ”์ƒ์ ์ธ ์•ˆ๋‚ด์— ๊ทธ์ณ, ์‹ค์ œ ์‹คํ–‰ ๋กœ์ง์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ†ตํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ค๊ณ„ํ•ด์•ผ ํ–ˆ๊ณ , ๊ทธ๋กœ ์ธํ•ด ๊ฒฐ๊ณผ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค[4].

์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋Š” ๋‹จ์ˆœํ•œ ํ”„๋กœ์ ํŠธ ์•ˆ๋‚ด๋ฅผ ๋„˜์–ด, ์ž‘์—… ๊ณผ์ •์„ ๊ตฌ์กฐํ™”ํ•˜๊ณ  ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ ‘๊ทผ์˜ ํ•„์š”์„ฑ์„ ๋“œ๋Ÿฌ๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด ์ง€์ ์—์„œ ๋‹ค์‹œ ์ฃผ๋ชฉ๋ฐ›์€ ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ(Spec-Driven Development, SDD)์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์ธ ๋ช…์„ธ ์ œ๊ณต์—๋Š” ์œ ์šฉํ–ˆ์ง€๋งŒ, ์ž‘์—…์„ ๊ตฌ์กฐํ™”ํ•˜๊ธฐ์—๋Š” ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ํ™”๋œ ์ž‘์„ฑ ๋ฐฉ์‹, ๋ช…ํ™•ํ•œ ์ž‘์—… ์ˆœ์„œ์™€ ํŒ๋‹จ ๊ธฐ์ค€์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ ์—ญ์‹œ โ€œํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜๋‚˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์„ค๋ช…ํ•˜๋ผโ€๋Š” ์ˆ˜์ค€์˜ ์ถ”์ƒ์ ์ธ ์•ˆ๋‚ด์— ๊ทธ์ณ, ์‹ค์ œ ์‹คํ–‰ ๋กœ์ง์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ†ตํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ค๊ณ„ํ•ด์•ผ ํ–ˆ๊ณ , ๊ทธ๋กœ ์ธํ•ด ๊ฒฐ๊ณผ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค[4].

์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋Š” ๋‹จ์ˆœํ•œ ํ”„๋กœ์ ํŠธ ์•ˆ๋‚ด๋ฅผ ๋„˜์–ด, ์ž‘์—… ๊ณผ์ •์„ ๊ตฌ์กฐํ™”ํ•˜๊ณ  ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ ‘๊ทผ์˜ ํ•„์š”์„ฑ์„ ๋“œ๋Ÿฌ๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด ์ง€์ ์—์„œ ๋‹ค์‹œ ์ฃผ๋ชฉ๋ฐ›์€ ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ(Spec-Driven Development, SDD)์ž…๋‹ˆ๋‹ค.

SDD ๋„๊ตฌ: GitHub โ€˜Spec Kitโ€™์˜ ๋“ฑ์žฅ

SDD ๋„๊ตฌ: GitHub โ€˜Spec Kitโ€™์˜ ๋“ฑ์žฅ

์ง€๋‚œ 12์›” 3์ผ ์—ด๋ฆฐ GitHub Universe โ€™25 Recap Seoul ํ–‰์‚ฌ์—์„œ Microsoft์˜ ๊ฐœ๋ฐœ์ž Justin Yoo๋Š” SDD ๋„๊ตฌ Spec Kit์„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค[5]. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ธฐ์กด ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ SDD์˜ ๊ฐœ๋…์„ ์†Œ๊ฐœํ•˜๊ณ , ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ๋“ค์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ง์ ‘ ๋”ฐ๋ผ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” Spec Kit ์˜ˆ์ œ๊นŒ์ง€ ํ•จ๊ป˜ ์ค€๋น„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ 12์›” 3์ผ ์—ด๋ฆฐ GitHub Universe โ€™25 Recap Seoul ํ–‰์‚ฌ์—์„œ Microsoft์˜ ๊ฐœ๋ฐœ์ž Justin Yoo๋Š” SDD ๋„๊ตฌ Spec Kit์„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค[5]. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ธฐ์กด ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ SDD์˜ ๊ฐœ๋…์„ ์†Œ๊ฐœํ•˜๊ณ , ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ๋“ค์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ง์ ‘ ๋”ฐ๋ผ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” Spec Kit ์˜ˆ์ œ๊นŒ์ง€ ํ•จ๊ป˜ ์ค€๋น„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

1. SDD(Spec-Driven Development)๋ž€?

1. SDD(Spec-Driven Development)๋ž€?

1975๋…„ ์†Œํ”„ํŠธ์›จ์–ด ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ(Software Requirements Specification, SRS)๋ฅผ ์‹œ์ž‘์œผ๋กœ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ์˜ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์ดํ•ด๊ด€๊ณ„์ž ๊ฐ„์˜ ํ•ฉ์˜๋ฅผ ๋ช…์„ธ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ตฌํ˜„๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด ๋ถ€์กฑํ•ด, ์‹ค์ œ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ๋Š” ์ ์ฐจ ํ˜•์‹์ ์ธ ๋ฌธ์„œ๋กœ ๋‚จ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค[6].

์ตœ๊ทผ ๋‹ค์–‘ํ•œ AI ์—์ด์ „ํŠธ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ, ๋ช…์„ธ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ž…๋ ฅ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด ๋งˆ๋ จ๋˜์—ˆ๊ณ , ์ด์— ๋”ฐ๋ผ SRS๋Š” SDD๋ผ๋Š” ํ˜•ํƒœ๋กœ ์žฌ์ •์˜๋˜๋ฉฐ, ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๋Š” ๋Œ€์•ˆ์œผ๋กœ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

SDD์˜ ํ•ต์‹ฌ์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ์— ์•ž์„œ โ€œ๋ช…์„ธ(spec)โ€๋ฅผ ๋จผ์ € ์™„์„ฑํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ, ์„ค๊ณ„, ์—๋Ÿฌ ์กฐ๊ฑด, ๋ณด์•ˆ ๊ธฐ์ค€์„ ์‚ฌ์ „์— ๋ช…ํ™•ํžˆ ์ •์˜ํ•จ์œผ๋กœ์จ ์˜๋„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ช…์„ธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ์˜๋„์™€ ๋™์ž‘์„ ๊ตฌ์กฐํ™”ํ•œ ํŒŒ์ผ์ด์ž, AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 1. SDD ์›Œํฌํ”Œ๋กœ์šฐ (์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜: Marmelab[7]

ํ˜„์žฌ SDD๋Š” ์•„์ง ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฝ๋œ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ฉฐ, ๋„๊ตฌ์™€ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ๊ณ„์ ์ธ IT ์ปจ์„คํŒ… ๊ธฐ์—… ์†ŒํŠธ์›์Šค(Thoughtworks)์˜ AI ์„œ๋น„์Šค ์ „๋ฌธ๊ฐ€ Birgitta Bรถckeler๋Š” ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ค€์„ ๋ฐ”ํƒ•์œผ๋กœ SDD๋ฅผ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐœ๋ฐœ ์™„๋ฃŒ ์ดํ›„์—๋„ ์ดˆ๊ธฐ ๋ช…์„ธ ํŒŒ์ผ์„ ์œ ์ง€ํ•˜๋Š”๊ฐ€

  2. ์ธ๊ฐ„์ด ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š”๊ฐ€, ํ˜น์€ ๋ช…์„ธ(spec)๋งŒ ๊ด€๋ฆฌํ•˜๋Š”๊ฐ€

์ด๋ฏธ์ง€ 2. SDD ๋ถ„๋ฅ˜ (์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜: Thoughtworks[8]

์ฒซ๋ฒˆ์งธ, ๋ช…์„ธ ์šฐ์„ (Spec-first) ๋ฐฉ์‹์—์„œ ๋ช…์„ธ๋Š” ์ดˆ๊ธฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋•๊ธฐ ์œ„ํ•œ ์ผํšŒ์„ฑ ํŒŒ์ผ์ด๋ฉฐ, ์ฝ”๋“œ ์ž‘์„ฑ ์ดํ›„์—๋Š” ์‚ญ์ œ๋˜๊ณ  ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๋•Œ๋Š” ๋ช…์„ธ ํŒŒ์ผ์„ ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‘๋ฒˆ์งธ, ๋ช…์„ธ ๊ณ ์ •(Spec-anchored) ๋ฐฉ์‹์—์„œ ๋ช…์„ธ๋Š” ๊ฐœ๋ฐœ ์ดํ›„์—๋„ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์œผ๋กœ ๋ช…์„ธ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ช…์„ธ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ๋‚ด์šฉ์„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ๋ฒˆ์งธ, ๋ช…์„ธ ์†Œ์Šค(Spec-as-source) ๋ฐฉ์‹์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋ช…์„ธ๋งŒ ์ˆ˜์ •ํ•˜๋ฉฐ ์ฝ”๋“œ๋Š” ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ช…์„ธ ๊ณ ์ • ๋ฐฉ์‹๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ˆ˜์ •๋œ ๋ช…์„ธ๋Š” ๊ด€๋ฆฌ๋˜๋ฉฐ ๊ณ„์† ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์—์„œ๋Š” ๋ช…์„ธ ์ž์ฒด๊ฐ€ ์ฃผ์š” ์†Œ์Šค ํŒŒ์ผ๋กœ์จ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ SDD๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด์•˜์œผ๋‹ˆ, SDD ๋„๊ตฌ์ธ Spec Kit์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1975๋…„ ์†Œํ”„ํŠธ์›จ์–ด ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ(Software Requirements Specification, SRS)๋ฅผ ์‹œ์ž‘์œผ๋กœ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ์˜ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์ดํ•ด๊ด€๊ณ„์ž ๊ฐ„์˜ ํ•ฉ์˜๋ฅผ ๋ช…์„ธ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ตฌํ˜„๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด ๋ถ€์กฑํ•ด, ์‹ค์ œ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ๋Š” ์ ์ฐจ ํ˜•์‹์ ์ธ ๋ฌธ์„œ๋กœ ๋‚จ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค[6].

์ตœ๊ทผ ๋‹ค์–‘ํ•œ AI ์—์ด์ „ํŠธ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ, ๋ช…์„ธ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ž…๋ ฅ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด ๋งˆ๋ จ๋˜์—ˆ๊ณ , ์ด์— ๋”ฐ๋ผ SRS๋Š” SDD๋ผ๋Š” ํ˜•ํƒœ๋กœ ์žฌ์ •์˜๋˜๋ฉฐ, ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๋Š” ๋Œ€์•ˆ์œผ๋กœ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

SDD์˜ ํ•ต์‹ฌ์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ์— ์•ž์„œ โ€œ๋ช…์„ธ(spec)โ€๋ฅผ ๋จผ์ € ์™„์„ฑํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ, ์„ค๊ณ„, ์—๋Ÿฌ ์กฐ๊ฑด, ๋ณด์•ˆ ๊ธฐ์ค€์„ ์‚ฌ์ „์— ๋ช…ํ™•ํžˆ ์ •์˜ํ•จ์œผ๋กœ์จ ์˜๋„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ช…์„ธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ์˜๋„์™€ ๋™์ž‘์„ ๊ตฌ์กฐํ™”ํ•œ ํŒŒ์ผ์ด์ž, AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 1. SDD ์›Œํฌํ”Œ๋กœ์šฐ (์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜: Marmelab[7]

ํ˜„์žฌ SDD๋Š” ์•„์ง ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฝ๋œ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ฉฐ, ๋„๊ตฌ์™€ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ๊ณ„์ ์ธ IT ์ปจ์„คํŒ… ๊ธฐ์—… ์†ŒํŠธ์›์Šค(Thoughtworks)์˜ AI ์„œ๋น„์Šค ์ „๋ฌธ๊ฐ€ Birgitta Bรถckeler๋Š” ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ค€์„ ๋ฐ”ํƒ•์œผ๋กœ SDD๋ฅผ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐœ๋ฐœ ์™„๋ฃŒ ์ดํ›„์—๋„ ์ดˆ๊ธฐ ๋ช…์„ธ ํŒŒ์ผ์„ ์œ ์ง€ํ•˜๋Š”๊ฐ€

  2. ์ธ๊ฐ„์ด ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š”๊ฐ€, ํ˜น์€ ๋ช…์„ธ(spec)๋งŒ ๊ด€๋ฆฌํ•˜๋Š”๊ฐ€

์ด๋ฏธ์ง€ 2. SDD ๋ถ„๋ฅ˜ (์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜: Thoughtworks[8]

์ฒซ๋ฒˆ์งธ, ๋ช…์„ธ ์šฐ์„ (Spec-first) ๋ฐฉ์‹์—์„œ ๋ช…์„ธ๋Š” ์ดˆ๊ธฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋•๊ธฐ ์œ„ํ•œ ์ผํšŒ์„ฑ ํŒŒ์ผ์ด๋ฉฐ, ์ฝ”๋“œ ์ž‘์„ฑ ์ดํ›„์—๋Š” ์‚ญ์ œ๋˜๊ณ  ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๋•Œ๋Š” ๋ช…์„ธ ํŒŒ์ผ์„ ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‘๋ฒˆ์งธ, ๋ช…์„ธ ๊ณ ์ •(Spec-anchored) ๋ฐฉ์‹์—์„œ ๋ช…์„ธ๋Š” ๊ฐœ๋ฐœ ์ดํ›„์—๋„ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์œผ๋กœ ๋ช…์„ธ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ช…์„ธ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ๋‚ด์šฉ์„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ๋ฒˆ์งธ, ๋ช…์„ธ ์†Œ์Šค(Spec-as-source) ๋ฐฉ์‹์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋ช…์„ธ๋งŒ ์ˆ˜์ •ํ•˜๋ฉฐ ์ฝ”๋“œ๋Š” ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ช…์„ธ ๊ณ ์ • ๋ฐฉ์‹๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ˆ˜์ •๋œ ๋ช…์„ธ๋Š” ๊ด€๋ฆฌ๋˜๋ฉฐ ๊ณ„์† ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์—์„œ๋Š” ๋ช…์„ธ ์ž์ฒด๊ฐ€ ์ฃผ์š” ์†Œ์Šค ํŒŒ์ผ๋กœ์จ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ SDD๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด์•˜์œผ๋‹ˆ, SDD ๋„๊ตฌ์ธ Spec Kit์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2. ์ŠคํŽ™ํ‚ท(Spec Kit)์ด๋ž€?

2. ์ŠคํŽ™ํ‚ท(Spec Kit)์ด๋ž€?

์ด๋ฏธ์ง€ 3. ๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ์˜ ๋, Spec Kit. ์ถœ์ฒ˜: Meta-Quantum[9]

Spec Kit[10]์€ 2025๋…„ 8์›” GitHub๊ฐ€ ๊ณต๊ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค CLI ๋„๊ตฌ๋กœ Claude, Copilot, Gemini ๋“ฑ ๋‹ค์–‘ํ•œ AI ์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ์— ๋งž๋Š” ์ž‘์—… ๊ณต๊ฐ„์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ž‘์—… ๊ณต๊ฐ„ ๊ตฌ์กฐ๊ฐ€ ์„ค์ •๋˜๋ฉด, ์‚ฌ์šฉ์ž๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด AI ์—์ด์ „ํŠธ์™€ ๋‹จ๊ณ„์ ์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์— ์ •๋ฆฌํ•œ ์„ธ ๊ฐ€์ง€ SDD ๋„๊ตฌ ์ค‘์—์„œ๋„ ์‚ฌ์šฉ์ž ์ •์˜์— ์œ ์—ฐํ•œ ํŽธ์— ์†ํ•ฉ๋‹ˆ๋‹ค.



Kiro[11]

Spec Kit[10]

Tessl[12]

๊ฐœ๋ฐœ ๋ฐ ์šด์˜

AWS

GitHub

Tessl

๋ฐฉ์‹

๋ช…์„ธ ์šฐ์„ (Spec-first) ๋ฐฉ์‹

๋ช…์„ธ ๊ณ ์ •ํ˜•(Spec-anchored) ๋ฐฉ์‹

๋ช…์„ธ ๊ณ ์ •ํ˜•(Spec-anchored) ์ ‘๊ทผ ๋ฐฉ์‹, ๋ช…์„ธ ์†Œ์Šค(Spec-as-source)๋กœ ํ™œ์šฉ ํƒ๊ตฌ ์ค‘

์›Œํฌํ”Œ๋กœ์šฐ

Requirementsโ†’ Design โ†’ Tasks โ†’ Implements

Constitution โ†’ Specify โ†’ Plan โ†’ Tasks โ†’ Implements

Plan โ†’ Specify โ†’ Implements โ†’ Test

์ง€์›

๋‹ค์ค‘ ๋ชจ๋“œ ์ž…๋ ฅ(codebase, file, docs ๋“ฑ)

์ปค๋งจ๋“œ ๊ธฐ๋ฐ˜ ๋ช…๋ น์–ด๋กœ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰

CLI๊ฐ€ MCP ์„œ๋ฒ„ ์—ญํ•  ์ˆ˜ํ–‰

Memory bank

- steering
- product.md, tech.md, structure.md

- memory

- constitution.md

- .tessl/framework
- agents.md, bootstrap.md, plan-files.md, tessl-system-prompt.md
- knowledge.md, agents.md

๋ฐฐํฌ

IDE

CLI

CLI

์šด์˜์ฒด์ œ

Window, macOS, Linux

Window, macOS, Linux

macOS, Linux (x64,arm64), WSL2

๊ธฐํƒ€

-

- ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € :

uv

- Git

- Node.js v22.17.0+

Specs ๋„ค์ด๋ฐ ๋ฐฉ์‹

category-label-enhancement

specs/[์ˆซ์ž]-[๊ธฐ๋Šฅ๋ช…]

[๊ธฐ๋Šฅ๋ช…].spec.md

Specs ๊ตฌ์„ฑ ํŒŒ์ผ

- requirements.md
- design.md
- tasks.md

- data-model.md
- plan.md
- tasks.md
- research.md
- spec.md
- contracts(api.md, component.md)

๋‹จ์ผ spec ํŒŒ์ผ

๋ช…์„ธ-์ฝ”๋“œ ๋งคํ•‘

1:n

1:n

1:1

์ฝ”๋“œ ์ˆ˜์ •

O

O

X

๋‹ค์ค‘ ํŒŒ์ผ ์ƒ์„ฑ

O

O

X (ํ–ฅํ›„ ๊ฐ€๋Šฅ์„ฑ ์–ธ๊ธ‰๋จ)

ํ‘œ 1. SDD ๋„๊ตฌ ๋น„๊ตํ‘œ Kiro vs Spec Kit vs Tessl

์ด๋ฏธ์ง€ 3. ๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ์˜ ๋, Spec Kit. ์ถœ์ฒ˜: Meta-Quantum[9]

Spec Kit[10]์€ 2025๋…„ 8์›” GitHub๊ฐ€ ๊ณต๊ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค CLI ๋„๊ตฌ๋กœ Claude, Copilot, Gemini ๋“ฑ ๋‹ค์–‘ํ•œ AI ์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ์— ๋งž๋Š” ์ž‘์—… ๊ณต๊ฐ„์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ž‘์—… ๊ณต๊ฐ„ ๊ตฌ์กฐ๊ฐ€ ์„ค์ •๋˜๋ฉด, ์‚ฌ์šฉ์ž๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด AI ์—์ด์ „ํŠธ์™€ ๋‹จ๊ณ„์ ์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์— ์ •๋ฆฌํ•œ ์„ธ ๊ฐ€์ง€ SDD ๋„๊ตฌ ์ค‘์—์„œ๋„ ์‚ฌ์šฉ์ž ์ •์˜์— ์œ ์—ฐํ•œ ํŽธ์— ์†ํ•ฉ๋‹ˆ๋‹ค.



Kiro[11]

Spec Kit[10]

Tessl[12]

๊ฐœ๋ฐœ ๋ฐ ์šด์˜

AWS

GitHub

Tessl

๋ฐฉ์‹

๋ช…์„ธ ์šฐ์„ (Spec-first) ๋ฐฉ์‹

๋ช…์„ธ ๊ณ ์ •ํ˜•(Spec-anchored) ๋ฐฉ์‹

๋ช…์„ธ ๊ณ ์ •ํ˜•(Spec-anchored) ์ ‘๊ทผ ๋ฐฉ์‹, ๋ช…์„ธ ์†Œ์Šค(Spec-as-source)๋กœ ํ™œ์šฉ ํƒ๊ตฌ ์ค‘

์›Œํฌํ”Œ๋กœ์šฐ

Requirementsโ†’ Design โ†’ Tasks โ†’ Implements

Constitution โ†’ Specify โ†’ Plan โ†’ Tasks โ†’ Implements

Plan โ†’ Specify โ†’ Implements โ†’ Test

์ง€์›

๋‹ค์ค‘ ๋ชจ๋“œ ์ž…๋ ฅ(codebase, file, docs ๋“ฑ)

์ปค๋งจ๋“œ ๊ธฐ๋ฐ˜ ๋ช…๋ น์–ด๋กœ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰

CLI๊ฐ€ MCP ์„œ๋ฒ„ ์—ญํ•  ์ˆ˜ํ–‰

Memory bank

- steering
- product.md, tech.md, structure.md

- memory

- constitution.md

- .tessl/framework
- agents.md, bootstrap.md, plan-files.md, tessl-system-prompt.md
- knowledge.md, agents.md

๋ฐฐํฌ

IDE

CLI

CLI

์šด์˜์ฒด์ œ

Window, macOS, Linux

Window, macOS, Linux

macOS, Linux (x64,arm64), WSL2

๊ธฐํƒ€

-

- ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € :

uv

- Git

- Node.js v22.17.0+

Specs ๋„ค์ด๋ฐ ๋ฐฉ์‹

category-label-enhancement

specs/[์ˆซ์ž]-[๊ธฐ๋Šฅ๋ช…]

[๊ธฐ๋Šฅ๋ช…].spec.md

Specs ๊ตฌ์„ฑ ํŒŒ์ผ

- requirements.md
- design.md
- tasks.md

- data-model.md
- plan.md
- tasks.md
- research.md
- spec.md
- contracts(api.md, component.md)

๋‹จ์ผ spec ํŒŒ์ผ

๋ช…์„ธ-์ฝ”๋“œ ๋งคํ•‘

1:n

1:n

1:1

์ฝ”๋“œ ์ˆ˜์ •

O

O

X

๋‹ค์ค‘ ํŒŒ์ผ ์ƒ์„ฑ

O

O

X (ํ–ฅํ›„ ๊ฐ€๋Šฅ์„ฑ ์–ธ๊ธ‰๋จ)

ํ‘œ 1. SDD ๋„๊ตฌ ๋น„๊ตํ‘œ Kiro vs Spec Kit vs Tessl

2.1 ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜

2.1 ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜

์•„๋ž˜ ์ด๋ฏธ์ง€ 4์—์„œ ๋ณด์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Spec Kit์€ 3๊ฐœ์˜ ์ฃผ์š” ํด๋”์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 4. Spec Kit ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜(์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜. Thoughtworks[8]

  1. ์ฒซ ๋ฒˆ์งธ, memory ํด๋”๋Š” Spec Kit ๋ช…๋ น์–ด๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ๋‚ด๋ถ€์— constitution.md ํŒŒ์ผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” speckit.constitution ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ธฐ์ˆ  ์Šคํƒ, ๋ณด์•ˆ ์›์น™, ์ฝ”๋“œ ์Šคํƒ€์ผ ๋“ฑ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์ ์šฉ๋˜๋Š” ๋ถˆ๋ณ€ ์›์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  Spec Kit ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ AI ์—์ด์ „ํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์ฐธ์กฐํ•˜์—ฌ ์ž‘์—… ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋‘ ๋ฒˆ์งธ, templates ํด๋”๋Š” plan.md, spec.md, tasks.md ํŒŒ์ผ๋“ค์˜ ๊ธฐ๋ณธ ์ž‘์„ฑ ํ˜•์‹์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํŒŒ์ผ์€ ํ•ด๋‹นํ•˜๋Š” template.md ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋Š” ์—์ด์ „ํŠธ๊ฐ€ ๋ช…์„ธ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹์„ ํ•˜๋‚˜๋กœ ๊ณ ์ •ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ๋ช…์„ธ ๊ตฌ์กฐ๊ฐ€ ๊ณ ์ •๋˜์ง€ ์•Š์œผ๋ฉด ๋™์ผํ•œ ์š”๊ตฌ์‚ฌํ•ญ๋„ ๋งค๋ฒˆ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ํ•ด์„ ๊ธฐ์ค€์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ค€(constitution.md, template.md)์„ ๋ฐ”ํƒ•์œผ๋กœ AI ์—์ด์ „ํŠธ๋Š” Spec Kit ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ž‘์—… ์‚ฐ์ถœ๋ฌผ์„ Specs ํด๋”์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  3. ์„ธ ๋ฒˆ์งธ, Specs ํด๋”์—๋Š” /speckit.specify ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด [๋ฒˆํ˜ธ]-[๊ธฐ๋Šฅ์ด๋ฆ„] ํ˜•์‹(์˜ˆ: 001-when-a-user)์˜ ํด๋”๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ฒˆํ˜ธ๋Š” 001๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ถ€์—ฌ๋˜๋ฉฐ ์ค‘๋ณต๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜์—์„œ ๋™์‹œ์— ์ž‘์—…ํ•˜๋”๋ผ๋„ ํŒŒ์ผ๋ช… ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๋Šฅ์„ ์‚ญ์ œํ•˜๋”๋ผ๋„ ๋ฒˆํ˜ธ๋Š” ์œ ์ง€๋˜์–ด, ํ”„๋กœ์ ํŠธ์˜ ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ์—๋„ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํด๋” ์•ˆ์—๋Š” ๊ธฐ๋Šฅ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋‹ด์€ spec.md๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ดํ›„ /speckit.plan ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ž๋™์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ plan.md๋ฅผ ํฌํ•จํ•˜์—ฌ data-model.md, research.md, contracts(api.md, component.md), quickstart.md ํŒŒ์ผ๋“ค์ด ํ•จ๊ป˜ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 5. /speckit.plan ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ(์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜. medium[13]

๋งˆ์ง€๋ง‰์œผ๋กœ, /speckit.tasks ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด plan ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑ๋œ ํŒŒ์ผ๋“ค์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ, ๊ตฌํ˜„ ์ž‘์—… ๋ชฉ๋ก์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•˜๊ณ  tasks.md์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ Spec Kit์„ ํ™œ์šฉํ•˜๋ฉด ๊ธฐ์กด์— ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œํ‚ค๋ฉฐ, ๊ธฐ๋Šฅ ๋ช…์„ธ๋ถ€ํ„ฐ ๊ตฌํ˜„ ๊ณ„ํš, APIยท๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค, ๋ฒ„์ „ ๊ด€๋ฆฌ๋œ ํŒŒ์ผ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ์ด๋ฏธ์ง€ 4์—์„œ ๋ณด์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Spec Kit์€ 3๊ฐœ์˜ ์ฃผ์š” ํด๋”์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 4. Spec Kit ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜(์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜. Thoughtworks[8]

  1. ์ฒซ ๋ฒˆ์งธ, memory ํด๋”๋Š” Spec Kit ๋ช…๋ น์–ด๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ๋‚ด๋ถ€์— constitution.md ํŒŒ์ผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” speckit.constitution ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ธฐ์ˆ  ์Šคํƒ, ๋ณด์•ˆ ์›์น™, ์ฝ”๋“œ ์Šคํƒ€์ผ ๋“ฑ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์ ์šฉ๋˜๋Š” ๋ถˆ๋ณ€ ์›์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  Spec Kit ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ AI ์—์ด์ „ํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์ฐธ์กฐํ•˜์—ฌ ์ž‘์—… ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋‘ ๋ฒˆ์งธ, templates ํด๋”๋Š” plan.md, spec.md, tasks.md ํŒŒ์ผ๋“ค์˜ ๊ธฐ๋ณธ ์ž‘์„ฑ ํ˜•์‹์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํŒŒ์ผ์€ ํ•ด๋‹นํ•˜๋Š” template.md ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋Š” ์—์ด์ „ํŠธ๊ฐ€ ๋ช…์„ธ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹์„ ํ•˜๋‚˜๋กœ ๊ณ ์ •ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ๋ช…์„ธ ๊ตฌ์กฐ๊ฐ€ ๊ณ ์ •๋˜์ง€ ์•Š์œผ๋ฉด ๋™์ผํ•œ ์š”๊ตฌ์‚ฌํ•ญ๋„ ๋งค๋ฒˆ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ํ•ด์„ ๊ธฐ์ค€์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ค€(constitution.md, template.md)์„ ๋ฐ”ํƒ•์œผ๋กœ AI ์—์ด์ „ํŠธ๋Š” Spec Kit ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ž‘์—… ์‚ฐ์ถœ๋ฌผ์„ Specs ํด๋”์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  3. ์„ธ ๋ฒˆ์งธ, Specs ํด๋”์—๋Š” /speckit.specify ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด [๋ฒˆํ˜ธ]-[๊ธฐ๋Šฅ์ด๋ฆ„] ํ˜•์‹(์˜ˆ: 001-when-a-user)์˜ ํด๋”๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ฒˆํ˜ธ๋Š” 001๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ถ€์—ฌ๋˜๋ฉฐ ์ค‘๋ณต๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜์—์„œ ๋™์‹œ์— ์ž‘์—…ํ•˜๋”๋ผ๋„ ํŒŒ์ผ๋ช… ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๋Šฅ์„ ์‚ญ์ œํ•˜๋”๋ผ๋„ ๋ฒˆํ˜ธ๋Š” ์œ ์ง€๋˜์–ด, ํ”„๋กœ์ ํŠธ์˜ ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ์—๋„ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํด๋” ์•ˆ์—๋Š” ๊ธฐ๋Šฅ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋‹ด์€ spec.md๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ดํ›„ /speckit.plan ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ž๋™์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ plan.md๋ฅผ ํฌํ•จํ•˜์—ฌ data-model.md, research.md, contracts(api.md, component.md), quickstart.md ํŒŒ์ผ๋“ค์ด ํ•จ๊ป˜ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 5. /speckit.plan ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ(์ œ๋…ผ ์žฌ๊ตฌ์„ฑ). ์ถœ์ฒ˜. medium[13]

๋งˆ์ง€๋ง‰์œผ๋กœ, /speckit.tasks ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด plan ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑ๋œ ํŒŒ์ผ๋“ค์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ, ๊ตฌํ˜„ ์ž‘์—… ๋ชฉ๋ก์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•˜๊ณ  tasks.md์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ Spec Kit์„ ํ™œ์šฉํ•˜๋ฉด ๊ธฐ์กด์— ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œํ‚ค๋ฉฐ, ๊ธฐ๋Šฅ ๋ช…์„ธ๋ถ€ํ„ฐ ๊ตฌํ˜„ ๊ณ„ํš, APIยท๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค, ๋ฒ„์ „ ๊ด€๋ฆฌ๋œ ํŒŒ์ผ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.2 Spec Kit์˜ 8๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ์šฐ: ์›์น™ ์ˆ˜๋ฆฝ๋ถ€ํ„ฐ ๊ตฌํ˜„๊นŒ์ง€

2.2 Spec Kit์˜ 8๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ์šฐ: ์›์น™ ์ˆ˜๋ฆฝ๋ถ€ํ„ฐ ๊ตฌํ˜„๊นŒ์ง€

์ด๋ฏธ์ง€ 6. Spec Kit ์›Œํฌํ”Œ๋กœ์šฐ. ์ถœ์ฒ˜. ์ œ๋…ผ

Spec Kit์€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„๋ถ€ํ„ฐ ๊ตฌํ˜„๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„์˜ ์—ญํ• ๊ณผ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


๋‹จ๊ณ„

๋ช…๋ น์–ด

๋ช…๋ น์–ด ์œ ํ˜•

์—ญํ•  (๋ฌด์—‡์„ ํ•˜๋Š” ๋‹จ๊ณ„์ธ๊ฐ€)

ํ•ต์‹ฌ ๋ชฉ์ 

๋ช…๋ น์–ด์— ํฌํ•จํ•ด์•ผ ํ•  ๊ฒƒ

๋ช…๋ น์–ด์— ํฌํ•จํ•˜๋ฉด ์•ˆ ๋˜๋Š” ๊ฒƒ

์›์น™ ์ˆ˜๋ฆฝ

constitution

ํ•ต์‹ฌ (Core)

ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์›์น™ ์ •์˜

์ผ๊ด€๋œ ๊ฐœ๋ฐœ ๊ธฐ์ค€ ํ™•๋ฆฝ

ํ’ˆ์งˆ ๊ธฐ์ค€, ์ •ํ™•์„ฑ, UX ์›์น™, ์ œ์•ฝ ์กฐ๊ฑด

๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ, ๊ธฐ์ˆ  ์„ ํƒ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ

specify

ํ•ต์‹ฌ (Core)

๋ฌด์—‡์„, ์™œ ๋งŒ๋“ค ๊ฒƒ์ธ์ง€ ์ •๋ฆฌ

๋ฌธ์ œ์™€ ๋ชฉํ‘œ ๋ช…ํ™•ํ™”

์‚ฌ์šฉ์ž ์งˆ๋ฌธ, ๊ธฐ๋Šฅ ๋ฒ”์œ„, ์„ฑ๊ณต ๊ธฐ์ค€

๊ธฐ์ˆ  ์Šคํƒ, ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํ™”

clarify

์„ ํƒ (Optional)

์• ๋งคํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์œผ๋กœ ์ •๋ฆฌ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํ™”

-

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ œ์‹œ

๊ตฌํ˜„ ๊ณ„ํš

plan

ํ•ต์‹ฌ (Core)

๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ ๊ตฌ์กฐ ๊ฒฐ์ •

๊ตฌํ˜„ ๋ฐฉํ–ฅ ์ˆ˜๋ฆฝ

๊ธฐ์ˆ  ์Šคํƒ, ์‹œ์Šคํ…œ ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ ํ๋ฆ„

์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ

๋ช…์„ธ ์ ๊ฒ€

checklist

์„ ํƒ (Optional)

์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์„ค๊ณ„ ๋‚ด์šฉ ์ ๊ฒ€

๋ˆ„๋ฝยท๋ชจํ˜ธํ•จ ํ™•์ธ

-

์ฝ”๋“œ, ์‹ค์ œ ๊ตฌํ˜„ ๋‚ด์šฉ

์ž‘์—… ๋ถ„ํ•ด

tasks

ํ•ต์‹ฌ (Core)

๊ตฌํ˜„ ์ž‘์—…์„ ์‹คํ–‰ ๋‹จ์œ„๋กœ ๋ถ„ํ•ด

๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ž‘์—… ์ •๋ฆฌ

-

์ถ”์ƒ์ ์ธ ์„ค๊ณ„ ๋…ผ์˜

์‚ฌ์ „ ๊ฒ€์ฆ

analyze

์„ ํƒ (Optional)

ํŒŒ์ผ ๊ฐ„ ๋‚ด์šฉ์ด ์ž˜ ๋งž๋Š”์ง€ ํ™•์ธ

๋ˆ„๋ฝยท๋ถˆ์ผ์น˜ ๋ฐฉ์ง€

-

์š”๊ตฌ์‚ฌํ•ญ ์ถ”๊ฐ€, ์ฝ”๋“œ ์ˆ˜์ •

๊ตฌํ˜„

implement

ํ•ต์‹ฌ (Core)

์•ž ๋‹จ๊ณ„์—์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋‹จ๊ณ„

๊ธฐ๋Šฅ ๊ตฌํ˜„

-

์š”๊ตฌ์‚ฌํ•ญยท๊ณ„ํš ๋ณ€๊ฒฝ

ํ‘œ 2. Spec Kit์˜ ์›Œํฌํ”Œ๋กœ์šฐ[10]

์ด๋ฏธ์ง€ 6. Spec Kit ์›Œํฌํ”Œ๋กœ์šฐ. ์ถœ์ฒ˜. ์ œ๋…ผ

Spec Kit์€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„๋ถ€ํ„ฐ ๊ตฌํ˜„๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„์˜ ์—ญํ• ๊ณผ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


๋‹จ๊ณ„

๋ช…๋ น์–ด

๋ช…๋ น์–ด ์œ ํ˜•

์—ญํ•  (๋ฌด์—‡์„ ํ•˜๋Š” ๋‹จ๊ณ„์ธ๊ฐ€)

ํ•ต์‹ฌ ๋ชฉ์ 

๋ช…๋ น์–ด์— ํฌํ•จํ•ด์•ผ ํ•  ๊ฒƒ

๋ช…๋ น์–ด์— ํฌํ•จํ•˜๋ฉด ์•ˆ ๋˜๋Š” ๊ฒƒ

์›์น™ ์ˆ˜๋ฆฝ

constitution

ํ•ต์‹ฌ (Core)

ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์›์น™ ์ •์˜

์ผ๊ด€๋œ ๊ฐœ๋ฐœ ๊ธฐ์ค€ ํ™•๋ฆฝ

ํ’ˆ์งˆ ๊ธฐ์ค€, ์ •ํ™•์„ฑ, UX ์›์น™, ์ œ์•ฝ ์กฐ๊ฑด

๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ, ๊ธฐ์ˆ  ์„ ํƒ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ

specify

ํ•ต์‹ฌ (Core)

๋ฌด์—‡์„, ์™œ ๋งŒ๋“ค ๊ฒƒ์ธ์ง€ ์ •๋ฆฌ

๋ฌธ์ œ์™€ ๋ชฉํ‘œ ๋ช…ํ™•ํ™”

์‚ฌ์šฉ์ž ์งˆ๋ฌธ, ๊ธฐ๋Šฅ ๋ฒ”์œ„, ์„ฑ๊ณต ๊ธฐ์ค€

๊ธฐ์ˆ  ์Šคํƒ, ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํ™”

clarify

์„ ํƒ (Optional)

์• ๋งคํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์œผ๋กœ ์ •๋ฆฌ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํ™”

-

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ œ์‹œ

๊ตฌํ˜„ ๊ณ„ํš

plan

ํ•ต์‹ฌ (Core)

๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ ๊ตฌ์กฐ ๊ฒฐ์ •

๊ตฌํ˜„ ๋ฐฉํ–ฅ ์ˆ˜๋ฆฝ

๊ธฐ์ˆ  ์Šคํƒ, ์‹œ์Šคํ…œ ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ ํ๋ฆ„

์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ

๋ช…์„ธ ์ ๊ฒ€

checklist

์„ ํƒ (Optional)

์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์„ค๊ณ„ ๋‚ด์šฉ ์ ๊ฒ€

๋ˆ„๋ฝยท๋ชจํ˜ธํ•จ ํ™•์ธ

-

์ฝ”๋“œ, ์‹ค์ œ ๊ตฌํ˜„ ๋‚ด์šฉ

์ž‘์—… ๋ถ„ํ•ด

tasks

ํ•ต์‹ฌ (Core)

๊ตฌํ˜„ ์ž‘์—…์„ ์‹คํ–‰ ๋‹จ์œ„๋กœ ๋ถ„ํ•ด

๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ž‘์—… ์ •๋ฆฌ

-

์ถ”์ƒ์ ์ธ ์„ค๊ณ„ ๋…ผ์˜

์‚ฌ์ „ ๊ฒ€์ฆ

analyze

์„ ํƒ (Optional)

ํŒŒ์ผ ๊ฐ„ ๋‚ด์šฉ์ด ์ž˜ ๋งž๋Š”์ง€ ํ™•์ธ

๋ˆ„๋ฝยท๋ถˆ์ผ์น˜ ๋ฐฉ์ง€

-

์š”๊ตฌ์‚ฌํ•ญ ์ถ”๊ฐ€, ์ฝ”๋“œ ์ˆ˜์ •

๊ตฌํ˜„

implement

ํ•ต์‹ฌ (Core)

์•ž ๋‹จ๊ณ„์—์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋‹จ๊ณ„

๊ธฐ๋Šฅ ๊ตฌํ˜„

-

์š”๊ตฌ์‚ฌํ•ญยท๊ณ„ํš ๋ณ€๊ฒฝ

ํ‘œ 2. Spec Kit์˜ ์›Œํฌํ”Œ๋กœ์šฐ[10]

[์‹ค์Šต] Spec Kit์œผ๋กœ ์ฑ—๋ด‡ ๊ฐœ๋ฐœํ•˜๊ธฐ (์†Œ์š”์‹œ๊ฐ„: ~2h)

[์‹ค์Šต] Spec Kit์œผ๋กœ ์ฑ—๋ด‡ ๊ฐœ๋ฐœํ•˜๊ธฐ (์†Œ์š”์‹œ๊ฐ„: ~2h)

๊ทธ๋Ÿผ ์ด์ œ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณผ๊นŒ์š”? ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ์˜ค์‹œ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” Spec Kit์„ ํ™œ์šฉํ•ด ์„œ์šธ ์œˆํ„ฐํŽ˜์Šคํƒ€ ์•ˆ๋‚ด ์ฑ—๋ด‡์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ฑ—๋ด‡์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๋“ฏ ์งˆ๋ฌธํ•˜๋ฉด ๊ณต์‹ ์›น ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์ธ๋œ ์‚ฌ์‹ค๋งŒ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋ฉฐ, ๋ชจ๋“  ๋‹ต๋ณ€์— ์ถœ์ฒ˜๋ฅผ ํ•จ๊ป˜ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ์ •๋ณด๊ฐ€ ํ™•์ธ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ด€๋ จ ๋‚ด์šฉ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์‚ฌ์‹ค์„ ๋ช…ํ™•ํžˆ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.


ํ™˜๊ฒฝ ์กฐ๊ฑด

์ด๋ฒˆ ์‹ค์Šต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ

๋‚ด์šฉ

์šด์˜ ์ฒด์ œ

Linux (Ubuntu 22.04)

Python

Python 3.11

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ

uv

AI Agent

Codex

ํ‘œ 3. ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์„ฑ


Specify CLI ์„ค์น˜ํ•˜๊ธฐ

Spec Kit์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Specify CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค[10]. Specify CLI๋Š” ์˜๊ตฌ ์„ค์น˜ ๋ฐฉ์‹๊ณผ ์ผํšŒ์„ฑ ์‹คํ–‰ ๋ฐฉ์‹ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ๊ด€๋ฆฌ์™€ ์žฌ์‚ฌ์šฉ์ด ์šฉ์ดํ•œ ์˜๊ตฌ ์„ค์น˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์„ค์น˜ ์—†์ด ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•ด๋ณด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” ์ผํšŒ์„ฑ ์‹คํ–‰ ๋ฐฉ์‹์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• 1. ์˜๊ตฌ ์„ค์น˜

์˜๊ตฌ ์„ค์น˜ ๋ฐฉ์‹์€ ํ•œ ๋ฒˆ๋งŒ ์„ค์น˜ํ•˜๋ฉด ์ดํ›„ ์–ด๋–ค ํ”„๋กœ์ ํŠธ์—์„œ๋„ Specify CLI๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋จผ์ € ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Specify CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

uv tool install specify-cli --from git
uv tool install specify-cli --from git

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

specify init <ํ”„๋กœ์ ํŠธ๋ช…> --ai
specify init <ํ”„๋กœ์ ํŠธ๋ช…> --ai

์ด๋ฒˆ ์‹ค์Šต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ช…์€ โ€œSpec-kit-demoโ€์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ์ž‘์—… ์ค‘์ธ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ˜„์žฌ ์œ„์น˜์—์„œ ๋ฐ”๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

specify init . --ai
specify init . --ai

๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

specify init --here --ai
specify init --here --ai

์„ค์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ถ”ํ›„ Specify CLI ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์žฌ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

uv tool install specify-cli --force --from git
uv tool install specify-cli --force --from git

๋ฐฉ๋ฒ• 2. ์ผํšŒ์„ฑ ์‹คํ–‰

์ผํšŒ์„ฑ ์‹คํ–‰ ๋ฐฉ์‹์€ Specify CLI๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ผ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

uvx --from git+https://github.com/github/Spec-kit.git specify init <ํ”„๋กœ์ ํŠธ๋ช…> --ai
uvx --from git+https://github.com/github/Spec-kit.git specify init <ํ”„๋กœ์ ํŠธ๋ช…> --ai

๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์‹คํ–‰ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ์ƒ์„ฑ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋Š” 2.1 ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฏธ์ง€ 4๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณผ๊นŒ์š”? ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ์˜ค์‹œ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” Spec Kit์„ ํ™œ์šฉํ•ด ์„œ์šธ ์œˆํ„ฐํŽ˜์Šคํƒ€ ์•ˆ๋‚ด ์ฑ—๋ด‡์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ฑ—๋ด‡์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๋“ฏ ์งˆ๋ฌธํ•˜๋ฉด ๊ณต์‹ ์›น ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์ธ๋œ ์‚ฌ์‹ค๋งŒ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋ฉฐ, ๋ชจ๋“  ๋‹ต๋ณ€์— ์ถœ์ฒ˜๋ฅผ ํ•จ๊ป˜ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ์ •๋ณด๊ฐ€ ํ™•์ธ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ด€๋ จ ๋‚ด์šฉ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์‚ฌ์‹ค์„ ๋ช…ํ™•ํžˆ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.


ํ™˜๊ฒฝ ์กฐ๊ฑด

์ด๋ฒˆ ์‹ค์Šต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ

๋‚ด์šฉ

์šด์˜ ์ฒด์ œ

Linux (Ubuntu 22.04)

Python

Python 3.11

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ

uv

AI Agent

Codex

ํ‘œ 3. ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์„ฑ


Specify CLI ์„ค์น˜ํ•˜๊ธฐ

Spec Kit์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Specify CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค[10]. Specify CLI๋Š” ์˜๊ตฌ ์„ค์น˜ ๋ฐฉ์‹๊ณผ ์ผํšŒ์„ฑ ์‹คํ–‰ ๋ฐฉ์‹ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ๊ด€๋ฆฌ์™€ ์žฌ์‚ฌ์šฉ์ด ์šฉ์ดํ•œ ์˜๊ตฌ ์„ค์น˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์„ค์น˜ ์—†์ด ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•ด๋ณด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” ์ผํšŒ์„ฑ ์‹คํ–‰ ๋ฐฉ์‹์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• 1. ์˜๊ตฌ ์„ค์น˜

์˜๊ตฌ ์„ค์น˜ ๋ฐฉ์‹์€ ํ•œ ๋ฒˆ๋งŒ ์„ค์น˜ํ•˜๋ฉด ์ดํ›„ ์–ด๋–ค ํ”„๋กœ์ ํŠธ์—์„œ๋„ Specify CLI๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋จผ์ € ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Specify CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

uv tool install specify-cli --from git

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

specify init <ํ”„๋กœ์ ํŠธ๋ช…> --ai

์ด๋ฒˆ ์‹ค์Šต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ช…์€ โ€œSpec-kit-demoโ€์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ์ž‘์—… ์ค‘์ธ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ˜„์žฌ ์œ„์น˜์—์„œ ๋ฐ”๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

specify init . --ai

๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

specify init --here --ai

์„ค์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ถ”ํ›„ Specify CLI ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์žฌ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

uv tool install specify-cli --force --from git

๋ฐฉ๋ฒ• 2. ์ผํšŒ์„ฑ ์‹คํ–‰

์ผํšŒ์„ฑ ์‹คํ–‰ ๋ฐฉ์‹์€ Specify CLI๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ผ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

uvx --from git+https://github.com/github/Spec-kit.git specify init <ํ”„๋กœ์ ํŠธ๋ช…> --ai

๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์‹คํ–‰ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ์ƒ์„ฑ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋Š” 2.1 ํŒŒ์ผ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฏธ์ง€ 4๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

- ์‹คํ–‰ ๊ณผ์ •

- ์‹คํ–‰ ๊ณผ์ •

Spec Kit์€ ์‚ฌ์šฉํ•˜๋Š” ์—์ด์ „ํŠธ์— ๋”ฐ๋ผ ๋ช…๋ น์–ด ํ˜•์‹์— ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. codex ์—์ด์ „ํŠธ์˜ ๊ฒฝ์šฐ speckit ๋ช…๋ น์–ด ์•ž์— prompts:๊ฐ€ ๋ถ™๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ํ•œ๊ตญ์–ด๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด, ๋ชจ๋“  ๋ช…๋ น์–ด์— ํ•œ๊ตญ์–ด๋กœ ๊ธฐ์žฌํ•˜๋ผ๋Š” ์ง€์‹œ๋ฅผ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์–ด์„œ ์‹คํ–‰ ๋ช…๋ น์–ด์™€ ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ ํŒŒ์ผ์˜ ์ผ๋ถ€๋ฅผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


  1. Constitution

๋ช…๋ น์–ด



๊ฐ€์žฅ ๋จผ์ € /prompts:speckit.constitution ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์ ์šฉ๋  ๊ฐœ๋ฐœ ์›์น™๊ณผ ๊ธฐ์ค€์„ ์ •๋ฆฌํ•œ constitution.md ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉฐ, ์ดํ›„ ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ์ ์šฉ๋  ๊ธฐ์ค€์„ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ, Spec Kit ํ…œํ”Œ๋ฆฟ์—์„œ ์›์น™์„ ์‹ ๊ทœ๋กœ ์ •ํ•˜๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์ดˆ๊ธฐ ๋ฒ„์ „์€ 1.0.0(MAJOR)์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ




  1. Specify

๋ช…๋ น์–ด



์ด์–ด์„œ /prompts:speckit.specify ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ๊ธฐ๋Šฅ์„ ๊ตฌ์ฒดํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ธŒ๋žœ์น˜์™€ ํ•จ๊ป˜ spec.md, requirements.md๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

spec.md์—๋Š” ๋‹ต๋ณ€ ์ฒ˜๋ฆฌ ๋ฐฉ์‹, ์—ฐ์† ์งˆ๋ฌธ ์ฒ˜๋ฆฌ, ๋‹ค์ค‘ ์งˆ๋ฌธ ๋ถ„๋ฆฌ ๊ธฐ์ค€, ์‘๋‹ต ๋ถ„๋Ÿ‰ ์ œํ•œ ๋“ฑ ์„ธ๋ถ€ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ •๋ฆฌ๋˜๋ฉฐ, ์ดํ›„ ๊ตฌํ˜„ ๋‹จ๊ณ„์˜ ํŒ๋‹จ ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, requirements.md๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์ถฉ๋ถ„ํžˆ ์ •์˜๋˜์—ˆ๋Š”์ง€๋ฅผ ์ ๊ฒ€ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ๋กœ, ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ฒ€ํ† ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ฒดํฌ ํ‘œ์‹œ(x)๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

spec.md ๊ฒฐ๊ณผ



requirements.md ๊ฒฐ๊ณผ

## Requirement Completeness

- [x] Requirements are testable and unambiguous
- [x] Edge cases are identified
- [x]

## Requirement Completeness

- [x] Requirements are testable and unambiguous
- [x] Edge cases are identified
- [x]


  1. Clarify

๋ช…๋ น์–ด



/prompts:speckit.clarify๋Š” Specify ๋‹จ๊ณ„์—์„œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜๋˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์€ ์ตœ๋Œ€ ๋‹ค์„ฏ ๋ฒˆ๊นŒ์ง€ ์ง„ํ–‰๋˜๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋œ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์€ spec.md์˜ Clarifications ์„น์…˜์— ์ž๋™์œผ๋กœ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ




  1. Plan

๋ช…๋ น์–ด



/prompts:speckit.plan์„ ์‹คํ–‰ํ•˜๋ฉด, ์•ž์„œ ์ •์˜๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ ๊ธฐ์ˆ  ๊ตฌ์„ฑ์„ ์ •๋ฆฌํ•œ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„๋„ ํ˜„์žฌ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๊ณ„ํš๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ




  1. Checklist

๋ช…๋ น์–ด



์„ ํƒ ๋ช…๋ น์–ด์ธ /prompts:speckit.checklist๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ์•ž์„œ ์ •์˜ํ•œ ๋‚ด์šฉ์˜ ์ •ํ•ฉ์„ ์ ๊ฒ€ํ•˜๊ธฐ ์œ„ํ•œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ช…์„ธ์˜ ์ผ๋ถ€๊ฐ€ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ plan์— ์ตœ์†Œํ•œ์˜ ๋ณด์™„์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.


  1. Tasks

์‹คํ–‰ ๋ช…๋ น์–ด



/prompts:speckit.tasks๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, plan์„ ๊ธฐ์ค€์œผ๋กœ ์‹ค์ œ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•œ ์ž‘์—… ๋‹จ์œ„(Task) ๋ชฉ๋ก์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ task๋Š” ๋Œ€์‘ํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ช…ํ™•ํžˆ ์—ฐ๊ฒฐ๋˜์–ด ์ดํ›„ ๊ตฌํ˜„ ๋‹จ๊ณ„์˜ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

## Phase 1: Setup (Shared Infrastructure)

Purpose: ํ”„๋กœ์ ํŠธ ๊ณจ๊ฒฉ๊ณผ ๋ฐ๋ชจ ํŽ˜์ด์ง€ ๊ธฐ๋ณธ ํ‹€ ๊ตฌ์„ฑ

- [x] T001 FastAPI ์•ฑ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ์™€ ํ…œํ”Œ๋ฆฟ/์ •์  ๊ฒฝ๋กœ ๋งˆ์šดํŠธ ์ถ”๊ฐ€ in `src/app.py`
- [x] T002 [P] API ๋ผ์šฐํ„ฐ ๊ณจ๊ฒฉ ์ƒ์„ฑ in `src/api/routes.py`
- [x] T003 [P]

## Phase 1: Setup (Shared Infrastructure)

Purpose: ํ”„๋กœ์ ํŠธ ๊ณจ๊ฒฉ๊ณผ ๋ฐ๋ชจ ํŽ˜์ด์ง€ ๊ธฐ๋ณธ ํ‹€ ๊ตฌ์„ฑ

- [x] T001 FastAPI ์•ฑ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ์™€ ํ…œํ”Œ๋ฆฟ/์ •์  ๊ฒฝ๋กœ ๋งˆ์šดํŠธ ์ถ”๊ฐ€ in `src/app.py`
- [x] T002 [P] API ๋ผ์šฐํ„ฐ ๊ณจ๊ฒฉ ์ƒ์„ฑ in `src/api/routes.py`
- [x] T003 [P]


  1. Analyze

๋ช…๋ น์–ด



์„ ํƒ ๋ช…๋ น์–ด์ธ /prompts:speckit.analyze๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ช…์„ธ, plan, tasks ๊ฐ„์˜ ์ •ํ•ฉ์„ฑ๊ณผ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉฐ, ๋ˆ„๋ฝ๋œ ์š”๊ตฌ์‚ฌํ•ญ์ด๋‚˜ ์ถ”๊ฐ€ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  1. Implement

/prompts:speckit.implement ์‹คํ–‰ ์‹œ task๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฝ”๋“œ ๊ตฌํ˜„์ด ์ง„ํ–‰๋˜๋ฉฐ, Spec Kit ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๊ธฐ๋ณธ ํ๋ฆ„์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

Spec Kit์€ ์‚ฌ์šฉํ•˜๋Š” ์—์ด์ „ํŠธ์— ๋”ฐ๋ผ ๋ช…๋ น์–ด ํ˜•์‹์— ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. codex ์—์ด์ „ํŠธ์˜ ๊ฒฝ์šฐ speckit ๋ช…๋ น์–ด ์•ž์— prompts:๊ฐ€ ๋ถ™๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ํ•œ๊ตญ์–ด๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด, ๋ชจ๋“  ๋ช…๋ น์–ด์— ํ•œ๊ตญ์–ด๋กœ ๊ธฐ์žฌํ•˜๋ผ๋Š” ์ง€์‹œ๋ฅผ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์–ด์„œ ์‹คํ–‰ ๋ช…๋ น์–ด์™€ ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ ํŒŒ์ผ์˜ ์ผ๋ถ€๋ฅผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


  1. Constitution

๋ช…๋ น์–ด


๊ฐ€์žฅ ๋จผ์ € /prompts:speckit.constitution ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์ ์šฉ๋  ๊ฐœ๋ฐœ ์›์น™๊ณผ ๊ธฐ์ค€์„ ์ •๋ฆฌํ•œ constitution.md ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉฐ, ์ดํ›„ ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ์ ์šฉ๋  ๊ธฐ์ค€์„ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ, Spec Kit ํ…œํ”Œ๋ฆฟ์—์„œ ์›์น™์„ ์‹ ๊ทœ๋กœ ์ •ํ•˜๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์ดˆ๊ธฐ ๋ฒ„์ „์€ 1.0.0(MAJOR)์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ



  1. Specify

๋ช…๋ น์–ด


์ด์–ด์„œ /prompts:speckit.specify ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ๊ธฐ๋Šฅ์„ ๊ตฌ์ฒดํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ธŒ๋žœ์น˜์™€ ํ•จ๊ป˜ spec.md, requirements.md๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

spec.md์—๋Š” ๋‹ต๋ณ€ ์ฒ˜๋ฆฌ ๋ฐฉ์‹, ์—ฐ์† ์งˆ๋ฌธ ์ฒ˜๋ฆฌ, ๋‹ค์ค‘ ์งˆ๋ฌธ ๋ถ„๋ฆฌ ๊ธฐ์ค€, ์‘๋‹ต ๋ถ„๋Ÿ‰ ์ œํ•œ ๋“ฑ ์„ธ๋ถ€ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ •๋ฆฌ๋˜๋ฉฐ, ์ดํ›„ ๊ตฌํ˜„ ๋‹จ๊ณ„์˜ ํŒ๋‹จ ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, requirements.md๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์ถฉ๋ถ„ํžˆ ์ •์˜๋˜์—ˆ๋Š”์ง€๋ฅผ ์ ๊ฒ€ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ๋กœ, ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ฒ€ํ† ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ฒดํฌ ํ‘œ์‹œ(x)๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

spec.md ๊ฒฐ๊ณผ


requirements.md ๊ฒฐ๊ณผ

## Requirement Completeness

- [x] Requirements are testable and unambiguous
- [x] Edge cases are identified
- [x]


  1. Clarify

๋ช…๋ น์–ด


/prompts:speckit.clarify๋Š” Specify ๋‹จ๊ณ„์—์„œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜๋˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์€ ์ตœ๋Œ€ ๋‹ค์„ฏ ๋ฒˆ๊นŒ์ง€ ์ง„ํ–‰๋˜๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋œ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์€ spec.md์˜ Clarifications ์„น์…˜์— ์ž๋™์œผ๋กœ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ



  1. Plan

๋ช…๋ น์–ด


/prompts:speckit.plan์„ ์‹คํ–‰ํ•˜๋ฉด, ์•ž์„œ ์ •์˜๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ ๊ธฐ์ˆ  ๊ตฌ์„ฑ์„ ์ •๋ฆฌํ•œ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„๋„ ํ˜„์žฌ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๊ณ„ํš๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ



  1. Checklist

๋ช…๋ น์–ด


์„ ํƒ ๋ช…๋ น์–ด์ธ /prompts:speckit.checklist๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ์•ž์„œ ์ •์˜ํ•œ ๋‚ด์šฉ์˜ ์ •ํ•ฉ์„ ์ ๊ฒ€ํ•˜๊ธฐ ์œ„ํ•œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ช…์„ธ์˜ ์ผ๋ถ€๊ฐ€ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ plan์— ์ตœ์†Œํ•œ์˜ ๋ณด์™„์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.


  1. Tasks

์‹คํ–‰ ๋ช…๋ น์–ด


/prompts:speckit.tasks๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, plan์„ ๊ธฐ์ค€์œผ๋กœ ์‹ค์ œ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•œ ์ž‘์—… ๋‹จ์œ„(Task) ๋ชฉ๋ก์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ task๋Š” ๋Œ€์‘ํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ช…ํ™•ํžˆ ์—ฐ๊ฒฐ๋˜์–ด ์ดํ›„ ๊ตฌํ˜„ ๋‹จ๊ณ„์˜ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

## Phase 1: Setup (Shared Infrastructure)

Purpose: ํ”„๋กœ์ ํŠธ ๊ณจ๊ฒฉ๊ณผ ๋ฐ๋ชจ ํŽ˜์ด์ง€ ๊ธฐ๋ณธ ํ‹€ ๊ตฌ์„ฑ

- [x] T001 FastAPI ์•ฑ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ์™€ ํ…œํ”Œ๋ฆฟ/์ •์  ๊ฒฝ๋กœ ๋งˆ์šดํŠธ ์ถ”๊ฐ€ in `src/app.py`
- [x] T002 [P] API ๋ผ์šฐํ„ฐ ๊ณจ๊ฒฉ ์ƒ์„ฑ in `src/api/routes.py`
- [x] T003 [P]


  1. Analyze

๋ช…๋ น์–ด


์„ ํƒ ๋ช…๋ น์–ด์ธ /prompts:speckit.analyze๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ช…์„ธ, plan, tasks ๊ฐ„์˜ ์ •ํ•ฉ์„ฑ๊ณผ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉฐ, ๋ˆ„๋ฝ๋œ ์š”๊ตฌ์‚ฌํ•ญ์ด๋‚˜ ์ถ”๊ฐ€ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  1. Implement

/prompts:speckit.implement ์‹คํ–‰ ์‹œ task๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฝ”๋“œ ๊ตฌํ˜„์ด ์ง„ํ–‰๋˜๋ฉฐ, Spec Kit ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๊ธฐ๋ณธ ํ๋ฆ„์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

- ์ฑ—๋ด‡ ๊ตฌํ˜„ ๊ฒฐ๊ณผ

- ์ฑ—๋ด‡ ๊ตฌํ˜„ ๊ฒฐ๊ณผ

์ด๋ฏธ์ง€ 7. ์ฑ—๋ด‡ ์‹คํ–‰ ๊ฒฐ๊ณผ. ์ถœ์ฒ˜. ์ œ๋…ผ

Spec Kit์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ์„œ์šธ ์œˆํ„ฐํŽ˜์Šคํƒ€ ์ฑ—๋ด‡์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ฐ๋ชจ ํŽ˜์ด์ง€์—์„œ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๋ฉด, ๊ณต์‹ยท์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ์›น ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ฆฌ๋œ ๋‹ต๋ณ€๊ณผ ํ•จ๊ป˜ ์ถœ์ฒ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ—๋ด‡์€ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ํฌํ•จํ•˜๊ณ  ์žˆ์ง€๋Š” ์•Š์ง€๋งŒ, ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๊ฒ€์ƒ‰ํ˜• ์งˆ๋ฌธ์— ๋Œ€์‘ํ•˜๋Š” ์ถœ์ฒ˜ ๊ธฐ๋ฐ˜์˜ ์ •ํ™•ํ•œ ์ฑ—๋ด‡์„ ๊ตฌํ˜„ํ–ˆ๋‹ค๋Š” ์ ์—์„œ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ๋ช…์„ธ ๋ณด์กด ๋ฐฉ์‹(Spec-anchored)์„ ์‚ฌ์šฉํ•˜๋Š” Spec Kit์—์„œ๋Š” ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ์‹ ๋ขฐํ•˜๊ธฐ๋ณด๋‹ค, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹ค์Šต์—์„œ๋„ ์ผ๋ถ€ ๋‹ต๋ณ€์ด 2024๋…„ ๊ธฐ์ค€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ๊ณต์‹ ์ถœ์ฒ˜๊ฐ€ ์•„๋‹Œ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•ด, ์ด๋ฅผ ์ง์ ‘ ํ™•์ธํ•ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Spec Kit์˜ ํ•ต์‹ฌ์€ ๋ช…ํ™•ํ•œ ๋ช…์„ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ AI๋ฅผ ํ™œ์šฉํ•˜๋˜, ์‚ฌ๋žŒ์˜ ์ ๊ฒ€๊ณผ ๋ณด์™„์„ ์ „์ œ๋กœ ํ•˜๋Š” ๊ฐœ๋ฐœ ํ๋ฆ„์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ƒ์œผ๋กœ SDD์™€ Spec Kit์˜ ๊ฐœ๋…, ๊ทธ๋ฆฌ๊ณ  ์‹ค์Šต ์ „ ๊ณผ์ •์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ๋ช…์„ธ๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ตฌํ˜„ํ•ด ๋ณด๋ฉด์„œ, ๊ฐœ๋ฐœ์ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒฝํ—˜ํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ 7. ์ฑ—๋ด‡ ์‹คํ–‰ ๊ฒฐ๊ณผ. ์ถœ์ฒ˜. ์ œ๋…ผ

Spec Kit์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ์„œ์šธ ์œˆํ„ฐํŽ˜์Šคํƒ€ ์ฑ—๋ด‡์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ฐ๋ชจ ํŽ˜์ด์ง€์—์„œ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๋ฉด, ๊ณต์‹ยท์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ์›น ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ฆฌ๋œ ๋‹ต๋ณ€๊ณผ ํ•จ๊ป˜ ์ถœ์ฒ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ—๋ด‡์€ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ํฌํ•จํ•˜๊ณ  ์žˆ์ง€๋Š” ์•Š์ง€๋งŒ, ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๊ฒ€์ƒ‰ํ˜• ์งˆ๋ฌธ์— ๋Œ€์‘ํ•˜๋Š” ์ถœ์ฒ˜ ๊ธฐ๋ฐ˜์˜ ์ •ํ™•ํ•œ ์ฑ—๋ด‡์„ ๊ตฌํ˜„ํ–ˆ๋‹ค๋Š” ์ ์—์„œ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ๋ช…์„ธ ๋ณด์กด ๋ฐฉ์‹(Spec-anchored)์„ ์‚ฌ์šฉํ•˜๋Š” Spec Kit์—์„œ๋Š” ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ์‹ ๋ขฐํ•˜๊ธฐ๋ณด๋‹ค, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹ค์Šต์—์„œ๋„ ์ผ๋ถ€ ๋‹ต๋ณ€์ด 2024๋…„ ๊ธฐ์ค€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ๊ณต์‹ ์ถœ์ฒ˜๊ฐ€ ์•„๋‹Œ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•ด, ์ด๋ฅผ ์ง์ ‘ ํ™•์ธํ•ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Spec Kit์˜ ํ•ต์‹ฌ์€ ๋ช…ํ™•ํ•œ ๋ช…์„ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ AI๋ฅผ ํ™œ์šฉํ•˜๋˜, ์‚ฌ๋žŒ์˜ ์ ๊ฒ€๊ณผ ๋ณด์™„์„ ์ „์ œ๋กœ ํ•˜๋Š” ๊ฐœ๋ฐœ ํ๋ฆ„์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ƒ์œผ๋กœ SDD์™€ Spec Kit์˜ ๊ฐœ๋…, ๊ทธ๋ฆฌ๊ณ  ์‹ค์Šต ์ „ ๊ณผ์ •์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ๋ช…์„ธ๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ตฌํ˜„ํ•ด ๋ณด๋ฉด์„œ, ๊ฐœ๋ฐœ์ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒฝํ—˜ํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €์ž ๋ฐ ์ถœ์ฒ˜

์ €์ž

๊ถŒ๋ฏผ์ง€(Minji Kwon | LinkedIn)
ํ™ฉ๋‚˜์˜(Nayoung Hwang | LinkedIn)
๊น€ํ˜„๊ทผ(Hyun-geun Kim | LinkedIn)

์ถœ์ฒ˜

[1] Wikipedia. 2025. "Vibe coding". https://en.wikipedia.org/wiki/Vibe_coding
[2] Anthropic. 2025. "Using CLAUDE.md files: Customizing Claude Code for your codebase.". Claude Blog. https://claude.com/blog/using-claude-md-files
[3] Agentic AI Foundation. 2025. "AGENTS.md". https://agents.md/
[4] W Chatlatanagulchai et al. 2025. "Agent READMEs: An Empirical Study of Context Files for Agentic Coding". arXiv. https://arxiv.org/abs/2511.12884v1
[5] Github. 2025. โ€œGitHub Universe โ€˜25 Recap Seoul". GitHub Universe. https://github.registration.goldcast.io/events/a6bd39d0-520a-4d7b-b0a3-864f1c510ab7?utm_source=sdr&utm_medium=email&utm_campaign=recap25-SEL&utm_content=
[6] Wikipedia. 2025. "Software requirements specification". https://en.wikipedia.org/wiki/Software_requirements_specification
[7] Franรงois Zaninotto. 2025. "Spec-Driven Development: The Waterfall Strikes Back". Marmelab. https://marmelab.com/blog/2025/11/12/spec-driven-development-waterfall-strikes-back.html
[8] Birgitta Bรถckeler. 2025. "Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl". Thoughtworks. https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html
[9] Meta-Quantum.Today. 2025. "SpecKit: Github's NEW tool That FINALLY Fixes AI Coding". https://meta-quantum.today/?p=8026
[10] GitHub. 2025. "Spec Kit". https://github.com/github/spec-kit
[11] Kiro. "Agentic AI development from prototype to production". https://kiro.dev/
[12] Tessl. 2025. "What is Tessl?". https://docs.tessl.io/
[13] Meer Hashaam khan. 2025. "Spec-Driven Development with Spec Kit". Medium. https://medium.com/@hashaamkhan975/spec-driven-development-with-spec-kit-34c443e3eaf6

์ €์ž

๊ถŒ๋ฏผ์ง€(Minji Kwon | LinkedIn)
ํ™ฉ๋‚˜์˜(Nayoung Hwang | LinkedIn)
๊น€ํ˜„๊ทผ(Hyun-geun Kim | LinkedIn)

์ถœ์ฒ˜

[1] Wikipedia. 2025. "Vibe coding". https://en.wikipedia.org/wiki/Vibe_coding
[2] Anthropic. 2025. "Using CLAUDE.md files: Customizing Claude Code for your codebase.". Claude Blog. https://claude.com/blog/using-claude-md-files
[3] Agentic AI Foundation. 2025. "AGENTS.md". https://agents.md/
[4] W Chatlatanagulchai et al. 2025. "Agent READMEs: An Empirical Study of Context Files for Agentic Coding". arXiv. https://arxiv.org/abs/2511.12884v1
[5] Github. 2025. โ€œGitHub Universe โ€˜25 Recap Seoul". GitHub Universe. https://github.registration.goldcast.io/events/a6bd39d0-520a-4d7b-b0a3-864f1c510ab7?utm_source=sdr&utm_medium=email&utm_campaign=recap25-SEL&utm_content=
[6] Wikipedia. 2025. "Software requirements specification". https://en.wikipedia.org/wiki/Software_requirements_specification
[7] Franรงois Zaninotto. 2025. "Spec-Driven Development: The Waterfall Strikes Back". Marmelab. https://marmelab.com/blog/2025/11/12/spec-driven-development-waterfall-strikes-back.html
[8] Birgitta Bรถckeler. 2025. "Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl". Thoughtworks. https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html
[9] Meta-Quantum.Today. 2025. "SpecKit: Github's NEW tool That FINALLY Fixes AI Coding". https://meta-quantum.today/?p=8026
[10] GitHub. 2025. "Spec Kit". https://github.com/github/spec-kit
[11] Kiro. "Agentic AI development from prototype to production". https://kiro.dev/
[12] Tessl. 2025. "What is Tessl?". https://docs.tessl.io/
[13] Meer Hashaam khan. 2025. "Spec-Driven Development with Spec Kit". Medium. https://medium.com/@hashaamkhan975/spec-driven-development-with-spec-kit-34c443e3eaf6

๋ชฉ์ฐจ

ยฉ2026 GenON

13F, 2621 Nambusunhwan-ro, Gangnam-gu, Seoul, 06267, Republic of Korea

|

|

ยฉ2026 GenON

13F, 2621 Nambusunhwan-ro, Gangnam-gu, Seoul, 06267, Republic of Korea

|

|

ยฉ2026 GenON

13F, 2621 Nambusunhwan-ro, Gangnam-gu, Seoul, 06267, Republic of Korea

|

|