TubeScout Hero

마개이너, 그리고 하루짜리 MVP

마개이너라는 스터디 모임이 있다. 마케팅, 개발, 디자인을 함께 공부하는 모임인데 벌써 5년째 함께하고 있다. 그 사이에 주식, 크립토, 최근에는 AI 활용까지 다루는 별도 커뮤니티가 모임 안에 생겼다.

모임 리더인 버거돼지님이 재밌는 공유회를 기획했다. "바이브코딩으로 하루 만에 MVP 만들기." AI 에이전트를 활용해서 실제로 돌아가는 서비스를 하루 안에 만들어보자는 거였다.

그래서 뭘 만들지 고민했다. 거창한 걸 만들 생각은 없었다. 대신, 최근 실무에서 가장 답답했던 문제를 풀고 싶었다.

8개 MCN, 기준 없는 선택

현재 8군데의 MCN과 협업 중이다. MCN마다 매달 인플루언서를 제안해온다. "이 채널 어때요?", "요즘 이 크리에이터 핫해요."

문제는 제안받는 인플루언서를 선정하는 기준이 명확하지 않다는 것이다.

유튜브 채널에 들어간다. 구독자 수를 확인한다. 최근 영상을 하나하나 클릭해서 조회수를 본다. 댓글 분위기를 읽는다. 쇼츠랑 롱폼의 성과가 다르니까 따로 확인한다. 그걸 정리한다. 다음 채널로 넘어간다. 채널 하나에 15분에서 20분.

그리고 결국 "감"으로 결정한다. 구독자 50만인데 최근 영상 조회수가 3천인 채널과, 구독자 5만인데 영상마다 2만 조회를 찍는 채널. 숫자만 보면 후자가 압도적으로 좋은 건데, 구독자 수라는 허영 지표에 눈이 멀면 전자를 고른다.

물론, 컨텐츠의 영역을 숫자로 명확히 예측하기에는 너무나도 많은 변수가 있다. 크리에이터의 톤, 시청자층의 성향, 브랜드와의 핏. 이런 건 알고리즘이 판단할 수 있는 영역이 아니다. 심지어 "이런 점수 매기기 자체가 의미없다"고 느끼는 사람도 있을 것이다.

그래도 내부 가이드는 필요했다. MCN 8군데에서 올라오는 후보를 팀 내에서 1차 필터링할 기준. "이 채널이 숫자적으로 건강한가?"를 빠르게 판단할 수 있는 잣대. 그게 있으면, 진짜 중요한 판단(브랜드 핏, 컨텐츠 퀄리티, 시청자 성향)에 더 많은 시간을 쓸 수 있다.

그래서 만들었다. TubeScout.

유튜브 채널 페이지에 들어가는 순간, 3초 안에 해당 채널의 협업 적합성을 점수로 보여주는 크롬 확장 프로그램이다.

TubeScout 스코어 카드 데모

유튜브 채널에 접속하면 우상단에 점수 카드가 자동으로 뜬다. 총점, VPS, Cadence, Momentum이 한눈에 보인다.

"뭘 기준으로 점수를 매길 것인가"

솔직히 구현보다 이 고민이 훨씬 오래 걸렸다.

인플루언서를 평가하는 지표는 수십 가지가 있다. 구독자 수, 조회수, 좋아요율, 댓글 참여율, 업로드 빈도, 성장 추세, 시청 시간, 클릭률. 전부 넣을 수도 있었다. 하지만 지표가 많다고 좋은 점수 체계가 되는 건 아니다.

실무에서 인플루언서를 골라본 경험을 기반으로, 진짜 중요한 질문 세 가지를 정했다.

  1. 이 채널은 살아있는가? (구독자 대비 실제 조회가 나오는가)
  2. 이 채널은 꾸준한가? (협업 컨텐츠를 제때 올려줄 수 있는가)
  3. 이 채널은 지금 뜨고 있는가? (상승세인가, 하락세인가)

이 질문들이 그대로 지표가 됐다.

Scoring Breakdown

지표 1: VPS, 구독자 대비 조회율 (가중치 50%)

Views Per Subscriber. 구독자 1,000명당 영상 하나가 몇 조회를 찍는지.

이게 왜 가장 중요한 지표인지 설명하겠다. 결국 마케터가 인플루언서에게 기대하는 건 노출이다. 아무리 다른 지표가 좋아도, 영상 하나하나의 조회수가 구독자 대비 너무 낮으면 협업 효과가 없다.

구독자 100만인 채널의 최근 영상이 평균 5천 조회라면, 그 채널은 "죽었다." 반대로 구독자 3만인데 영상마다 1만 조회를 찍는 채널이라면, 활성 팬덤이 있다는 뜻이다.

medianViews / max(1000, subscribers) * 1000

평균이 아니라 중앙값(median)을 쓴다. 바이럴 영상 하나가 전체 평균을 왜곡하는 걸 방지하기 위해서다. 이상치 제거(상하위 10% 컷)까지 넣었다. MCN에서 "이 영상 조회수 100만이에요!"라고 한 영상만 강조하는 경우가 있는데, 중앙값을 쓰면 그런 왜곡을 걸러낼 수 있다.

가중치를 50%로 가장 높게 잡은 이유도 이것이다. 이 지표 하나만 봐도 채널의 실질적 영향력을 대략 파악할 수 있다.

지표 2: Cadence, 업로드 주기 안정성 (가중치 30%)

꾸준히 올리는 채널인지, 간헐적으로 올리는 채널인지.

이 지표를 넣은 건 순전히 실무 경험 때문이다. 업로드 주기가 불규칙한 채널은 협업 컨텐츠도 불규칙하게 올린다. 납품일 맞추기가 어렵다. 반대로 주 2회, 주 3회처럼 꾸준한 채널은 컨텐츠 운영에 진심이라는 뜻이고, 협업 일정도 잘 지킨다.

CV(변동계수) = 표준편차 / 평균 업로드 간격
score = max(0, 100 * (1 - CV / 0.5))

변동계수(Coefficient of Variation)를 썼다. 0이면 완벽하게 규칙적인 업로드, 0.5 이상이면 0점. 단순하지만 효과적이다. 일주일에 한 번이든, 이틀에 한 번이든, "빈도"보다 "일정함"을 측정한다.

지표 3: Momentum, 성장 추세 (가중치 20%)

같은 점수라도 최근 성과가 올라가고 있는 채널과 내려가고 있는 채널은 전혀 다르다.

ratio = avg(최근 3개 조회수) / avg(이전 5개 조회수)
score = min(100, max(0, (ratio - 0.8) * 250))

ratio가 1.0이면 현상 유지, 1.2 이상이면 확실한 상승세, 0.8 이하면 하락 추세다. "지금 뜨고 있는 채널"을 캐치하려면 이 지표가 필수다. 반대로, 한때 잘 나갔지만 하락세에 접어든 채널을 피할 수도 있다.

가중치를 20%로 가장 낮게 잡은 이유가 있다. 모멘텀은 변동성이 크다. 한 영상이 우연히 바이럴 되면 모멘텀이 확 올라가는데, 그게 지속 가능한 성장인지는 알 수 없다. 참고 지표로는 좋지만, 핵심 판단 근거로 삼기에는 불안정하다.

왜 좋아요율과 댓글은 뺐나

처음에는 5가지 지표를 다 넣으려고 했다. VPS, Cadence, Momentum에 좋아요율과 댓글 참여율까지.

그런데 실제로 데이터를 돌려보니 문제가 보였다.

첫째, 좋아요 수를 비공개로 설정한 채널이 꽤 많다. YouTube가 좋아요 수 비공개 옵션을 제공한 이후로, 특히 기업 채널에서 이걸 끄는 경우가 늘었다. 핵심 지표에 넣으면 이런 채널에서 점수가 깨진다.

둘째, 댓글 참여율은 장르 편차가 너무 크다. 뷰티나 먹방 채널은 댓글이 활발한데, 테크나 교육 채널은 원래 댓글이 적다. 장르 보정 없이 일률적으로 적용하면 편향이 생긴다.

그래서 MVP에서는 채널 장르와 무관하게 공정하게 작동하는 3가지 지표만 남겼다. 좋아요율과 댓글 참여율은 장르별 보정 로직과 함께 다음 버전에서 추가할 계획이다.

Shorts vs Videos, 분리는 필수다

인플루언서 마케팅을 해본 사람이라면 안다. 같은 채널이라도 쇼츠와 롱폼의 성과가 완전히 다르다.

쇼츠에서 100만 조회를 찍는 채널이 롱폼에서는 5천 조회도 못 나오는 경우가 흔하다. 반대로 롱폼에서 충성 구독자층이 탄탄한 채널이 쇼츠에서는 존재감이 없기도 하다.

TubeScout은 YouTube Data API의 contentDetails.duration을 파싱해서, 60초 미만이면 Shorts, 60초 이상이면 Videos로 자동 분류한다. Videos 탭이면 롱폼 점수, Shorts 탭이면 쇼츠 점수가 자동으로 전환된다.

이게 기존 분석 도구들과의 차이점이다. SocialBlade나 Noxinfluencer는 채널 전체 통계를 보여주지, 쇼츠와 롱폼을 나눠서 점수를 매기지 않는다.

하루 만에 만든 과정

바이브코딩 공유회 당일. PRD를 쓰는 것부터 시작했다.

위에서 고민한 스코어링 지표의 가중치, 정규화 공식, API 쿼터를 아끼기 위한 호출 전략(비용 100인 search.list 대신 비용 1인 playlistItems.list 사용), Shorts와 Videos를 duration 기반으로 분리하는 방식. 이런 설계 결정들을 PRD와 TRD에 먼저 정리했다.

구현은 Gemini(Antigravity)가 담당했다. Chrome Extension Manifest V3 구조, Content Script의 UI 렌더링, Service Worker의 API 호출 로직, 스켈레톤 애니메이션. 나는 설계와 방향을 잡고, 코드 구현은 AI 에이전트한테 시켰다.

1시간

PRD/TRD 작성 + 스캐폴드. manifest, content script, service worker, 기본 카드 UI.

2시간

YouTube Data API 연동. channels.list, playlistItems.list, videos.list 순차 호출. 채널 하나에 쿼터 3만 소모.

2시간

스코어링 엔진. VPS, Cadence, Momentum 계산. 가중 합산. 스켈레톤에서 실데이터 페이드인 전환.

3시간

찜하기, 에러 처리, 캐시(5분 TTL, LRU 50개), 지수 백오프 재시도, 패키징.

총 8시간. PRD 작성부터 동작하는 크롬 확장까지.

AI 에이전트 없이 이 속도가 가능했을까? 솔직히 아니다. 하지만 "뭘 만들어야 하는지"를 정의한 건 나다. 스코어링 공식을 만든 것도, API 쿼터 전략을 짠 것도, Shorts/Videos 분리를 결정한 것도 전부 인플루언서 마케팅 실무에서 나온 판단이다. 이런 설계가 없었으면 AI가 아무리 코드를 빨리 쳐도 쓸모있는 결과물이 나오지 않았을 것이다.

뼈대에서 실전 도구로

공유회에서 만든 건 MVP였다. 뼈대만 잡은 것이다.

그 뼈대를 팀원에게 전수했다. 스코어링 로직의 의도, 가중치 설정 근거, API 구조를 공유했고, 팀원이 이를 기반으로 더 고도화된 툴로 디벨롭했다. 현재 내부에서 인플루언서 선정 시 실제로 사용 중이다.

내가 하루 만에 만든 MVP가 그 자체로 완성된 도구가 된 건 아니다. 하지만 "이런 기준으로 채널을 평가하자"는 프레임을 잡아준 게 핵심이다. 프레임이 있으니까 팀원이 고도화할 방향도 명확해졌고, MCN에서 제안이 올 때 "이건 됨, 이건 안 됨"을 일관된 기준으로 판단할 수 있게 됐다.

컨텐츠를 숫자로 완벽히 예측하는 건 불가능하다. 하지만 숫자적으로 건강하지 않은 채널을 걸러내는 건 가능하다. TubeScout은 후자를 위한 도구다. 1차 필터링이 빨라지면, 진짜 중요한 판단에 더 많은 시간을 쓸 수 있다.