⚠️ 시점 고정 초안 (2026-05-09 작성) — Stage 0a 사전 검토 단계 산출물. 이후 결정으로 일부 항목 폐기, 본문은 변경하지 않고 배너로 정정:
- OCR 미사용 (DECISIONS 2026-05-11) — 앱 내장 OCR 안 함. 폰 OS(iOS Live Text·구글렌즈) + 클립보드 붙여넣기로 대체.
ML Kit불사용. 본문의 “사진 OCR / ML Kit /features/ocr/폴더 / OCR 한국어 정확도 위험” 같은 표현은 모두 옛 계획.- AI·LLM 미사용 (status-report 2026-05-17 “반패턴: AI 단어 일절 미사용”) — V1.0 출시 패키지 어디에도 AI 단어 없음. Fable AI 사고를 반면교사 삼음. 본문 “AI(Claude API)로 차별화 / AI 추천·요약·대화 / V2에서 AI 추천” 같은 표현도 현재 설계에서 폐기.
- 현재 설계는
docs/DECISIONS.md(결정 대장) +docs/STAGES.md“▶ 다음 세션 시작점” +docs/design/screens/*.md(화면 명세) 를 우선 신뢰. 본 PLAN.md는 초기 사고의 흔적으로만 보존.
사용자는 현대오토에버에서 지도데이터 구축 앱/웹/서버/DB를 개발하는 폴리글랏 백엔드 엔지니어이며, 이전에 주식 자동매매 앱을 만든 경험이 있다. 첫 본격 모바일 프로젝트로 “수익 가능성”을 가진 것을 만들고 싶고, 시간을 충분히 들여 고득하게 완성하기를 원한다.
여러 카테고리(AI 유틸/게임/운세/재무 코치 등)를 검토한 결과 다음 방향이 결정됐다:
이 방향이 선정된 이유:
한 줄: 책의 좋은 구절을 사진 한 장으로 저장하고, 예쁜 카드로 만들어 친구·SNS에 공유하는 앱.
핵심 사용 흐름 (가장 자주 일어날 동작):
바이럴 루프: 사용자가 만든 카드에 자연스럽게 앱 워터마크/링크가 붙음 → 단톡방·스토리 공유로 비제로 비용 유저 유입.
V1은 “혼자 인용구를 모으고 카드로 만드는 도구” 기능을 먼저 완성하고, 그 위에 소셜 레이어를 얹는다. 소셜이 빈약해도 솔로 도구로서 쓸 수 있어야 한다 (cold start 문제 방어).
V1에 포함:
V1에서 제외 (V2 이후):
| 영역 | 추천 | 이유 / 대안 |
|---|---|---|
| 모바일 프론트 | Expo (React Native) + TypeScript | 사용자 TS 경험 직접 활용, Expo Go로 폰에서 즉시 테스트, Mac 불필요. 대안: Flutter (성능·UI 강점이지만 Dart 학습 필요) |
| 백엔드/DB/Auth/Storage | Supabase (V1) | Postgres + Auth + Storage + Realtime을 솔로 개발자가 한 번에. 본인 백엔드 강점은 V2에서 자체 백엔드로 옮길 때 활용. 대안: FastAPI(Python) + Postgres 직접 |
| 도서 메타데이터 | 알라딘 OpenAPI (한국 도서 풍부) | 교보문고 API 보조. 글로벌 확장 시 Google Books |
| OCR (인용구 추출) | ML Kit (on-device) | 무료, 오프라인, 한국어 지원. 사용자가 결과 텍스트 편집 가능하게 UX 설계하므로 100% 정확도 불필요 |
| 이미지 카드 렌더링 | react-native-skia 또는 react-native-view-shot | 카드 디자인 편집기 + 이미지 export |
| 푸시 알림 | Expo Push Notifications | V2에서 Readwise식 “다시 보기” 알림용 |
| 분석 | PostHog (free tier) 또는 Amplitude | retention·funnel 추적, V1부터 필수 |
| AI (V2) | Claude API | 인용구 요약, 책 추천, 대화. 사용자가 이미 헤비 유저 |
Goodreads / 북적북적 / Readwise 대비:
코드 한 줄 쓰기 전에 검증해야 할 것들. 이 단계에서 신호가 약하면 컨셉을 피벗하거나 폐기할 수 있어야 한다. 솔로 개발자가 만들고 안 팔리는 가장 흔한 이유는 이 단계 생략이다.
1. 잠재 사용자 인터뷰 (5명, 각 30분)
연 5–20권 읽는 지인 5명에게 (질문하되 답을 유도하지 않기):
검증 신호:
2. 경쟁 제품 직접 써보기 (1주씩)
체크리스트:
3. 인스타 #책스타그램 카드 분석 (30개)
인기 게시물 30개를 보고: 어떤 디자인이 좋아요 많이 받는지, 폰트·색·레이아웃 공통점, 직접 만든 사람의 작업 방법(캡처+편집 앱?).
4. 사전등록 랜딩 페이지 (1주 측정)
매우 단순한 페이지(앱 한 줄 설명 + 메일 수집)를 본인 인스타·X·블로그에 공유. 1주 안에 사전등록 50명 이상이면 약한 PMF 신호.
5. Wizard of Oz (선택)
본인이 손으로 인용구 카드를 Figma·Canva로 만들어 친구 5명에게 단톡방으로 공유 → 친구가 다시 단톡방·스토리에 올리는지 관찰. 자연스럽게 일어나면 바이럴 가능성 신호.
| 리스크 | 완화 |
|---|---|
| 책 인용구 사진의 OCR 한국어 정확도 | OCR 결과를 사용자가 즉시 편집할 수 있는 UX (인용구 카드 만들기 직전 텍스트 편집 단계 필수). 즉, 정확도 100%를 전제로 하지 않는 워크플로 자체가 해법 |
| 출판사 저작권 (인용구 공유) | 짧은 인용구는 인용권 인정 범위 내. 공식 가이드 작성하고 전문 인용 길이 제한 (예: 500자) 고려 |
| Cold start (친구가 없으면 재미 없음) | 소셜 없이도 솔로 도구로 가치 있게 설계 (내 서재·카드 생성 자체가 가치) |
| Goodreads/북적북적과 직접 경쟁 | 정면 경쟁 X. “리뷰”가 아니라 “인용구 카드” 한 가지에 집중 → Letterboxd가 IMDB와 다른 결로 자리잡은 패턴 |
| 솔로 개발자의 디자인 부담 | V1 카드 템플릿 3–5개로 한정. 인스타 인기 글 디자인 분석 후 모방 |
Stage 0a — Validation (2–3주) → “Validation” 섹션 참조
Stage 0b — UX & Design (1–2주) → “UX & Design” 섹션 참조
Stage 1 — 기반 (3–4주)
Stage 2 — 인용구 입력 (2–3주)
Stage 3 — 카드 (3–4주) ← 가장 공들일 부분
Stage 4 — 소셜 레이어 (2–3주)
Stage 5 — 출시 (1–2주)
총 14–21주 (3.5–5개월). 사용자가 “서두르지 않고 고득하게”를 원했으므로 무리 없는 페이스. Validation·Design 단계가 늘어났지만 그만큼 코딩 단계의 헛걸음이 줄어든다.
이 앱의 핵심 차별화는 “카드 디자인 품질”이므로 코딩 전 디자인을 진지하게 잡는다.
작업 분담:
oh-my-claudecode:designer 스킬 활용) — 비주얼 디자인, 카드 템플릿, 디자인 시스템 생성1. 사용자 페르소나 (1–2명)
예시:
민지, 28세, 마케터. 출퇴근 지하철 1시간 동안 종이책 읽음. 좋은 구절 만나면 책에 포스트잇 붙이거나 캡처. 인스타에 책 사진 가끔 올림. 친구 4–5명과 자주 책 추천 주고받음. 비싼 구독은 부담스럽지만 월 4,900원 정도는 OK.
2. 핵심 시나리오 5개 (Job-to-be-Done)
각각 step-by-step:
3. 화면 흐름도 (7–10개 핵심 화면)
Figma 또는 종이로:
4. 디자인 영감 보드
5. 카드 템플릿 5개 정밀 디자인 (3–5일)
이 앱의 핵심이므로 별도로 시간 투입.
각 템플릿마다 폰트·색·여백 토큰을 변수화해서 사용자 미세 조정 가능하게.
이 프로젝트는 그린필드이므로 신규 작성이다. 작업 디렉터리는 C:\GIT\ 하위 새 폴더에 생성 (예: C:\GIT\quotes-app).
초기 구조 (Expo 가정):
C:\GIT\quotes-app\
├── app\ # Expo Router 화면들
│ ├── (auth)\login.tsx
│ ├── (tabs)\index.tsx # 타임라인
│ ├── (tabs)\library.tsx # 내 서재
│ └── book\[id].tsx
├── components\
│ ├── card\ # 카드 렌더링·템플릿
│ ├── ocr\ # OCR UI
│ └── book-search\
├── lib\
│ ├── supabase.ts
│ ├── aladin.ts # 알라딘 API 클라이언트
│ └── ocr.ts
├── supabase\
│ └── migrations\ # DB 스키마
└── package.json
DB 스키마 핵심 테이블:
users (Supabase Auth 연동)books (ISBN, 제목, 저자, 표지 URL, 출판사)quotes (book_id, user_id, text, page, image_url, created_at)cards (quote_id, template, design_json)follows (follower_id, following_id)1. 가격 정책
2. 출시 채널
3. 마케팅 플랜 (예산 ≈ 0)
4. KPI / North Star Metric
5. 출시 직전 6주 액션 캘린더
이 플랜은 본인이 메인 작업자로 진행하는 마스터 플랜이다. 작업 일부는 별도 Claude 세션에 위임한다:
oh-my-claudecode:designer): 카드 템플릿, 디자인 시스템, 비주얼 디자인. 이 세션에서 만든 페르소나·시나리오·레퍼런스를 입력으로 사용