GitHub Spec Kit을 VS Code에서 실행할 수 있도록 설치합니다.
https://github.com/github/spec-kit
- 설치: uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
- 초기화: specify init <PROJECT_NAME>
- 체크: specify check
VS Code의 경우,.github/prompt폴더에 다음 파일들이 설치가 된다. - Copilot Chat에서 연결 되었는지 확인
- 실행 순서 예시
/speckit.constitution /speckit.specify (필요시) /speckit.clarify /speckit.plan /speckit.checklist ← 요구/품질 기준 점검 /speckit.tasks /speckit.analyze ← 아티팩트 일관성 분석 /speckit.implement
- 원칙 정의
- /speckit.constitution
- 원칙 예시
# 프로젝트 원칙을 만들어줘. - 코드 품질: 간결하고 읽기 쉬운 코드로 주석은 함수 단위로 간결하게 기록 - 테스트: 외부 API 막히지 않도록 잦은 반복 요청 자제하고 최대 1번 동작 가능 여부 테스트 - 테스트 환경: 최종 Azure 클라우드 서비스에 배포하는 것을 고려 - 사용자 경험: 직관적이고 빠른 인터페이스 - 성능: 불필요한 라이브러리 사용 금지, 최소한의 의존성으로 구현
- 명세화
- /speckit.specify
# 나의 관심 주식을 모아 주는 주식 앱을 만들어줘. 1. 사용자별로 개인화된 정보를 저장해야함 (관심종목, 포트폴리오) 2. 관심종목(워치리스트) • WHAT: 심볼 검색→워치리스트 추가/삭제. 리스트내 티커이동가능, 간단 지표 표시. • WHY: 자주 보는 종목을 빠르게 모아봄 • 성공 기준: 워치리스트 추가 후 3초 이내 카드에 현재가/변동률 표시. 3. 시세 보기 • WHAT: 종목 상세에서 현재가/일 변동률/거래량/장상태(장중/마감) 표시. 준실시간임=일 단위로 표시 • WHY: 과도한 갱신 없이 핵심 정보만 명확히. 상세 시세의 경우 일단위의 Sparkline 캔틀 차트로 표시 • 성공 기준: 95%의 조회가 1초 내 결과 노출(체감 기준). 4. 포트폴리오/보유종목 • WHAT: 로그인 사용자별 포트폴리오 장기투자, 단투, 정찰병으로 구분하고 종목(symbol, 수량, 평균단가)을 CRUD. 총평가·손익·수익률 집계. 한국 주식과 미국 주식을 분리 합산하고 수익률 히트맵트리 활용 Apache ESchart • WHY: 보유 현황과 손익을 한 화면에서 빠르게 파악. • 성공 기준: 새 포트폴리오 생성~종목 1개 추가하거나 삭제하는데 2분 이내. 5. 데이터 수집 • WHAT: 외부 주식 API(yFinance)를 활용하여 데이터를 수집 • WHY: 외부 주식 API로 실시간 데이터 확보 • 성공 기준: 외부 API 호출결과 출력 (429 too many request 에러 나면 안됨)
- /speckit.specify
- 명확성
- /speckit.clarify 그냥 수행
# 중간에 기간 선택하라고 한 경우, 선택할 수 있는 옵션을 탭으로 제공하고, 클릭하면 그 기간에 맞게 그려주길 원해. 아래는 예시 { label: '5m', value: '5m_1d', interval: '5m', period: '5m' }, // 5분봉 1일 { label: 'H', value: '1h_1mo', interval: '1h', period: '1h' }, // 1시간봉 1개월 { label: 'D', value: '1d_3mo', interval: '1d', period: '1d' }, // 1일봉 3개월 { label: 'W', value: '1wk_2y', interval: '1wk', period: '1wk' }, // 1주봉 2년 { label: 'M', value: '1mo_5y', interval: '1mo', period: '1mo' } // 1월봉 5년 yfinace.download에 따르면, Date Open High Low Close Adj Close Volume 이 순서대로 값이 들어와서 캔들차트를 그릴 수 있을거야.
- /speckit.clarify 그냥 수행
- 계획
- /speckit.plan
Follow instructions in speckit.plan.prompt.md. • 개발: 인프라 IaC, 프론트엔드, 백엔드, DB(MySQL), 가상환경에서 각각 필요한 리소스 및 패키지 정의 및 실행 • 인프라: Azure 100% 활용 • 프론트엔드: Vue3 + Tabler(Dashboard) + ECharts(Chart) -> 정적 배포 • 백엔드: python3 + FastAPI -> Azure Container Apps 로 배포 • DB: Azure MySQL 8.0 (Standard_B2s), 테스트 환경은 가상 환경에 MySQL 8.0으로 배포하여 테스트 • 실시간 시세: https://github.com/ranaroussi/yfinance API 활용하여 백엔드 API에서 호출하며 DB에 저장 • 인증: 이메일 + 패스워드 기반의 user 테이블 활용 • 데이터 모델 설계: 포트폴리오 테이블, 보유종목 테이블, 즐겨찾기 테이블, 사용자 테이블, 뉴스 테이블 (yfinance 스키마 호환)
- /speckit.plan
- Task 생성
- /speckit.task 요청하면 아래와 같이 스스로 만듬. 이건 상황에 따라 다름
✅ Phase 2 Implementation Tasks 생성 완료 생성된 작업 요약 총 19개 작업을 6개 카테고리로 구성했습니다: Phase 2A: Infrastructure & Database (2 tasks) INFRA-001: 로컬 개발 환경 설정 (2시간) DB-001: 데이터베이스 스키마 구현 (4시간, Alembic 마이그레이션 6개) Phase 2B: Backend API Development (5 tasks) BACKEND-001: FastAPI 핵심 인프라 (6시간) BACKEND-002: 인증 API (6시간, FR-001/FR-002) BACKEND-003: 워치리스트 API (8시간, FR-003~FR-006) BACKEND-004: 주식 데이터 API (12시간, FR-007~FR-010, yfinance 통합) BACKEND-005: 포트폴리오 API (10시간, FR-013~FR-019) Phase 2C: Frontend Development (5 tasks) FRONTEND-001: Vue3 프로젝트 설정 & 라우팅 (4시간) FRONTEND-002: 로그인/회원가입 페이지 (6시간) FRONTEND-003: 워치리스트 페이지 (10시간, User Story 1) FRONTEND-004: 주식 상세 페이지 (12시간, User Story 2, ECharts) FRONTEND-005: 포트폴리오 페이지 (12시간, User Story 3) Phase 2D: Testing & Quality Assurance (2 tasks) TEST-001: 백엔드 통합 테스트 (8시간, Docker Compose) TEST-002: 프론트엔드 E2E 테스트 (8시간, Cypress/Playwright) Phase 2E: Deployment & DevOps (1 task) DEPLOY-001: Azure 인프라 구축 (10시간, Bicep IaC + CI/CD) Phase 2F: Documentation & Handoff (4 tasks) DOC-001: API 문서화 & Postman 컬렉션 (4시간) DOC-002: 배포 가이드 & 운영 런북 (4시간) 주요 특징 명확한 의존성 그래프: 작업 간 의존성을 명시하여 병렬 개발 가능 Constitution 준수: 모든 작업에 5가지 원칙 체크리스트 포함 성능 목표 명시: <200ms, <1s, <3s, <2min 타겟 포함 상세한 체크리스트: 각 작업마다 세부 단계 리스트 Acceptance Criteria: 완료 기준 명확히 정의 예상 소요 시간 총 예상 시간: 80-100시간 1명 개발자 기준: 2-3주 병렬 개발 가능: Backend + Frontend 동시 진행 시 1.5-2주
- /speckit.task 요청하면 아래와 같이 스스로 만듬. 이건 상황에 따라 다름
- 원칙 정의
주의할 점: yfinance API는 Azure 환경에 들어가면 거의 429 too many request 에러가 발생한다. 유료 stock app을 써야할 수 있다. 그래서 유료 API로 코드 전환 하려다가 참음.

