AI 툴 소개: GitHub Spec Kit: AI 에이전트 개발을 위한 명세서
GitHub Spec Kit은 코드와 상호작용하는 AI 에이전트 및 모델 개발자를 위한 명세(spec) 모음입니다. 이 명세들은 AI 에이전트가 파일 시스템과 상호작용하고, 명령을 실행하며, 사용자와 소통하는 방식에 대한 모범 사례(best practice)를 정의 합니다.
이러한 표준을 채택함으로써, 우리는 AI 에이전트 개발 생태계가 더욱 강력하고 상호 운용 가능하도록 만들 수 있습니다.
원문: https://github.com/github/spec-kit (Translated by Google Gemini) (2025-09-17 기준)
🤔 명세 기반 개발이란 무엇입니까?#
명세 기반 개발은 전통적인 소프트웨어 개발의 판도를 뒤집습니다. 수십 년 동안 코드가 왕이었습니다 — 명세는 코딩이라는 “진짜 작업"이 시작되면 만들어졌다가 버려지는 비계(scaffolding)에 불과했습니다. 명세 기반 개발은 이를 변화시킵니다: 명세가 실행 가능해지며, 단지 구현을 안내하는 것을 넘어 직접 작동하는 구현체를 생성합니다.
⚡ 시작하기#
1. Specify 설치#
사용 중인 코딩 에이전트에 따라 프로젝트를 초기화합니다.
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
2. 명세 생성#
/specify 명령을 사용하여 만들고 싶은 것을 설명합니다. 기술 스택이 아닌 무엇을(what), 왜(why) 에 집중하세요.
/specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.
3. 기술 구현 계획 수립#
/plan 명령을 사용하여 기술 스택과 아키텍처 선택사항을 제공합니다.
/plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
4. 분해 및 구현#
/tasks를 사용하여 실행 가능한 작업 목록을 생성한 다음, 에이전트에게 기능 구현을 요청합니다.
자세한 단계별 지침은 종합 가이드를 참조하세요.
📽️ 영상 개요#
Spec Kit이 실제로 작동하는 모습을 보고 싶으신가요? 영상 개요를 시청하세요!
🔧 Specify CLI 참조#
specify 명령은 다음 옵션을 지원합니다.
명령어#
| 명령어 | 설명 |
|---|---|
init | 최신 템플릿으로 새 Specify 프로젝트를 초기화합니다. |
check | 설치된 도구들(git, claude, gemini, code/code-insiders, cursor-agent)을 확인합니다. |
specify init 인자 & 옵션#
| 인자/옵션 | 타입 | 설명 |
|---|---|---|
<project-name> | 인자 | 새 프로젝트 디렉터리의 이름입니다 (--here 사용 시 선택 사항). |
--ai | 옵션 | 사용할 AI 어시스턴트: claude, gemini, copilot, 또는 cursor. |
--script | 옵션 | 사용할 스크립트 변형: sh (bash/zsh) 또는 ps (PowerShell). |
--ignore-agent-tools | 플래그 | Claude Code와 같은 AI 에이전트 도구 확인을 건너뜁니다. |
--no-git | 플래그 | git 저장소 초기화를 건너뜁니다. |
--here | 플래그 | 새 디렉터리를 만드는 대신 현재 디렉터리에 프로젝트를 초기화합니다. |
--skip-tls | 플래그 | SSL/TLS 검증을 건너뜁니다 (권장하지 않음). |
--debug | 플래그 | 문제 해결을 위한 상세 디버그 출력을 활성화합니다. |
📚 핵심 철학#
명세 기반 개발은 다음을 강조하는 구조화된 프로세스입니다.
- 명세가 “어떻게“보다 “무엇을” 먼저 정의하는 의도 기반 개발(Intent-driven development)
- 가드레일과 조직적 원칙을 사용한 풍부한 명세 생성(Rich specification creation)
- 프롬프트로부터 한 번에 코드를 생성하는 것이 아닌 다단계 정제(Multi-step refinement)
- 명세 해석을 위한 고급 AI 모델 능력에 대한 높은 의존성(Heavy reliance)
🌟 개발 단계#
| 단계 | 초점 | 주요 활동 |
|---|---|---|
| 0-to-1 개발 (“그린필드”) | 처음부터 생성 | <ul><li>높은 수준의 요구사항에서 시작</li><li>명세 생성</li><li>구현 단계 계획</li><li>프로덕션 수준의 애플리케이션 구축</li></ul> |
| 창의적 탐색 | 병렬 구현 | <ul><li>다양한 솔루션 탐색</li><li>여러 기술 스택 및 아키텍처 지원</li><li>UX 패턴 실험</li></ul> |
| 반복적 개선 (“브라운필드”) | 브라운필드 현대화 | <ul><li>반복적으로 기능 추가</li><li>레거시 시스템 현대화</li><li>프로세스 조정</li></ul> |
🎯 실험적 목표#
저희의 연구 및 실험은 다음에 초점을 맞추고 있습니다.
기술 독립성#
- 다양한 기술 스택을 사용하여 애플리케이션 생성
- 명세 기반 개발이 특정 기술, 프로그래밍 언어 또는 프레임워크에 얽매이지 않는 프로세스라는 가설 검증
엔터프라이즈 제약 조건#
- 미션 크리티컬 애플리케이션 개발 시연
- 조직적 제약 조건(클라우드 제공자, 기술 스택, 엔지니어링 관행) 통합
- 엔터프라이즈 디자인 시스템 및 규정 준수 요구사항 지원
사용자 중심 개발#
- 다양한 사용자 집단과 선호도에 맞는 애플리케이션 구축
- 다양한 개발 접근 방식(바이브 코딩부터 AI 네이티브 개발까지) 지원
창의적 및 반복적 프로세스#
- 병렬 구현 탐색 개념 검증
- 강력한 반복적 기능 개발 워크플로우 제공
- 업그레이드 및 현대화 작업을 처리하도록 프로세스 확장
🔧 사전 요구사항#
- Linux/macOS (또는 Windows의 WSL2)
- AI 코딩 에이전트: Claude Code, GitHub Copilot, Gemini CLI, 또는 Cursor
- 패키지 관리를 위한 uv
- Python 3.11+
- Git