/speckit.constitution
# 프로젝트 원칙을 만들어줘. - 코드 품질: 간결하고 읽기 쉬운 코드로 주석은 함수 단위로 간결하게 기록 - 테스트: 외부 API 막히지 않도록 잦은 반복 요청 자제하고 최대 1번 동작 가능 여부 테스트 - 테스트 환경: 최종 Azure 클라우드 서비스에 배포하는 것을 고려 - 사용자 경험: 직관적이고 빠른 인터페이스 - 성능: 불필요한 라이브러리 사용 금지, 최소한의 의존성으로 구현
/speckit.specify
# 나의 관심 주식을 모아 주는 주식 앱을 만들어줘. 1. 사용자별로 개인화된 정보를 저장해야함 (관심종목, 뉴스, 포트폴리오) 2. 관심종목(워치리스트) • WHAT: 심볼 검색→워치리스트 추가/삭제. 정렬·그룹·간단 지표 표시. • WHY: 자주 보는 종목을 빠르게 모아봄 • 성공 기준: 워치리스트 추가 후 3초 내 카드에 현재가/변동률 표시. 3. 시세 보기 • WHAT: 종목 상세에서 현재가/일 변동률/거래량/장상태(장중/마감) 표시. 준실시간임=일 단위로 표시 • WHY: 과도한 갱신 없이 핵심 정보만 명확히. 상세 시세의 경우 일단위의 Sparkline 캔틀 차트로 표시 • 성공 기준: 95%의 조회가 1초 내 결과 노출(체감 기준). 4. 포트폴리오/보유종목 • WHAT: 로그인 사용자가 포트폴리오를 생성하고 종목(symbol, 수량, 평균단가)을 CRUD. 총평가·손익·수익률 집계. • WHY: 보유 현황과 손익을 한 화면에서 빠르게 파악. • 성공 기준: 새 포트폴리오 생성~종목 1개 추가하거나 삭제하는데 2분 이내. 5. 데이터 수집 • WHAT: 외부 주식 API를 활용하여 데이터를 수집하지만, 다른 사용자가 같은 ticker를 호출할 때를 대비하여 5분간은 DB에 캐싱으로 저장해둔 데이터를 꺼내가도록 함 • WHY: 외부 주식 API가 빈번한 호출에 의해서 막히는 것을 방지하기 위함 • 성공 기준: 티커로 주식 정보를 요청할 경우 최근 5분 이내 호출한 주식 정보는 바로 DB에서 꺼내 사용하고, 그렇지 않을 경우에 외부 API 호출하도록 함
/speckit.clarify 그냥 수행
중간에 기간 선택 옵션시 선택할 수 있는 옵션을 탭으로 제공하고, 클릭하면 그 기간에 맞게 그려주길 원해. 30m - 2d 1h - 1wk 1d - 6m 1wk - 2y 1mo - 7y yfinace.download에 따르면, Date Open High Low Close Adj Close Volume 이 순서대로 값이 들어와서 캔들차트를 그릴 수 있을거야.
/speckit.clarify 그냥 수행
Follow instructions in speckit.plan.prompt.md. • 개발: 인프라 IaC, 프론트엔드, 백엔드, DB(sql) 디렉토리 구분, 가상환경에서 각각 필요한 리소스 및 패키지 정의 및 실행 • 인프라: Azure 100% 활용 • 프론트엔드: Vue3 + Tabler(Dashboard) + ECharts(Chart) -> Blob Storage에 정적 배포 • 백엔드: 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 스키마 호환)
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주