Grovarc 개발기 #1 — Claude와 함께 PRD를 작성했다

새 프로젝트를 시작할 때마다 같은 실수를 반복했다. 코드부터 짜고, 나중에 “이게 뭐가 되는 거지?”를 깨닫는 것. 이번엔 코드 한 줄 짜기 전에 왜 만드는지를 먼저 명확히 하고 싶었다. Claude와 대화하면서 PRD를 작성하고, 레포 구조를 세팅했다.


목표

  • Claude와 대화 기반으로 PRD 초안 완성
  • Grovarc 모노레포 초기 구조 세팅

핵심 구현 포인트

1) 서비스 이름 — Grovarc

이름을 정하는 게 생각보다 오래 걸렸다. 짧고 감성적이면서 도메인도 구매 가능해야 했다.

Reflekt, Growi, Lumio 같은 이름들은 전부 이미 선점된 상태였다. 방향을 바꿔서 키워드 조합으로 접근했다.

  • 성장 → Grow, Arc
  • 기록 → Log, Mark
  • 공간 → Space, Grove

Grovarc — Grow(성장) + Arc(성장 곡선). grovarc.dev 도메인 사용 가능 확인.

2) 핵심 문제 정의

Claude가 던진 질문이 핵심을 찔렀다.

“왜 이 서비스를 만드는 가장 개인적인 이유가 뭐예요?”

내 답은 간단했다. 처음부터 끝까지 모든 걸 혼자 하는 프로젝트를 만들고 싶어서.

거기서 타겟 유저와 핵심 문제가 자연스럽게 나왔다.

뭘 했는지 기억이 안 남

회고를 쓰고 싶은데 시작이 막막함

성장하고 있는지 체감이 안 됨

열심히 하는데 쌓이는 느낌이 없음

개발자는 매일 성장하지만 기록하지 않아서 자신의 성장을 인식하지 못한다.

3) MVP 기능 우선순위 (MoSCoW)

기능이 많아질수록 뭐가 핵심인지 흐려진다. MoSCoW 기법으로 정리했다.

Must Have   → 작업 로그 입력, AI 주간 회고 자동 생성, 기술 성장 시각화 차트
Should Have → 유사 패턴 검색 (RAG), 성장 코칭 Agent
Could Have  → 월간 리포트 공유, MCP 서버
Won't Have  → 팀 협업, 소셜 피드, 모바일 앱

4) 모노레포 구조 세팅

서비스가 4개(web, api, ai, mcp)라 모노레포로 관리하기로 했다.

grovarc/
├── apps/
   ├── web/      # Next.js 프론트엔드
   ├── api/      # Kotlin Spring Boot
   ├── ai/       # Python FastAPI AI 서버
   └── mcp/      # TypeScript MCP 서버
├── infra/
   ├── terraform/
   └── k8s/
├── docs/
   ├── PRD.md
   └── adr/
└── CLAUDE.md     # 컨텍스트 복원 파일

CLAUDE.md는 Cursor / Claude Code에서 프로젝트 컨텍스트를 즉시 복원하기 위한 파일이다. 어느 환경에서 열어도 지금까지의 결정과 진행 상황을 파악할 수 있다.


트러블슈팅 / 고민 포인트

멀티레포 vs 모노레포

  • 원인: CastCanvas Lab은 멀티레포로 했는데, 서비스가 4개인 Grovarc에도 같은 방식을 적용할지 고민됨
  • 해결: 1인 프로젝트에서 4개 서비스를 오가며 개발할 때 모노레포가 컨텍스트 전환 비용이 훨씬 낮다고 판단. CLAUDE.md 하나로 전체 관리 가능한 것도 장점

결과

  • docs/PRD.md 작성 완료 (Why, 타겟 유저, KPI, MoSCoW, 유저 스토리, 마일스톤)
  • GitHub 레포 grovarc 모노레포 구조 세팅 완료
  • CLAUDE.md 작성 완료 — 어느 환경에서든 컨텍스트 복원 가능

다음 개선 아이디어

  • 유저 플로우 & DB 스키마 초안 작성
  • API 명세 초안 작성 (Swagger 기반)
  • Phase 1 인프라 세팅 시작 (Terraform, Kubernetes)