📑 이 챕터에서 다룰 내용
권1 제0장에서 빈 5파일 + Position C 첫 인식 LogOnTable이 박혔습니다. 이제 5파일+ 사이클의 단계 ① SPEC v1 작성 (1탄 v2 새 4장 4-1) 입니다.
| 📚 사전 지식 체크 | 🎯 이 장의 목적 | ✅ 완료 후 결과물 |
|---|---|---|
| 권1 제0장 / 1탄 v2 새 5장 SPEC.md 작성법 + 2탄 v2 권1 제1장 사례 인지 | TSV SPEC v1 — 7항목 + 4 페르소나 + Day 14 가설 검증 게이트 예고 + Position C 인식 (E1 본격 권1 제3장) | SPEC.md v1 (8~10KB, 의도적으로 불완전 5~7개) |
- 앱 이름
- 해결하는 문제
- 사용자 정의
- Phase 1 핵심 기능
- 성공 기준 ★
- 수익화 ★
- 기술 스택
+ (해당 시) § 회색지대 결정 — 본 장 "인식" 만, 권1 제3장 본격
claude /model claude-opus-4-6 # SPEC.md 작성은 Opus /effort high /context # 5파일 모두 + MCP 활성 확인
TSV의 도메인 분류 (1탄 v2 새 5장 5-2 절)
| 시나리오 | TSV 적용 정도 |
|---|---|
| B2C 앱 | △ (글로벌 사용자) |
| B2B SaaS | △ (Phase 2 B2B 데이터) |
| 마켓플레이스 | ❌ |
| 교육 앱 | ❌ |
| 콘텐츠 앱 | ✅ 본질 |
| 미디어 플랫폼 | ✅ 본질 |
콘텐츠·미디어 플랫폼 분류가 "수익화 모델 선택"과 직결됩니다 (광고 + 프리미엄 구독 + B2B 데이터, 1탄 v2 새 18장 18-2 표 참조).
결론: "5~19 리그 모든 경기 자동 분석 콘텐츠 발행" — B2C 인터페이스이지만 본질은 "미디어 플랫폼"입니다.
작성 요청 프롬프트
SPEC.md를 작성해줘. TSV는 5~19 스포츠 리그 다관점 분석 자동 미디어
플랫폼이야. 아래 정보를 기반으로 7항목 모두 채워줘:
앱 이름: TotalSportsView (TSV)
한 줄 정의: "5~19 스포츠 리그의 모든 경기를 다관점 페르소나가 자동
분석하는 미디어. Position C — 베팅 사이트 연결 X."
해결하는 문제: 스포츠 분석 콘텐츠는 '한 시각'이 대부분. 다관점
(정량·균형·전술·트레이딩) 분석이 일반 사용자에게 도달하지 않음.
TSV는 5~19 리그 모든 경기에 대해 다중 페르소나 자동 분석 = 정보
격차 해소.
사용자 정의:
- 일반 스포츠 팬 (한 시각만 알고 싶음 → STAT 또는 OBSERVER 충분)
- 깊이 있는 분석 추구자 (Phase 1.2+ COACH·INSIDER 프리미엄)
- B2B 스포츠 미디어 회사 (Phase 2 데이터 리포트)
Phase 1.0 (33일) 핵심 기능 3가지:
1. 5 리그 (EPL·라리가·세리에·분데스·리그앙) 시작 — 페르소나 STAT·
OBSERVER 자동 분석 (각 경기 글 1개씩, 일 10글)
2. ⭐ Day 14 CRITICAL 게이트 — 다관점 가설 검증
3. SSOT 인터페이스 (lib/match_facts.ts) + 자동 일관성 테스트
성공 기준 (Phase 1.0 종료 시):
- 일 10글 자동 발행 7일 무장애
- 페르소나 일관성 자동 테스트 5/5 통과
- Day 14 가설 검증 통과 (다관점 클릭률 > 단일 시각 클릭률)
- SEO 자연 유입 시작 (월 100+ 유입)
수익화: Phase 1.0 무수익 (의도적). Phase 1.1 (Day 34~90) AdSense
광고 + 운영비 충당. Phase 1.2 (Day 91~180) 프리미엄 구독 ($4.99/월).
Phase 2.0 (Day 181~) B2B 데이터 리포트.
Claude (Opus + high) 가 생성한 SPEC.md v1 — 주요 항목 발췌
§1 한 줄 정의
TSV는 5~19 스포츠 리그의 모든 경기를 페르소나 (STAT·OBSERVER·나아가 COACH·INSIDER) 가 다관점으로 분석하는 자동 콘텐츠 미디어 플랫폼입니다.
§2 해결하는 문제
스포츠 분석 콘텐츠 시장에서 "한 시각" (예: 단순 뉴스 또는 단일 분석가 의견) 이 대부분입니다. 사용자가 한 경기에 대한 "여러 관점"을 보려면 5~10개 사이트를 돌아야 하는 불편함이 있습니다. TSV는 5~19 리그 모든 경기에 대해 "동시에 여러 페르소나의 분석"을 한 자리에 자동 생성·노출합니다.
§3 사용자 정의
글로벌, 영어 사용. 경기 전 "5분 안에 미리보기" 욕구. STAT (통계) 또는 OBSERVER (균형) 한 페르소나로 충분합니다.
경기 전 "30분 깊은 분석" 욕구. COACH (전술) + INSIDER (이적·트레이딩) 프리미엄. $4.99/월 지불 의향이 있습니다.
페르소나 분석 트렌드 데이터 필요. $299/회 리포트 대상입니다.
§4 Phase 1.0 (33일) 핵심 기능 3가지
EPL·라리가·세리에·분데스·리그앙. 페르소나 STAT (통계학자) + OBSERVER (균형 관찰자). 각 경기에 대해 두 페르소나 각각 글 1개씩 (일 5경기 × 2 = 10글). Sonnet 4.6 + cache_control (system prompt 캐시).
14일 동안 사용자 행동 데이터 수집: 같은 경기의 STAT vs OBSERVER 클릭률 비교 / 두 페르소나 모두 본 사용자 비율 / 단일 페르소나 사이트 대비 체류 시간. 다관점 클릭률 > 단일 시각 = ✅ Phase 1.1 진행.
lib/match_facts.ts — 단일 출처 (모든 페르소나가 같은 사실 참조). 페르소나 system prompt에 "입력에 없는 사실 추정 X" (환각 방지). 자동 일관성 테스트: 같은 경기 두 페르소나 노출 시 사실 일치 검증. fail 시 cron/publish.ts 자동 정지.
§5 성공 기준 (Phase 1.0 종료 — Day 33)
| 지표 | 기준 |
|---|---|
| 일 10글 자동 발행 | 7일 무장애 |
| 페르소나 일관성 테스트 | 5/5 통과 |
| Day 14 가설 검증 통과 | 다관점 클릭률 > 단일 시각 |
| SEO 자연 유입 | 월 100+ 유입 |
| 운영자 시간 | 일 평균 2.5h 이하 (자동화 효과) |
§6 수익화 — Phase별
| Phase | 수익화 | 목표 |
|---|---|---|
| Phase 1.0 (Day 1~33) | 의도적 무수익 | Day 14 가설 검증이 본질 |
| Phase 1.1 (Day 34~90) | Google AdSense 광고 | 월 운영비 ($18) 충당 + α |
| Phase 1.2 (Day 91~180) | 프리미엄 구독 ($4.99/월) | 광고 제거 + COACH·INSIDER |
| Phase 2.0 (Day 181~365) | B2B 데이터 리포트 ($299/회) | 스포츠 미디어 회사 대상 |
§7 기술 스택
| 영역 | 기술 |
|---|---|
| 백엔드 | Rust (Axum + SQLx) — 5~19 리그 동시 처리 + 메모리 효율 |
| 프론트 | Next.js 14 + TypeScript + Tailwind |
| DB | PostgreSQL (Oracle Free Tier 4GB) |
| LLM | Claude Sonnet 4.6 (페르소나 분석) + cache_control + Opus (Day 14 가설 검증 + Phase 1.2 COACH·INSIDER) |
| 외부 API | TheSportsDB (무료) + SportsRadar (Phase 1.1+) |
| 인증 | Phase 1.0 X / Phase 1.2 Stripe + 이메일 OAuth |
| 배포 | Vultr ($6/월) + Cloudflare WAF (무료) |
| 모니터링 | Sentry (무료 tier) |
DB 스키마 초안 (3 테이블)
[matches] - id (UUID, PK), league, home_team, away_team, kickoff_at, - score_home, score_away, status (UPCOMING/LIVE/FINISHED), - created_at [articles] — SSOT 적용 - id (UUID, PK), match_id (FK), persona (STAT/OBSERVER/COACH/INSIDER), - title, body (markdown 1500자), seo_keywords, - published_at, view_count, click_count [click_events] — Day 14 가설 검증용 - id, article_id, user_session, clicked_at, - referrer, dwell_time_sec
§8 회색지대 인식 (권1 제3장 본격 — E1)
이 SPEC v1에는 한 가지 회색지대가 인식됩니다:
- 스포츠 미디어 시장 = 베팅 사이트 인접
- TSV는 분석 콘텐츠만 + 베팅 link X + 배당 변환 X + 픽 추천 X
- → 권1 제3장 E1 4단계 결정 프레임으로 본격 결정
본 SPEC v1은 의도적으로 불완전합니다. Gemini 1차 검토 (권1 제2장) 에서 5~7건 발견 + 사용자 직관 (권1 제3장) + 두 검토자 (권1 제4장) 를 거쳐 SPEC v4가 완성됩니다.
v1은 일부러 완성도가 낮습니다. 이유는 검토자가 보고 발견하는 자리이기 때문입니다. 완벽 추구 시 영원히 못 끝납니다.
| # | 의도적 불완전 항목 | 발견 예상 자리 |
|---|---|---|
| 1 | cache_control 적용 정확한 위치 — 미명시 | Gemini 검토 (권1 제2장) |
| 2 | 페르소나 system prompt 환각 방지 정확한 표현 — 미명시 | Gemini 검토 |
| 3 | 자동 일관성 테스트의 "실패 시 cron 정지" 메커니즘 — 미명시 | Gemini 검토 |
| 4 | SEO 키워드 분리 (cannibalization 방지) — 미명시 | Gemini 검토 |
| 5 | Day 14 게이트 결과 기록 + 회고 의식 — 미명시 | Gemini 검토 |
| 6 | SportsRadar API 호출 한도 + fallback — 미명시 | Gemini 검토 |
git add SPEC.md git commit -m "SPEC.md v1: 7항목 + 4 페르소나 + Day 14 가설 검증 + Position C 인식"
## Phase 0 Day 1
[계획]
- SPEC v1 작성 (Opus + high + 7항목 + Position C 인식)
[실행]
- /model claude-opus-4-6 + /effort high
- 7항목 + 4 페르소나 시스템 + Day 14 CRITICAL 게이트 + Position C 인식 (8KB)
[LogOnTable 트레이스 — 의도적 불완전 v1 결정]
> 결정: SPEC v1 의도적 불완전 — 6개 누락 (cache_control 위치·환각
방지 표현·일관성 테스트 메커니즘·SEO 분리·Day 14 회고·API 한도)
인지하면서 미반영
> 근거: v1은 검토자가 보고 발견하는 자리. 완벽 추구 시 영원히 못 끝냄.
2탄 v2 권1 제1장과 동일 패턴 (줍줍 SPEC v1도 6개 의도적 불완전).
> 부작용: Gemini 검토에서 5~7건 발견 예상 (권1 제2장).
[누적 시간] 약 1.5h
[E2 페이스] 60h 트리거 58.5h 여유. 1주차 1일차 안전.
1탄 v2 새 5장 5-6 절의 7+1 체크리스트를 적용합니다:
| 체크항목 | 내용 | 통과 |
|---|---|---|
| 앱 이름 | "TotalSportsView (TSV)" | ✅ |
| 해결하는 문제 | 한 문장으로 명시 | ✅ |
| 사용자 A·B·C 구분 | 일반 팬 / 분석 추구자 / B2B | ✅ |
| Phase 1.0 기능 3가지 이하 | 5리그 자동·Day 14 CRITICAL·SSOT | ✅ |
| 성공 기준 숫자 명시 | 7일·5/5·100+·2.5h | ✅ |
| 수익화 Phase별 명시 | 1.0 무·1.1 광고·1.2 구독·2 B2B | ✅ |
| DB 스키마 초안 | 3 테이블 | ✅ |
| ⭐ § 회색지대 결정 인식 | Position C 인식 (본격은 권1 제3장) | ✅ |
SPEC v1이 완성됐습니다. 약 8~10KB의 "의도적으로 불완전한 헌법"입니다. 줍줍 SPEC v1과 같은 패턴 + TSV 도메인 본질 (다관점 + Day 14 CRITICAL + Position C).
| 자리 | 줍줍 (2탄 v2 권1 제1장) | TSV (3탄 권1 제1장, 본 장) |
|---|---|---|
| 모델 | Opus + high | Opus + high (동일) |
| 7항목 + DB | 7항목 + 4 테이블 | 7항목 + 3 테이블 |
| 회색지대 인식 | 표현 ① + 개인정보 ② (2건) | Position C (1건, 깊음) |
| 의도적 불완전 | 6개 (LLM·UNIQUE·검수·JSON·행정·null) | 6개 (cache·환각·일관성·SEO·게이트·API) |
| 핵심 게이트 | G1·G2·G3·G4·G5 (10주) | Day 14 CRITICAL ★ + Phase별 게이트 |
줍줍은 "점진적 누적", TSV는 "14일 안에 가설 검증 → 통과 시만 진행"입니다. 도메인 본질 차이예요.
- 게이트 분포 — 줍줍: 균등 (1주 단위) / TSV: Day 14 CRITICAL 집중
- 핵심 가설 — 줍줍: 단계적 기여 부담 곡선 / TSV: 다관점 가치 검증
- 위험 자리 — 줍줍: 신청 결과 보장 (E1) / TSV: 베팅 미디어 인식 (E1 Position C)
📌 제1장 정리
- 1️⃣ 핵심 한 줄: TSV SPEC v1 = Opus + high + 7항목 + 4 페르소나 + Day 14 CRITICAL 게이트 + Position C 인식. 의도적 불완전 6개.
- 2️⃣ 5파일+ 사이클 단계: 단계 ① SPEC v1 작성 ✅ — 본 장 / 다음: 단계 ② Gemini 1차 검토 (권1 제2장)
- 3️⃣ TSV SPEC v1 7항목 요약: 앱 이름: TSV / 문제: 다관점 분석의 정보 격차 / 사용자: 일반 팬 + 분석 추구자 + B2B / 핵심 기능: 5리그 자동·Day 14 CRITICAL·SSOT / 성공 기준: 7일·5/5·100+·2.5h / 수익화: Phase별 / 기술: Rust + Next.js + Oracle + Sonnet/Opus + Position C 인식
- 4️⃣ 의도적 불완전 6개: cache_control 위치·환각 방지·일관성 테스트·SEO 분리·Day 14 회고·API 한도 → Gemini 검토 (제2장) + 두 검토자 (제4장) 에서 보완
- 5️⃣ 5확장 등장: E4 LogOnTable: BUILD.md Day -1·1 트레이스 ✅ / E1 회색지대: 인식 (권1 제3장 본격) / E2 1인 페이스: 누적 시간 추적 시작 (1.5h)
- 6️⃣ 다음 장: 권1 제2장 — Gemini 1차 검토 (E3 첫 라운드, 5~7건 예상)