{
  "version": 2,
  "questions": [
    {
      "id": "1",
      "label": "프로젝트 목적",
      "description": "이 프로젝트를 왜 만드는지 주 목적을 정합니다.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "포트폴리오",
          "description": "GitHub 공개, 블로그/면접에서의 노출이 주 목적",
          "pros": ["완성도/노출 강조", "릴리스 노트·README 정성"],
          "cons": ["완성도 압박", "범위 폭주 위험"]
        },
        {
          "id": "B",
          "label": "실사용 도구 (dogfooding)",
          "description": "본인의 다음 프로젝트부터 실제로 사용",
          "pros": ["피드백 루프 빠름", "범위가 자연히 작게 유지"],
          "cons": ["공개 품질 신경 덜 씀"]
        },
        {
          "id": "C",
          "label": "학습",
          "description": "방법론 자체를 이해하는 게 목적",
          "pros": ["과정 중심", "중간 폐기 OK"],
          "cons": ["지속 동기 약함"]
        }
      ]
    },
    {
      "id": "2",
      "label": "도메인 카테고리",
      "description": "이 프로젝트가 속하는 큰 카테고리.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "개발자 도구 / CLI",
          "description": "터미널 도구, 스크립트, 빌드/마이그레이션 유틸",
          "pros": ["범위 명확", "배포 단순"],
          "cons": ["사용자가 개발자 한정"]
        },
        {
          "id": "B",
          "label": "SaaS / 웹 서비스",
          "description": "로그인, 다중 사용자, 대시보드",
          "pros": ["수익화 경로 명확"],
          "cons": ["인프라·인증 복잡"]
        },
        {
          "id": "C",
          "label": "AI / RAG 플랫폼",
          "description": "문서 업로드 + LLM 응답 형태",
          "pros": ["AI 트렌드 부합"],
          "cons": ["LLM 비용·비결정성"]
        }
      ]
    },
    {
      "id": "3",
      "label": "사용자 — 누가 쓰는가",
      "description": "공개 범위에 따라 문서/릴리스 부담이 달라집니다.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "본인만 (private)",
          "description": "비공개. README 최소, 릴리스 생략",
          "pros": ["의사결정 빠름"],
          "cons": ["포트폴리오 활용 불가"]
        },
        {
          "id": "B",
          "label": "본인 + 지인 (소규모 OSS)",
          "description": "GitHub public + 기본 README/CONTRIBUTING",
          "pros": ["포트폴리오 가치 확보"],
          "cons": ["피드백 루프 작음"]
        },
        {
          "id": "C",
          "label": "광범위 오픈소스",
          "description": "풀 README, 기여 가이드, 이슈 템플릿",
          "pros": ["최대 노출"],
          "cons": ["유지보수 부담 ↑"]
        }
      ]
    },
    {
      "id": "4",
      "label": "백엔드 스택",
      "description": "주 구현 언어/프레임워크.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "Java / Spring Boot",
          "description": "엔터프라이즈 관례, 풍부한 생태계",
          "pros": ["계층 분리 자연스러움", "성능 안정"],
          "cons": ["기동 느림", "보일러플레이트"]
        },
        {
          "id": "B",
          "label": "Python / FastAPI",
          "description": "AI/ML 친화, 빠른 개발",
          "pros": ["타입 힌트", "문서 자동"],
          "cons": ["런타임 타입 약함"]
        },
        {
          "id": "C",
          "label": "TypeScript / Node.js",
          "description": "commander (CLI) / NestJS (SaaS)",
          "pros": ["프론트와 언어 통일", "npm 생태계"],
          "cons": ["시작 느림"]
        },
        {
          "id": "D",
          "label": "Go (단일 바이너리)",
          "description": "cobra 기반 CLI 또는 net/http 서버",
          "pros": ["배포 깔끔", "성능"],
          "cons": ["템플릿 보일러플레이트"]
        }
      ]
    },
    {
      "id": "5",
      "label": "프론트엔드 스택",
      "description": "사용자 인터페이스 전략.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "없음 (CLI / 백엔드 전용)",
          "description": "터미널/API 만, 웹 UI 없음",
          "pros": ["구현 단순", "테스트 쉬움"],
          "cons": ["일반 사용자 접근 어려움"]
        },
        {
          "id": "B",
          "label": "Next.js (React)",
          "description": "App Router, 풀스택 가능",
          "pros": ["가장 풍부한 생태계"],
          "cons": ["빌드 시간 ↑"]
        },
        {
          "id": "C",
          "label": "기타 SSR (SvelteKit / Remix / Astro)",
          "description": "Next.js 외 SSR/MPA 프레임워크",
          "pros": ["가벼움", "단순함"],
          "cons": ["생태계 작음"]
        }
      ]
    },
    {
      "id": "6",
      "label": "DB / 상태 저장",
      "description": "이 도구가 상태를 어디에 보관하는지.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "없음 (stateless)",
          "description": "파일 시스템만, 패키지 번들 리소스",
          "pros": ["설치/제거 깔끔"],
          "cons": ["이력/통계 없음"]
        },
        {
          "id": "B",
          "label": "PostgreSQL",
          "description": "관계형 DB, pgvector 가능",
          "pros": ["풍부한 기능", "AI 친화 (pgvector)"],
          "cons": ["운영 복잡도"]
        },
        {
          "id": "C",
          "label": "SQLite (로컬 파일)",
          "description": "단일 파일 DB, 임베디드",
          "pros": ["배포 단순", "테스트 쉬움"],
          "cons": ["동시성 제한"]
        }
      ]
    },
    {
      "id": "7",
      "label": "외부 의존성",
      "description": "네트워크/외부 서비스 호출 여부.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "없음 (오프라인)",
          "description": "LLM/API/네트워크 호출 0건",
          "pros": ["속도 예측 가능", "테스트 쉬움"],
          "cons": ["기능 제한"]
        },
        {
          "id": "B",
          "label": "외부 REST API",
          "description": "GitHub, Stripe, Slack 등 SaaS 통합",
          "pros": ["기능 풍부"],
          "cons": ["인증/rate limit 처리"]
        },
        {
          "id": "C",
          "label": "LLM (OpenAI / Anthropic / Ollama)",
          "description": "자연어 처리, RAG, 챗봇",
          "pros": ["AI 능력 활용"],
          "cons": ["비용", "비결정성"]
        }
      ]
    },
    {
      "id": "8",
      "label": "배포 형태",
      "description": "사용자에게 어떻게 도달하는지.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "npm publish (라이브러리/CLI)",
          "description": "`npm i -g <pkg>` 로 설치",
          "pros": ["설정 1회", "release-please 자동화"],
          "cons": ["Node 런타임 전제"]
        },
        {
          "id": "B",
          "label": "Docker + 클라우드 (PaaS)",
          "description": "Vercel / Railway / Cloud Run / Heroku",
          "pros": ["인프라 추상화"],
          "cons": ["콜드 스타트", "비용"]
        },
        {
          "id": "C",
          "label": "단일 바이너리 (GitHub Releases)",
          "description": "Go/Rust 등 컴파일 결과 OS 별 배포",
          "pros": ["설치 단순", "런타임 불필요"],
          "cons": ["빌드 매트릭스"]
        }
      ]
    },
    {
      "id": "9",
      "label": "테스트 범위",
      "description": "회귀 방어 강도.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "단위 테스트만",
          "description": "service / matcher 순수 로직",
          "pros": ["빠른 피드백"],
          "cons": ["통합 회귀 못 잡음"]
        },
        {
          "id": "B",
          "label": "단위 + 골든 스냅샷",
          "description": "고정 입력 → 출력 diff",
          "pros": ["회귀 자동 차단", "리뷰 자료"],
          "cons": ["스냅샷 의도적 갱신 작업"]
        },
        {
          "id": "C",
          "label": "단위 + 골든 + E2E",
          "description": "실제 CLI 서브프로세스 실행 검증",
          "pros": ["최고 수준 보장"],
          "cons": ["CI 시간 ↑", "툴체인 부담"]
        }
      ]
    },
    {
      "id": "10",
      "label": "DB 특수 기능",
      "description": "관계형 단순 CRUD 인지, 벡터/문서지향 같은 특수 기능이 필요한지.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "표준 RDB (관계형, CRUD)",
          "description": "Postgres/MySQL/SQLite 의 일반적 사용",
          "pros": ["가장 범용", "툴/ORM 풍부"],
          "cons": ["벡터/그래프 등은 부적합"]
        },
        {
          "id": "B",
          "label": "벡터 DB (pgvector / Pinecone)",
          "description": "임베딩 기반 유사도 검색 필요",
          "pros": ["RAG 의 핵심", "의미 검색"],
          "cons": ["임베딩 차원 마이그레이션 부담"]
        },
        {
          "id": "C",
          "label": "NoSQL / 문서지향 (MongoDB 등)",
          "description": "스키마 유연 / 비정형 데이터",
          "pros": ["스키마 변경 쉬움"],
          "cons": ["관계 질의 약함"]
        },
        {
          "id": "D",
          "label": "해당 없음 (stateless)",
          "description": "DB 자체를 사용하지 않음",
          "pros": ["배포 단순"],
          "cons": ["이력/통계 없음"]
        }
      ]
    },
    {
      "id": "11",
      "label": "인증 전략",
      "description": "사용자 식별과 세션 관리 방식.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "통합 솔루션 (NextAuth / Clerk / Auth0)",
          "description": "검증된 라이브러리/SaaS 로 인증 위임",
          "pros": ["보안 검증됨", "OAuth 다수 지원"],
          "cons": ["벤더 락인 위험"]
        },
        {
          "id": "B",
          "label": "자체 구현 (JWT/OAuth from scratch)",
          "description": "직접 토큰/세션 관리",
          "pros": ["완전한 제어"],
          "cons": ["보안 결함 위험 ↑"]
        },
        {
          "id": "C",
          "label": "필요 없음",
          "description": "단일 사용자 도구 / 인증 불필요",
          "pros": ["복잡도 0"],
          "cons": ["멀티유저 불가"]
        }
      ]
    },
    {
      "id": "12",
      "label": "LLM 사용 범위",
      "description": "LLM 을 어떻게 쓰는가 — RAG, 단순 챗봇, 또는 전혀 안 씀.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "RAG (문서 검색 + LLM)",
          "description": "사용자 문서를 인덱싱하여 LLM 응답에 근거 제공",
          "pros": ["출처 추적 가능", "도메인 특화"],
          "cons": ["벡터 DB + 임베딩 인프라 필요"]
        },
        {
          "id": "B",
          "label": "단순 프롬프트 / 챗봇",
          "description": "LLM 호출만, 검색/그라운딩 없음",
          "pros": ["구현 단순"],
          "cons": ["환각 통제 어려움"]
        },
        {
          "id": "C",
          "label": "없음",
          "description": "LLM 미사용",
          "pros": ["비용/지연 없음"],
          "cons": ["AI 기능 불가"]
        }
      ]
    },
    {
      "id": "13",
      "label": "임베딩 provider",
      "description": "RAG/시맨틱 검색용 임베딩을 어디서 만드는가.",
      "allowFreeform": true,
      "options": [
        {
          "id": "A",
          "label": "로컬 (Ollama / 자체 모델)",
          "description": "온프레미스 또는 로컬 GPU/CPU",
          "pros": ["데이터 보안", "비용 0"],
          "cons": ["하드웨어 필요"]
        },
        {
          "id": "B",
          "label": "클라우드 (OpenAI / Cohere)",
          "description": "외부 API 호출",
          "pros": ["품질 안정", "운영 단순"],
          "cons": ["토큰 비용", "데이터 전송"]
        },
        {
          "id": "C",
          "label": "해당 없음",
          "description": "임베딩 미사용",
          "pros": ["복잡도 0"],
          "cons": ["시맨틱 검색 불가"]
        }
      ]
    }
  ]
}
