ChatGPT·Claude·Gemini 글을 블로그로 우회 발행 — 한 줄 curl 로 LLM 무료 한도 활용

3 min read · 782 words

활용 팁 / 블로그 운영 / Python · API
약 2,400자

블로그 글을 LLM 으로 쓸 때 가장 흔한 패턴은 ChatGPT 또는 Claude 채팅창에 "이 주제로 가이드 글 써줘" 하고 받은 HTML 을 손으로 복사해서 Blogger 관리자 UI 에 붙여넣는 것입니다. 5분이 걸리고, 라벨 / 메타 디스크립션 / 카테고리는 매번 다시 박아야 합니다. 우리는 LLM 채팅 출력을 curl 한 줄로 Blogger DRAFT 까지 보내는 우회 endpoint 를 만들었습니다.

만든 이유

LLM API 직접 호출 (예: Anthropic / Google) 은 토큰 비용이 누적되고, 글 1편당 $0.10-0.50 들어갑니다. 100편이면 $10-50. 우리 사이트 같은 1인 운영 블로그엔 부담입니다.

반면 ChatGPT Plus / Claude Pro / Gemini Advanced 구독은 월 $20 정액. 한 달에 글 100편을 써도 추가 비용 0. 단, 채팅창 → 블로거 복붙 워크플로가 너무 느려서 결국 다시 API 호출로 돌아오게 됩니다.

해결: LLM 채팅에서 받은 HTML 을 webapp 의 발행 endpoint 한 줄로 던지면 → 라벨 / 메타 / 차트 자동 inject / SEO 메타 검증 hook chain 모두 통과 → Blogger DRAFT. 사람이 한 일은 채팅에서 답변 받은 후 curl 한 번.

월 $20 정액으로 글 100편을 webapp 발행 hook chain (sanitize / quality gate / 색인 5채널) 다 통과시키며 발행할 수 있습니다.

작동 원리

webapp 안 별도 endpoint POST /api/writer/external-publish 가 있습니다.

Request shape


{
 "title": "글 제목",
 "content_html": "<p>본문 HTML...</p><h2>섹션</h2>...",
 "label": "활용 팁",
 "post_type": "guide",
 "primary_keyword": "키워드",
 "meta_description": "100-160자 메타 설명"
}

LLM 채팅에서 받은 HTML 을 content_html 에 그대로 넣고 나머지 5 필드만 채우면 끝.

서버 처리

  1. 인증 — localhost 한정 (127.0.0.1). 외부 노출 없음.
  2. Label normalize["활용 팁", "사용팁", "tips"] 같은 변종 입력을 사이트 canonical 라벨 6개 중 하나로 자동 매핑. 알려진 라벨 아니면 {"error":"unknown_label","allowed":["..."]} 응답.
  3. HTML 점검