피드로 돌아가기
How I built a three-tier content quality ladder for programmatic directory ETL
Dev.toDev.to
Backend

Prompt Caching 기반 3단계 Content Ladder로 구축한 고가용성 ETL 파이프라인

How I built a three-tier content quality ladder for programmatic directory ETL

MORINAGA2026년 6월 6일10intermediate

Context

대규모 programmatic directory 사이트 운영 중 LLM API의 불안정성과 비용 문제가 발생함. 단순 API 호출 방식은 장애 시 콘텐츠 공백을 초래하며, 반복적인 System Prompt 전송으로 인한 토큰 낭비가 심화되는 구조적 한계가 존재함.

Technical Solution

  • model_used 컬럼을 통한 3단계 Content Quality Ladder(seeded-from-json → fallback-template → claude-haiku-4-5) 설계로 무중단 콘텐츠 제공 보장
  • LEFT JOINWHERE 절을 조합한 Upgrade Query를 통해 저품질 콘텐츠 및 신규 항목을 우선적으로 식별하여 효율적인 업데이트 수행
  • ORDER BY downloads DESC 전략을 적용하여 트래픽이 높은 고가치 페이지의 콘텐츠 품질을 우선적으로 상향 평준화
  • Anthropic의 ephemeral 캐시 제어를 통해 배치 내 중복 System Prompt를 제거함으로써 입력 토큰 비용 최적화
  • parseOrFallback 함수와 정규표현식을 이용한 JSON 추출 및 필드 단위 Null-safe 처리를 통해 LLM의 비정형 응답으로 인한 런타임 에러 방지
  • Node.js ETL 스크립트와 Vercel Edge Function 간 드라이버 호환성을 위해 @libsql/client 기반의 Turso DB 채택

Impact

  • 배치당 100개 항목 처리 시, 약 90,000개의 input token 절감

Key Takeaway

LLM 기반의 자동화 파이프라인 설계 시 '최선-차선-최후'의 Fallback 체인을 구축하여 시스템 가용성을 확보하고, 데이터 가치(Traffic/Download)에 기반한 우선순위 큐를 통해 리소스를 최적화하는 전략이 필수적임.


- LLM 응답 실패를 대비한 단계별 Fallback 데이터 구조 설계 여부 검토 - 고정된 System Prompt 사용 시 API 제공사의 Prompt Caching 옵션 적용 가능성 확인 - 전체 재생성이 아닌 상태 기반(State-based) 부분 업데이트 쿼리 최적화 적용 - LLM의 불완전한 JSON 응답 처리를 위한 정규표현식 기반 파싱 및 필드별 기본값 설정 구현

원문 읽기