저는 예전에 팟캐스트 에피소드를 녹음한 후 몇 시간 동안 빈 화면만 바라보곤 했습니다. 녹음 자체는 재미있었지만, 쇼 노트(show notes), 요약본, 제목을 작성하는 것은 거대한 숙제처럼 느껴졌습니다. 저는 제 목소리를 2배속으로 들으면서 핵심 타임스탬프와 자료를 뽑아내려 했지만, 결국 모호하고 도움이 안 되는 메모만 남기곤 했습니다. 저는 콘텐츠 자체를 개선하거나 게스트와 대화하는 대신, 후반 작업 시간의 80%를 관리 업무에 쓰고 있다는 것을 깨달았습니다. 그래서 무언가를 만들기로 결심했습니다.
팟캐스트 후반 작업의 숨겨진 비용
팟캐스트 후반 작업을 소홀히 하는 실제 비용은 단순히 시간이 아닙니다. 일관성과 검색 가능성(discoverability) 문제입니다. 쇼 노트를 서둘러 작성하면 SEO 기회를 놓치게 됩니다. 제목이 약하면 클릭률(click-through rate)이 떨어집니다. 제가 만난 많은 인디 팟캐스터들은 아예 쇼 노트 작성을 건너뛰거나, 주말을 이용해 수동으로 전사(transcribing)하고 형식을 지정하는 데 시간을 쓰고 있었습니다.
원시 오디오를 구조화되고 검색 가능한 콘텐츠로 변환하는 마찰은 거대한 병목 현상입니다. 관리 업무가 창의적인 작업보다 더 무겁게 느껴지면, 결국 번아웃되어 출판을 멈추게 됩니다. 저는 무거운 GPU 서버를 관리하거나 비싼 엔터프라이즈 API 티어를 지불하지 않고도 전사본(transcripts)을 빠르게 처리할 방법을 필요로 했습니다.
AI 추론을 엣지(Edge)로 옮기다
이것은 저를 Cloudflare Workers와 그들의 엣지에서의 AI 추론으로 이끌었습니다. 요청을 중앙 집중식 API로 라우팅하는 대신, 엣지 추론은 AI 모델이 사용자 가까이에서 실행되도록 합니다. 전사본을 업로드하는 팟캐스터에게 이는 낮은 지연 시간(lower latency)과 전용 추론 서버를 가동할 때 발생하는 콜드 스타트(cold starts)가 없다는 것을 의미합니다.
PodCrisp의 아키텍처를 구축하면서, 저는 전통적인 중앙 집중식 AI API와 엣지 추론(edge inference) 사이에서 선택해야 했습니다. 중앙 집중식 API는 방대한 컨텍스트 창(massive context windows)에 매우 좋지만, 일반적인 팟캐스트 스크립트의 경우 엣지 추론이 더 나은 균형을 제공합니다. 단점은 페이로드 크기(payload sizes)와 토큰 제한(token limits)에 더 신경 써야 한다는 것이지만, 장점은 서버 시작 시간 관리(server spin-up times)를 할 필요가 없다는 것입니다.
쇼노트 생성 파이프라인을 어떻게 구성했는지 살펴보겠습니다. LLM의 핵심은 출력이 항상 사용 가능하도록 엄격한 프롬프트 엔지니어링(prompt engineering)을 하는 것입니다.
// Show notes generation pipeline (Cloudflare Workers + AI)
export default {
async fetch(request, env) {
...
이 파이프라인에서 env.AI.run 메서드는 Worker로부터 Llama 3 모델을 직접 호출합니다. 시스템 프롬프트가 여기서 가장 중요한 부분입니다. 단순히 "요약해라"라고만 지시하면 산더미 같은 텍스트가 나옵니다. 시스템 프롬프트에 엄격한 마크다운 스키마(markdown schema)를 강제함으로써, 출력물은 CMS에 바로 붙여넣을 준비가 됩니다. 저는 노트를 간결하게 유지하면서도 유용할 만큼 상세하도록 max_tokens를 800으로 설정했습니다.
제목 생성기(title generator)의 경우, 일반적인 "AI 목소리"라는 것을 피하는 것이 어려움이었습니다. AI는 "Unlock," "Discover," 그리고 "Dive deep" 같은 단어를 사용하려는 경향이 있습니다. 이를 방지하기 위해 저는 프롬프트에 구체적인 규칙을 추가했습니다.
// Prompt engineering for podcast title generation
function buildTitlePrompt(topic, tone, count) {
return {
...
클릭베이트를 명시적으로 금지하고 호기심 격차(curiosity gap)를 강제함으로써, AI는 마케팅 봇이 작성한 것처럼 들리기보다는 실제 인간 프로듀서가 작성한 것 같은 제목을 생성합니다.
실질적인 결과 및 배운 교훈
엣지 추론으로 전환하면서 제 작업 흐름 전체가 완전히 바뀌었습니다. 예전에는 능동적으로 듣는 데 한 시간이 걸리던 것이 이제는 약 30초의 처리 시간과 5분의 가벼운 편집만으로 끝납니다. 구조화된 쇼노트는 제가 수동으로 작성한 것보다 실제로 더 좋습니다. 왜냐하면 AI가 제가 보통 빠뜨리는 사소한 리소스 언급까지 포착해주기 때문입니다.
한 가지 놀라웠던 점은 엄격한 시스템 프롬프트(system prompts)가 얼마나 중요했는지였습니다. 처음에는 AI가 정확한 타임스탬프를 환각(hallucinate)했습니다. '정확한 타임스탬프 추출' 대신 '콘텐츠 흐름을 기반으로 추정하라'는 구체적인 지침을 추가하자 환각 현상이 사라졌는데, 이는 원문 텍스트에 실제 오디오 타이밍 데이터가 포함되어 있지 않기 때문입니다.
전반적인 도구 세트(toolset)에서 가장 놀라웠던 점은 SEO 키워드 제안 기능이었습니다. 저는 처음에 이 기능을 단지 제 웹사이트의 에피소드 페이지를 돕기 위해 만들었지만, 엣지 AI(edge AI)가 스크립트 컨텍스트에서 롱테일 키워드(long-tail keywords)를 추출하는 능력이 놀라울 정도로 뛰어났습니다. 단순히 주요 주제만 뽑아내는 것이 아니라, 인터뷰 중에 제기된 구체적인 질문들까지 찾아냅니다.
만약 한 가지를 바꿀 수 있다면, 쇼 노트 생성기에 스트리밍 응답(streaming response)을 구현할 것입니다. 현재는 사용자가 전체 JSON 응답을 기다려야 합니다. 마크다운 토큰(markdown tokens)이 생성되는 대로 스트리밍하면, 총 처리 시간이 같더라도 체감 지연 시간(perceived latency)을 훨씬 낮출 수 있을 것입니다.
제목 생성기 사용해 보기
후반 작업의 고된 과정에 어려움을 겪고 있다면, 제가 제목 생성기를 무료 도구로 패키징했으니 프롬프트 엔지니어링(prompt engineering)을 직접 테스트해 볼 수 있습니다. podcrisp.com/free-tools/title-generator에서 팟캐스트 제목 생성기(Podcast Title Generator)를 사용해 보면서 다양한 어조가 출력에 어떻게 영향을 미치는지 확인하고 다음 에피소드를 위한 영감을 얻어보세요.
솔직히 말씀드리자면: 저는 PodCrisp의 개발자입니다. 제가 필요해서 직접 만들었습니다.