## 📝 한줄 요약
YouTube Studio를 영상별로 들락날락하며 지표 보는 게 답답해서, Claude Code와 함께 **하루 만에** 내 채널 전용 분석 대시보드를 만들었다. 핵심은 "예쁜 차트"가 아니라 **거기서 다음 영상 기획용 action item을 뽑아내는 것**이라는 걸 깨달았다.
**바쁘시면 이것만 읽어도 돼요:**
- **사용한 도구와 목표**: Claude Code로 본인 YouTube 채널 전용 분석 대시보드 구축 — 영상별 지속률·CTR·트래픽 소스를 한 페이지에서 조회
- **가장 만족도 높았던 워크플로우**: docs 스킬로 YouTube API의 불가능한 부분부터 먼저 파악 → 그걸 반영한 PRD 작성 → /kkirikkiri 멀티 에이전트로 PRD 재검증 (이 3단 파이프라인)
- **검증 효과**: PRD 재검증 단계에서 본격 개발 전 P0(필수 픽스) 9건 + 핵심 P1 다수가 한 번에 도출됨
- **하루 안에 풀스택 완성**: 인증 + DB + YouTube API + 스케줄러 + 3개 UI 페이지를 한 세션에서
- **현실 트러블슈팅**: 포트 3000을 좀비 프로세스가 점유 → OAuth 콜백 URL 불일치로 로그인 자체가 안 될 뻔 → PowerShell로 진단·해결
- **배운 교훈**: 처음부터 "어디에 배포할지" 정하고 시작해라. 그리고 **지표 자체가 아니라 거기서 뽑는 action item이 진짜 가치다.**
## 🎯 이런 분들께 도움돼요
- YouTube/SNS 운영하는 1인 크리에이터 — 매번 Studio 메뉴 들락날락이 답답한 분
- AI 코딩 도구로 본인 업무용 도구를 만들고 싶은데 어디서 시작할지 막막한 분
- 한 번 시도했다가 PRD 단계에서 막막해서 그냥 코드부터 짜다가 망친 경험이 있는 분
## 😫 문제 상황 (Before)
YouTube Studio가 보여주는 분석은 영상별로 메뉴에 들어가서 봐야 한다. "이 영상은 알고리즘 추천이 몇 퍼센트, 검색 유입이 몇 퍼센트지?" "Shorts 평균 지속률이랑 비교하면 이 영상은 잘 나온 건가?" 같은 질문을 하려면 영상 하나하나 클릭해서 표를 따로 만들어야 했다.
**유튜브 지표를 빠르게 보고 판단하기 위해서** — 그게 시작이었다. 영상을 올린 다음 "다음 영상은 어떤 방향으로 갈지" 결정하려면 데이터를 빠르게 봐야 하는데, 매번 Studio 안에서 길을 잃었다.
그래서 결심했다. **한 페이지에서 다 보이는 내 전용 대시보드를 만들자.**
## 🛠️ 사용한 도구
- **도구명**: Claude Code (Anthropic 공식 CLI)
- **모델**: Claude Opus 4.7
- **활용한 외부 스킬**:
- 지피타쿠님의 docs 스킬 — 외부 API 문서를 정확히 읽고 한계를 파악해주는 스킬
- /kkirikkiri 스킬 — 자연어로 AI 에이전트 팀을 자동 구성해서 동시 검토 시키는 멀티 에이전트 스킬
---
## 🔧 작업 과정
### 1단계 — 코드부터 짜지 않고 "안 되는 것"부터 알아보기
이번 프로젝트에서 가장 결과물 만족도가 높았던 이유는 **시작을 잘 했기 때문**이다. 보통 AI 코딩을 한다고 하면 바로 "이런 거 만들어줘" 하고 코드부터 짜는데, 이번엔 의도적으로 한 단계를 더 두었다.
YouTube에는 두 종류의 API가 있다. 하나는 영상 메타데이터를 주는 Data API, 다른 하나는 시청률·노출수 같은 분석 지표를 주는 Analytics API. **각각이 뭘 줄 수 있고, 뭘 못 주는지를 모르고 PRD를 쓰면 십중팔구 헛것을 그리게 된다.**
그래서 먼저 지피타쿠님이 만드신 docs 스킬을 돌렸다. 이 스킬은 공식 문서를 정확히 읽고 "이런 dimension은 있고, 이런 건 없다" "이 API는 D-3 지연이 있어서 오늘 데이터는 못 받는다" 같은 한계를 정리해준다.
그렇게 **불가능한 것의 목록**을 먼저 받아두고, 그 위에서 PRD를 작성했다. 이게 나중에 엄청난 차이를 만들었다.
---
### 2단계 — 만든 PRD를 혼자 검토하지 않고 가상 전문가 팀에게 맡기기
PRD를 다 쓰고 나면 보통 "이 정도면 됐겠지" 하고 바로 구현 들어간다. 근데 이번엔 한 가지 더 했다.
```
/kkirikkiri 유튜브 전문가 관점으로 prd 체크해봐
```
/kkirikkiri는 자연어로 "이런 관점에서 검토 팀을 만들어줘" 하면 AI가 가상 전문가 4명을 자동으로 구성해서 동시에 검토시켜주는 스킬이다. 처음엔 Claude가 "어떤 관점이 필요하냐"고 묻길래 골랐다:
> 유튜브 전문가가 어떤 관점으로 PRD를 봐줬으면 좋겠어요?
선택지를 3개 골랐다 — **콘텐츠 성과 지표**, **YouTube API 제약·현실성**, **성장·알고리즘 인사이트**. 이렇게 시점이 다른 가상 전문가들이 동시에 PRD를 뜯어보고 문제점을 도출했다.
결과는 놀라웠다. 본격 코드를 한 줄도 짜기 전에 **반드시 고쳐야 할 P0 9건**이 한 번에 발견됐다. 예를 들면:
- Analytics API는 D-3 지연이 있어서 오늘 데이터는 못 받는다 → 화면에 "Analytics 데이터는 X일까지 반영"이라고 명시 필요
- 트래픽 소스를 raw 그대로 보여주면 종류가 너무 많다 → 알고리즘 / 검색 / 직접 / 기타 4그룹으로 정규화 필요
- 영상 삭제됐을 때 DB에서 지우면 과거 분석 데이터가 사라진다 → soft delete 패턴 필요
**이 9건을 PRD 단계에서 잡았기 때문에**, 나중에 구현하면서 "어 이거 안 되네" 하고 멈춰서 PRD를 다시 고치는 일이 거의 없었다.
---
### 3단계 — "한 번에 진행하자" 한 마디로 풀스택 앱 완성
PRD가 단단해진 다음엔 사실상 일사천리였다. Google Cloud Console 세팅(이건 처음이라 Claude한테 단계별 가이드 시킴), 자격증명 발급, pnpm 설치까지 끝낸 다음 한 마디 했다.
```
한번에 남은 작업 한번에 진행하자
```
이 한 마디로 Claude가 6개 작업을 한 번에 처리했다:
- 로그인 인증 시스템 (Google OAuth, 본인만 통과하는 화이트리스트)
- 데이터베이스 10개 테이블 설계
- YouTube API 호출 모듈 (쿼터 관리 포함 — 하루 한도 넘으면 자동 중단)
- 동기화 파이프라인 (영상 메타 + 일별 통계 + 트래픽 소스 + 지속률 곡선)
- 자동 스케줄러 (매일 새벽 3시에 자동 동기화)
- 3개 화면 (홈 KPI / 영상 목록 / 영상 상세)
이게 가능했던 이유는 **앞 단계에서 PRD가 단단했기 때문**이다. PRD가 흐릿하면 "한 번에 진행해" 시키면 100% 산으로 간다. 근데 PRD에 "이건 이렇게 해야 한다"가 명확히 적혀있으니까 Claude가 헷갈릴 일이 없었다.
---
### 4단계 — 첫 동기화 직전, 좀비 프로세스에게 발목 잡힐 뻔
로컬에서 처음 실행하는데 메시지가 떴다.
```
PS C:\Full_Ai\youtube_dashboard> pnpm dev
⚠ Port 3000 is in use by process 78816, using available port 3002 instead.
```
3000번 포트가 다른 프로세스에게 점유돼서 Next.js가 알아서 3002로 옮겨갔다. 보통이면 "오 그래 3002로 가자" 하고 넘어갈 일이다. **근데 Google OAuth 콜백 URL은 localhost:3000으로 고정 등록**돼 있었다. 3002에서 로그인 시도하면 "redirect_uri_mismatch"로 통째로 막힌다.
Claude에게 물었다.
```
포트 바꿔야되는거아냐?
```
Claude는 즉시 진단했다: "3000번 점유한 프로세스가 이전 세션의 좀비 next dev 서버다. 죽이는 게 맞다 — OAuth URL을 다시 등록하기보다." 그리고 PowerShell로 프로세스 ID 식별 → 강제 종료 → 포트 회수 → "이제 다시 pnpm dev 하면 3000번으로 뜬다"까지 정확히 안내했다.
**이런 환경 문제는 비개발자가 가장 잘 막히는 지점**인데, AI가 진단·해결까지 가이드해주니까 5분도 안 걸렸다.
---
### 5단계 — 첫 동기화 결과 화면이 의도대로 비어 있는 걸 확인한 순간
로그인하고 "수동 동기화" 한 번 누르니까 영상 3개가 적재됐다. 근데 시청시간·CTR·노출수 컬럼이 전부 "—"로 비어 있었다.
순간 "어 버그인가?" 했는데, Claude가 바로 짚어줬다.
> 이건 버그가 아닙니다. 오늘이 2026-05-22인데 Analytics API는 D-3 지연이 있어서 5-19까지만 데이터를 줍니다. 그런데 영상 업로드일이 5-20이에요. **영상이 업로드되기도 전 시점까지밖에 데이터가 없는 셈이라 비어 있는 게 정상.** 내일부터 채워집니다.
**1단계에서 docs 스킬로 D-3 지연을 미리 파악해뒀기 때문에**, 코드도 정확히 그렇게 짜져 있었던 거다. PRD 단계의 정확성이 끝까지 일관되게 이어진 순간이었다.
---
### 6단계 — 로컬용으로 만든 걸 Vercel 배포용으로 다시 만들기
여기서 한 가지 후회되는 게 있다. 처음엔 "내 PC에서만 돌면 되지" 싶어서 로컬 SQLite + 상주 스케줄러 구조로 만들었다. 근데 첫 동기화 성공한 다음에 생각이 바뀌었다.
```
이 페이지를 vercel 배포해볼까?
```
Vercel은 서버리스 환경이라서 **로컬용 구조가 통째로 안 맞는다**. SQLite 파일은 매번 휘발되고, 상주 스케줄러는 동작 자체를 안 한다. Claude가 옵션 3가지를 정리해서 보여주고 결정을 도와줬다 — 결국 리팩토링 진행.
DB는 Turso(libSQL)로, 스케줄러는 Vercel Cron으로 교체. 다행히 같은 날에 작업해서 코드가 머릿속에 살아있어 부담이 적었다. **하지만 일주일 뒤였으면 훨씬 큰 비용이 들었을 거다.**
이게 두 번째 교훈이다: **처음부터 "어디에 배포할지" 정하고 시작해라.**
---
## ✅ 결과 (After)
### Before vs After
| 항목 | Before | After |
|------|--------|-------|
| 영상별 지표 확인 | YouTube Studio에서 영상 하나씩 클릭, 표 따로 작성 | 한 페이지에서 전체 목록 + 정렬·필터 즉시 |
| Shorts vs Long 비교 | 직접 분류해서 평균 계산 | 자동 분리 + 평균 지속률 카드 분리 표시 |
| 본인 영상 vs 채널 평균 | 비교 불가능 | 영상 상세에 채널 평균 지속률 곡선 오버레이 |
| 트래픽 소스 분석 | 영상별 메뉴에서 raw 데이터 | 알고리즘/검색/직접/기타 4그룹 자동 정규화 + 드릴다운 |
| 의사결정 속도 | 데이터 모으는 데 시간 소요 → 판단 지연 | 페이지 로드 즉시 다음 영상 방향 판단 가능 |
| 자동 갱신 | 없음 (매번 수동 확인) | 매일 03:00 자동 동기화 (Vercel 배포 후 PC 안 켜도 됨) |
### 결과물
- 본인 YouTube 채널 전용 분석 대시보드 (3개 화면 — 홈 KPI / 영상 목록 / 영상 상세)
- 매일 새벽 자동 동기화 시스템
- 본인 외 다른 계정은 로그인조차 막힌 보안 구조
## 💬 이 과정에서 배운 AI 활용 팁
### 효과적이었던 것
1. **외부 API 쓸 거면 docs 스킬부터 돌려라**
"되는 것"보다 **"안 되는 것"**을 먼저 알아야 PRD가 현실적이다. YouTube Analytics의 D-3 지연, search.list 쿼터 100 같은 제약을 모르고 가면 한참 헤맨다.
2. **PRD를 혼자 검토하지 말고 /kkirikkiri 같은 멀티 에이전트로 재검증해라**
사람 한 명 시점에선 빈틈을 못 본다. 4명의 가상 전문가가 동시에 검토하면 P0 9건이 한 번에 잡힌다. 본격 개발 전에 이 단계를 거치는 비용 < 개발 도중에 발견해서 다시 만드는 비용.
3. **처음부터 "어디에 배포할지" 정하고 시작해라**
로컬용으로 만들었다가 클라우드용으로 다시 만드는 비용은 처음부터 클라우드용으로 만드는 비용과 비슷하다. 일주일만 늦어도 비용이 훨씬 커진다.
4. **단단한 PRD가 있을 땐 "한 번에 진행하자" 큰 위임을 무서워하지 마라**
AI가 6개 작업을 한 번에 처리할 수 있다. 단 **앞 단계에서 PRD가 단단해야** 통한다.
### 이렇게 하면 안 돼요
1. **PRD 없이 "이런 거 만들어줘" 한 마디로 시작하기**
초기엔 빨라 보이지만 결국 중간에 멈춰서 PRD 만들기를 반복하게 된다. 시작에서 30분 더 쓰는 게 전체 시간을 줄인다.
2. **API 한계를 안 보고 "그냥 다 가능하겠지" 가정하기**
YouTube Analytics가 오늘 데이터를 줄 거라 가정하고 UI를 짜면, 막상 받아보니 비어 있어서 화면이 깨진다.
3. **환경 문제(포트, 좀비 프로세스 등)를 혼자 끙끙대기**
"포트 3000 점유 중인 프로세스 뭐냐"만 물어봐도 AI가 PowerShell 명령어 + 해결 순서를 그대로 알려준다.
## 🌍 다른 업무에 적용한다면?
이 워크플로우 — **docs로 한계 파악 → PRD → /kkirikkiri 재검증 → 단계별 위임** — 는 외부 API에 의존하는 모든 도구 만들기에 그대로 통한다.
- **인스타그램·블로그 통합 분석 대시보드**: docs로 각 플랫폼 API 한계 파악 → 어떤 지표는 받을 수 있고 어떤 건 못 받는지 먼저 정리.
- **고객사 데이터 자동 리포트**: 고객사 CRM/Slack/Sheets API 제약을 먼저 docs로 확인 후 PRD.
- **이커머스 매출 모니터링**: 쇼피파이/네이버스마트스토어 API의 일별 호출 한도, 데이터 지연 같은 제약을 PRD에 미리 반영.
**핵심은 항상 같다 — "AI가 헛것을 그리지 않게, 시작 단계에서 현실 제약을 정확히 알려주는 것".**
## 🚀 앞으로의 계획
대시보드가 완성됐지만, 정말 중요한 건 차트 자체가 아니라 **거기서 어떤 action item을 뽑아낼 것인가**다. 다음 두 가지를 추가할 계획.
### 1. 자동 인사이트 생성기
동기화가 끝나면 영상별 지표를 LLM에 보내서 자동으로 분석을 받는다. 예:
> "이 영상은 알고리즘 추천 30% / 검색 50% — 검색 최적화가 잘 됐다. 다음 영상도 같은 키워드 전략 시도 권장."
이런 인사이트를 사이드바에 매일 새로 띄워서, **대시보드를 켜자마자 "오늘 뭘 해야 하는지"가 보이도록**.
### 2. 데이터 기반 영상 기획
"지금까지 검색 유입이 잘 됐던 영상들의 제목/태그/길이 공통점"을 분석해서, **다음 영상을 기획할 때 데이터 기반 결정**이 가능하게.
결국 분석 대시보드 → 행동 안내 시스템으로 진화시키는 게 다음 목표다.
## 📋 재사용 가능한 프롬프트
### 프롬프트 1: 외부 API의 한계 먼저 파악하기
> [API 문서 URL 또는 플랫폼 이름]의 공식 문서를 정확히 읽고, 다음을 정리해줘:
> 1. 받을 수 있는 데이터 종류
> 2. **받을 수 없는 데이터 (가장 중요)**
> 3. 호출 제한 (쿼터, 일일 한도)
> 4. 데이터 지연 (실시간인지, 며칠 늦는지)
> 5. 인증 방식과 만료 정책
>
> [플랫폼]은 본인이 분석하려는 외부 서비스로 바꿔서 쓰세요. (예: YouTube Analytics, 인스타그램 Graph API, 네이버 검색광고)
### 프롬프트 2: PRD를 가상 전문가 팀에게 재검증 받기
> /kkirikkiri [도메인] 전문가 관점으로 prd 체크해봐
>
> [도메인] 자리에 본인 프로젝트의 도메인을 넣으세요. (예: 유튜브, 이커머스, SaaS 운영) 검토 관점 선택지가 나오면, 본인 프로젝트에서 가장 위험할 것 같은 시점을 골라주세요 (예: API 제약, 사용자 시점, 데이터 일관성).
### 프롬프트 3: 단단한 PRD가 있을 때 큰 단위 위임
> 위 PRD 기반으로 Phase 1 작업 N개를 한 번에 진행해줘. 단,
> 1. 각 작업 시작 전에 어떤 파일을 만들/수정할지 한 줄로 알려줘
> 2. PRD에 명시되지 않은 부분은 임의로 결정하지 말고 나에게 물어봐
> 3. 마지막에 type-check + 동작 확인까지 같이
>
> N은 본인 작업 개수로 바꿔서 쓰세요.
### 프롬프트 4: 환경 문제 빠르게 진단
> [에러 메시지 or 증상] 발생했는데, 원인 진단하고 해결 명령어까지 한 번에 알려줘. 운영체제는 [Windows/Mac/Linux].
>
> 예: "포트 3000이 다른 프로세스에게 점유돼 있다. 운영체제는 Windows."