[AI Automation] 블로그 자동 포스팅 구축 - Claude API로 교체



이전 글에서 Gemini API로 자동 포스팅 파이프라인을 구축했다고 했는데, 실제로 돌려보니 바로 막혔다.
무료 티어 한계, 모델 deprecated, 그리고 결국 Claude API로 전환까지의 과정을 기록한다.



무슨 일이 있었나

파이프라인 세팅을 완료하고 처음 실행했을 때부터 오류가 났다.

429 Too Many Requests

Gemini 무료 티어가 이미 소진된 상태였다. 재시도 로직(30s/60s/90s)을 추가하고 모델 폴백(gemini-2.0-flashgemini-2.0-flash-lite)도 넣어봤지만 둘 다 같은 결과였다.

gemini-1.5-flash로 바꿔봤더니 이번엔 404.

404 Not Found — models/gemini-1.5-flash is not found

deprecated된 모델이었다. 이 시점에서 Gemini 무료 티어 자체가 완전히 소진된 거라 어떤 모델을 써도 안 된다는 걸 알았다.



Claude API로 전환

Gemini 대신 Claude API(claude-haiku-4-5)로 교체했다.

변경된 핵심 코드:

# 기존 (Gemini - requests로 직접 호출)
import requests

url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={GEMINI_API_KEY}"
resp = requests.post(url, json={"contents": [{"parts": [{"text": prompt}]}]}, timeout=60)

# 변경 후 (Claude - anthropic SDK)
import anthropic

client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)
message = client.messages.create(
    model="claude-haiku-4-5",
    max_tokens=2048,
    messages=[{"role": "user", "content": prompt}],
)
raw = message.content[0].text

requests로 raw HTTP 요청을 보내던 방식에서 anthropic 공식 SDK를 쓰는 방식으로 바꿨다. 코드가 훨씬 깔끔해졌다.

워크플로우 의존성도 수정했다:

# 기존
run: pip install requests

# 변경 후
run: pip install anthropic requests



GitHub 403 오류와 permissions 설정

Claude API 전환 후 실행하니 이번엔 다른 오류가 났다.

403 Forbidden — Resource not accessible by integration

GitHub API로 파일을 커밋할 때 권한이 없다는 오류였다. GITHUB_TOKEN이 있어도 워크플로우에 contents: write 권한을 명시적으로 줘야 한다는 걸 몰랐다.

auto-post.yml에 한 줄 추가로 해결됐다:

jobs:
  post:
    runs-on: ubuntu-latest
    permissions:
      contents: write   # ← 이거 없으면 403



최종 동작 확인

권한 추가 후 다시 실행했더니 성공했다.

📰 2026-06-20 IT 기술동향 포스트 생성 중...
📝 제목: [IT동향] 2026년 상반기 AI 개발 생산성 혁신
✅ 커밋 완료: 2026-06-20-it동향-2026년-상반기-ai-개발-생산성-혁신.md

파일이 _posts/news/ 디렉토리에 정상적으로 생성되고 있다.



비용은 얼마나 나올까

Claude API는 토큰 단위 과금이다. claude-haiku-4-5 기준 요금은 다음과 같다.

구분 요금
Input $0.80 / 1M tokens
Output $4.00 / 1M tokens

이 파이프라인에서 한 번 실행 시 사용하는 토큰은 대략:

  • 프롬프트(input): ~400 tokens
  • 생성된 포스트(output): ~800 tokens

계산하면:

input:  400 tokens × $0.80 / 1,000,000 = $0.00032
output: 800 tokens × $4.00 / 1,000,000 = $0.0032

1회 실행 합계: 약 $0.0035 (≈ 5원)

하루 1회 실행 기준으로 한 달이면 약 $0.105, 150원 정도다.

Gemini 무료 티어가 막혔을 때 “유료 API 쓰면 돈 많이 나오겠지” 싶었는데, 실제로 계산해보니 생각보다 훨씬 저렴하다. 커피 한 잔 값으로 1년치 자동 포스팅을 돌릴 수 있는 수준이라 이 정도면 충분히 경제적인 것 같다.



정리

단계 오류 원인 해결
1 429 Too Many Requests Gemini 무료 티어 소진 Claude API로 전환
2 404 Not Found gemini-1.5-flash deprecated (Claude로 전환하면서 무의미해짐)
3 403 Forbidden 워크플로우 권한 누락 permissions: contents: write 추가

세팅 자체보다 API 무료 티어 한계와 권한 설정에서 더 시간을 썼다. 자동화 파이프라인 구축할 때 흔히 겪는 패턴인 것 같다.

이제 매일 UTC 00:00(KST 09:00)에 자동으로 IT동향 포스트가 올라온다. 다음엔 포스트 퀄리티를 높이는 방향을 생각해볼 예정이다.



다른 글