λͺ©λ‘μœΌλ‘œ
GitHub - github/spec-kit: πŸ’« Toolkit to help you get started with Spec-Driven Development
Service2025.09.14

GitHub - github/spec-kit: πŸ’« Toolkit to help you get started with Spec-Driven Development

μš”μ•½

Spec-Driven Development (SDD)λŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ μŠ€νŽ™μ΄ 직접 κ΅¬ν˜„μ„ μƒμ„±ν•˜λ„λ‘ ν•˜μ—¬ μ½”λ“œλ₯Ό μš°μ„ ν•˜λŠ” 개발 λ°©μ‹μ—μ„œ λ²—μ–΄λ‚˜ μŠ€νŽ™μ„ μš°μ„ ν•˜λŠ” 방법둠이며, spec-kit은 이λ₯Ό λ•λŠ” νˆ΄ν‚·μž…λ‹ˆλ‹€.
️ 이 νˆ΄ν‚·μ€ Specify CLI와 AI μ—μ΄μ „νŠΈλ₯Ό ν™œμš©ν•˜μ—¬ /speckit.constitution, /speckit.specify, /speckit.plan, /speckit.tasks, /speckit.implement와 같은 핡심 μŠ¬λž˜μ‹œ λͺ…λ Ήμ–΄λ₯Ό 톡해 체계적인 개발 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ•ˆλ‚΄ν•©λ‹ˆλ‹€.
spec-kit은 사양 생성, κ³„νš, μž‘μ—… λΆ„ν•΄ 및 μ½”λ“œ 싀행을 ν¬ν•¨ν•˜λŠ” 닀단계 μ •μ œ ν”„λ‘œμ„ΈμŠ€λ₯Ό 톡해 높은 ν’ˆμ§ˆμ˜ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 더 λΉ λ₯΄κ²Œ κ΅¬μΆ•ν•˜κ³ , 기술 독립성 및 반볡적인 κΈ°λŠ₯ κ°œλ°œμ„ λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.

상세 λ‚΄μš©

Spec-Driven Development(SDD)λŠ” κΈ°μ‘΄ μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ°©μ‹μ˜ νŒ¨λŸ¬λ‹€μž„μ„ μ „ν™˜ν•˜λŠ” μ ‘κ·Ό λ°©μ‹μœΌλ‘œ, 코딩이 쀑심이 μ•„λ‹Œ μ‹€ν–‰ κ°€λŠ₯ν•œ(executable) λͺ…μ„Έ(specifications)κ°€ 핡심이 λ˜μ–΄ 직접 λ™μž‘ν•˜λŠ” κ΅¬ν˜„μ²΄λ₯Ό μƒμ„±ν•˜λ„λ‘ ν•˜λŠ” λ°©λ²•λ‘ μž…λ‹ˆλ‹€. μ΄λŠ” λ‹¨μˆœνžˆ μ½”λ“œ μž‘μ„±μ„ μœ„ν•œ κ°€μ΄λ“œ 역할을 λ„˜μ–΄, λͺ…μ„Έ μžμ²΄κ°€ μ‹€μ œ κ΅¬ν˜„μ˜ μ›μ²œμ΄ λ˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€. Spec Kit은 μ΄λŸ¬ν•œ SDDλ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μ˜€ν”ˆ μ†ŒμŠ€ νˆ΄ν‚·μž…λ‹ˆλ‹€.

핡심 방법둠은 λ‹€μŒκ³Ό 같은 λ‹¨κ³„λ‘œ μ§„ν–‰λ©λ‹ˆλ‹€:

  • Specify CLI μ„€μΉ˜ (Install Specify CLI):
  • uv tool install specify-cli λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ Specify CLIλ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. 이 CLI λ„κ΅¬λŠ” ν”„λ‘œμ νŠΈ μ΄ˆκΈ°ν™” 및 도ꡬ μƒνƒœ 확인 λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
    * specifyinit<PROJECTNAME>specify init <PROJECT_NAME>: μƒˆ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜κ±°λ‚˜ κΈ°μ‘΄ ν”„λ‘œμ νŠΈλ₯Ό μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ --ai ν”Œλž˜κ·Έλ₯Ό 톡해 μ‚¬μš©ν•  AI μ—μ΄μ „νŠΈλ₯Ό μ§€μ •ν•  수 있으며, --here ν”Œλž˜κ·Έλ‘œ ν˜„μž¬ 디렉토리에 μ΄ˆκΈ°ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    * specify check: ν•„μš”ν•œ 도ꡬ듀이 μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

  • ν”„λ‘œμ νŠΈ 원칙 수립 (Establish project principles):
  • ν”„λ‘œμ νŠΈ λ””λ ‰ν† λ¦¬μ—μ„œ AI μ—μ΄μ „νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³ , /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 λͺ¨λΈμ˜ κ³ κΈ‰ κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ λͺ…μ„Έλ₯Ό ν•΄μ„ν•˜κ³ , 이λ₯Ό λ°”νƒ•μœΌλ‘œ 체계적인 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ„ μœ λ„ν•©λ‹ˆλ‹€. 이 방법둠은 기술 독립적인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 생성, μ—”ν„°ν”„λΌμ΄μ¦ˆ μ œμ•½ 쑰건 톡합, μ‚¬μš©μž 쀑심 개발, 그리고 창의적이고 반볡적인 개발 ν”„λ‘œμ„ΈμŠ€ 지원을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.

    원본 보기
    GitHub
    Shared by Anonymous