--- name: requirements-analyzer description: "**REQUIREMENTS ANALYZER** - '이런 거 만들고 싶어', '기능 정리', '뭐부터 만들어야', 'MVP 정의', '요구사항 분석', '기획서 분석' 요청 시 자동 발동. 자연어 아이디어를 기술 명세로 변환. MVP 분리, 우선순위 매트릭스, 의존성 그래프 제공." allowed-tools: - Read - Glob - Grep - Write --- # Requirements Analyzer Skill v1.0 **요구사항 분석 마스터** - 비개발자의 아이디어를 실행 가능한 명세로 변환 ## 핵심 철학 ```yaml Core_Philosophy: 원칙: "작은 것부터, 작동하는 것부터" 목표: "막연한 아이디어를 구체적인 개발 태스크로 변환" 핵심_가치: - MVP First - 최소 기능부터 완성 - 의존성 파악 - 순서 명확화 - 복잡도 경고 - 위험 요소 사전 인지 - 점진적 확장 - 단계별 로드맵 ``` ## 자동 발동 조건 ```yaml Auto_Trigger_Conditions: Keywords_KO: - "이런 거 만들고 싶어", "이런 앱 만들고 싶어" - "기능 정리해줘", "요구사항 정리" - "뭐부터 만들어야", "어디서부터 시작" - "MVP 정의", "최소 기능" - "기획서 분석", "PRD 분석" - "스펙 정리", "명세 작성" Keywords_EN: - "I want to build", "create an app" - "feature list", "requirements analysis" - "MVP definition", "minimum viable" - "PRD analysis", "spec document" File_Triggers: - "기획서, PRD, 요구사항 문서 업로드 시" - "아이디어 설명 시" ``` ## 선택적 문서 로드 전략 ```yaml Document_Loading_Strategy: Always_Load: - "core/mvp-framework.md" - "core/priority-matrix.md" Context_Specific_Load: Web_App: "templates/web-app.md" Mobile_App: "templates/mobile-app.md" SaaS: "templates/saas.md" E_Commerce: "templates/ecommerce.md" ``` ## 분석 프레임워크 ### 1. 기능 추출 (Feature Extraction) ```yaml Process: Step_1_아이디어_파싱: 입력: "인스타그램 같은 사진 공유 앱을 만들고 싶어" 출력: 핵심_키워드: ["사진", "공유", "소셜"] 유사_서비스: ["Instagram", "Pinterest"] 암묵적_기능: ["사용자 계정", "피드", "좋아요"] Step_2_기능_목록화: 방법: "동사 + 명사 조합으로 기능 정의" 예시: - "사용자가 회원가입한다" - "사용자가 사진을 업로드한다" - "사용자가 다른 사용자를 팔로우한다" - "사용자가 피드를 본다" - "사용자가 좋아요를 누른다" Step_3_기능_분류: 카테고리: 인증: ["회원가입", "로그인", "로그아웃"] 콘텐츠: ["업로드", "조회", "삭제"] 소셜: ["팔로우", "좋아요", "댓글"] 알림: ["푸시", "이메일"] ``` ### 2. MVP 분리 (MVP Separation) ```yaml MVP_Criteria: 포함_기준: - 서비스의 핵심 가치를 전달하는 기능 - 없으면 서비스가 성립하지 않는 기능 - 사용자가 가장 먼저 필요로 하는 기능 제외_기준: - "있으면 좋지만" 수준의 기능 - 복잡도가 높은 기능 - 다른 기능에 의존하는 고급 기능 MVP_Template: Must_Have: 정의: "없으면 서비스 불가능" 예시: "로그인, 핵심 CRUD" Should_Have: 정의: "MVP 직후 필요" 예시: "프로필 편집, 검색" Could_Have: 정의: "있으면 좋음" 예시: "소셜 로그인, 알림" Wont_Have: 정의: "나중에 고려" 예시: "AI 추천, 다국어 지원" ``` ### 3. 우선순위 매트릭스 (Priority Matrix) ```yaml Priority_Calculation: 공식: "우선순위 = (중요도 × 0.4) + (긴급도 × 0.3) + (난이도_역수 × 0.3)" 중요도_기준: 5점: "핵심 가치, 없으면 서비스 불가" 4점: "중요한 사용자 경험" 3점: "편의 기능" 2점: "있으면 좋은 기능" 1점: "부가 기능" 긴급도_기준: 5점: "MVP 필수" 4점: "1차 릴리즈 필요" 3점: "2차 릴리즈" 2점: "추후 고려" 1점: "언젠가" 난이도_기준: 1점: "1-2시간 (쉬움)" 2점: "반나절 (보통)" 3점: "1-2일 (어려움)" 4점: "1주일 (복잡)" 5점: "2주일+ (매우 복잡)" Matrix_Output: | 기능 | 중요도 | 긴급도 | 난이도 | 점수 | 순위 | |------|--------|--------|--------|------|------| | 로그인 | 5 | 5 | 2 | 4.5 | 1 | | 게시글 CRUD | 5 | 5 | 2 | 4.5 | 2 | | 댓글 | 4 | 3 | 2 | 3.2 | 3 | ``` ### 4. 의존성 그래프 (Dependency Graph) ```yaml Dependency_Analysis: 규칙: - "A를 하려면 B가 먼저 있어야 한다" - "순환 의존성 탐지 및 경고" 예시: 기본_레이어: - "사용자 인증 (모든 것의 기반)" - "데이터베이스 스키마" 2차_레이어: - "프로필 (인증 필요)" - "게시글 CRUD (인증 필요)" 3차_레이어: - "댓글 (게시글 필요)" - "좋아요 (게시글 필요)" - "팔로우 (프로필 필요)" 4차_레이어: - "피드 (팔로우 필요)" - "알림 (좋아요, 댓글 필요)" Dependency_Graph_Visual: | 인증 ──────────────────────────────────┐ │ │ ├── 프로필 ─── 팔로우 ─── 피드 │ │ │ └── 게시글 ─┬─ 댓글 ─────┬── 알림 │ │ │ │ └─ 좋아요 ───┘ │ │ DB 스키마 ────────────────────────────┘ ``` ### 5. 복잡도 경고 (Complexity Warning) ```yaml Warning_Triggers: High_Complexity: - "실시간 채팅" → "WebSocket 구현 필요, 복잡도 높음" - "결제 시스템" → "보안 중요, PG 연동 필요" - "파일 업로드" → "스토리지 비용, 용량 관리 필요" - "위치 기반" → "GPS 권한, 지도 API 비용" - "AI/ML 기능" → "모델 학습/추론 인프라 필요" Hidden_Complexity: - "소셜 로그인" → "각 플랫폼 개발자 등록 필요" - "이메일 발송" → "스팸 필터, 발송 제한" - "검색 기능" → "대용량 시 성능 문제" - "다국어 지원" → "번역 관리, UI 조정" Warning_Format: feature: "실시간 채팅" complexity: "높음" reason: "WebSocket 서버 필요, 동시 접속 관리" alternative: "먼저 비실시간 메시지로 시작 권장" mvp_recommendation: "MVP에서 제외" ``` ## 출력 템플릿 ### 요구사항 분석 결과 ```markdown ## 📋 요구사항 분석 결과 ### 프로젝트 개요 - **프로젝트명**: [이름] - **한 줄 설명**: [설명] - **유형**: 웹앱 / 모바일앱 / SaaS - **타겟 사용자**: [대상] --- ### 🎯 MVP 기능 (1차 개발) **핵심 가치**: [서비스의 핵심 가치 한 문장] | 순위 | 기능 | 설명 | 난이도 | 예상 시간 | |-----|------|------|--------|----------| | 1 | 사용자 인증 | 이메일 회원가입/로그인 | 쉬움 | 4시간 | | 2 | 게시글 CRUD | 작성, 조회, 수정, 삭제 | 보통 | 8시간 | | 3 | 기본 UI | 메인 페이지, 목록 | 쉬움 | 6시간 | **MVP 예상 개발 기간**: 약 X일 --- ### 📅 2차 기능 (MVP 이후) | 기능 | 의존성 | 난이도 | 우선순위 | |------|--------|--------|----------| | 댓글 | 게시글 | 보통 | 높음 | | 좋아요 | 게시글 | 쉬움 | 높음 | | 프로필 수정 | 인증 | 쉬움 | 중간 | --- ### 📅 3차 기능 (확장) | 기능 | 의존성 | 난이도 | 우선순위 | |------|--------|--------|----------| | 알림 | 댓글, 좋아요 | 어려움 | 중간 | | 검색 | 게시글 | 보통 | 중간 | | 소셜 로그인 | 인증 | 보통 | 낮음 | --- ### 🔗 의존성 그래프 ``` 인증 (기반) ├── 프로필 → 팔로우 → 피드 └── 게시글 → 댓글, 좋아요 → 알림 ``` --- ### ⚠️ 복잡도 경고 | 기능 | 경고 수준 | 이유 | 권장 | |------|----------|------|------| | 실시간 채팅 | 🔴 높음 | WebSocket 필요 | MVP 이후 | | 결제 | 🔴 높음 | PG 연동, 보안 | MVP 이후 | | 파일 업로드 | 🟡 중간 | 스토리지 비용 | 용량 제한 | --- ### ✅ 다음 단계 1. **기술 스택 결정** → tech-stack-advisor 활용 2. **프로젝트 구조 설계** → project-architect 활용 3. **MVP 개발 시작** → 위 순서대로 진행 --- ### 📊 개발 로드맵 | 단계 | 기능 | 예상 기간 | |------|------|----------| | MVP | 인증, CRUD, 기본 UI | 1주 | | v1.1 | 댓글, 좋아요 | 3일 | | v1.2 | 프로필, 검색 | 3일 | | v2.0 | 알림, 소셜 로그인 | 1주 | ``` ## Quick Commands | 명령 | 동작 | |-----|------| | req analyze | 아이디어를 요구사항으로 분석 | | req mvp | MVP 기능만 추출 | | req priority | 우선순위 매트릭스 생성 | | req deps | 의존성 그래프 생성 | | req roadmap | 개발 로드맵 생성 | ## 체크리스트 ```markdown ## 요구사항 분석 체크리스트 ### 기능 완전성 [ ] 핵심 가치가 명확한가? [ ] MVP로 서비스 가치를 전달할 수 있는가? [ ] 누락된 필수 기능이 없는가? ### 우선순위 [ ] 의존성 순서가 맞는가? [ ] 복잡한 기능이 MVP에 포함되지 않았는가? [ ] 각 기능의 난이도가 현실적인가? ### 실현 가능성 [ ] 팀 역량으로 구현 가능한가? [ ] 예상 기간이 현실적인가? [ ] 기술적 제약이 파악되었는가? ``` --- **Version**: 1.0.0 **Dependencies**: project-architect, tech-stack-advisor **Quality Target**: 아이디어를 실행 가능한 태스크로