피드로 돌아가기
How I built an AI podcast generator that turns any content into audio conversations
Dev.toDev.to
Backend

Two-phase Pipeline 기반 AI 팟캐스트 생성 시스템 구축

How I built an AI podcast generator that turns any content into audio conversations

Pierre2026년 5월 6일5intermediate

Context

다양한 포맷의 콘텐츠를 오디오 대화로 변환하는 과정에서 발생하는 긴 처리 시간과 높은 API 비용 문제 해결 필요. HTTP Request/Response 사이클 내에서 LLM 및 TTS 처리를 수행할 때 발생하는 타임아웃 및 리소스 낭비 방지 설계 요구.

Technical Solution

  • Transcript 생성과 Audio 렌더링을 분리한 Two-phase Pipeline 설계를 통한 LLM 재호출 비용 절감 및 개별 단계 실패 격리
  • FastAPI와 Celery, Redis 조합의 비동기 작업 큐 도입으로 30~90초 소요되는 롱러닝 잡(Long-running Job)의 안정적 처리
  • Playwright 기반 Headless Chromium을 Celery Worker에 배치하여 JS 렌더링 페이지 및 PDF 등 복잡한 소스 데이터의 파싱 정밀도 향상
  • Factory Pattern을 적용한 TTS Provider 추상화 레이어 구축으로 비즈니스 로직 수정 없이 제공자(ElevenLabs, OpenAI 등) 교체 가능 구조 설계
  • Supabase Row-level Security(RLS) 기반의 전용 버킷 관리를 통한 사용자별 스크립트 및 오디오 파일 보안 접근 제어
  • 단순 생성 횟수가 아닌 TTS 출력 캐릭터 수 기준의 쿼터 시스템을 도입하여 실제 리소스 소비량에 비례한 과금 모델 구현

1. 롱러닝 AI 태스크 설계 시 HTTP 응답과 처리 로직을 분리하는 비동기 큐(Celery 등) 도입 검토

2. 외부 API 의존도가 높은 모듈은 Factory Pattern으로 추상화하여 벤더 락인(Vendor Lock-in) 방지

3. 동적 웹페이지 파싱이 필요한 경우 단순 Fetch 대신 Headless Browser 기반의 Worker 환경 구성

4. 리소스 기반 과금 체계 설계 시 입력 액션이 아닌 최종 출력 유닛(Character, Token 등) 단위의 쿼터 설정

원문 읽기