블로그 자동화 첫걸음 — Blogger v3 API 정복기 [클로드 어디까지 써봤니 EP 07]
🤖 Created with Claude (Anthropic)
클로드 어디까지 써봤니 · EP 07
블로그 자동화 첫걸음
— Blogger v3 API로 첫 자동 게시 완성하기
클로드의 친구 · 2026년 4월 14일
지난 EP 06에서는 AI를 조종하는 5가지 레버(Guides)를 완전 정복했습니다.
이번 에피소드에서는 드디어 블로그 자동화의 핵심 기술을 만납니다. 클로드에게 "이 글 블로그에 올려줘"라고 말하면 실제로 포스트가 올라가는 마법 — Blogger v3 API입니다. OAuth 인증의 원리부터 REST API 호출, 그리고 초보자를 함정에 빠뜨리는 CodeMirror 문제까지 낱낱이 파헤칩니다.
1. "그냥 붙여넣으면 안 되나요?" — 수동 게시의 한계
블로그 자동화를 처음 생각한 사람들은 대부분 이런 상상을 합니다. "클로드가 HTML을 만들면, 내가 복사해서 붙여넣으면 되잖아?" 맞습니다. 처음 한두 번은요.
하지만 블로그를 5개, 10개 운영하고, 매일 2~3편씩 올려야 한다면 이야기가 달라집니다. 클로드의 친구도 처음엔 그렇게 했습니다. HTML을 복사하고, 블로그 관리 화면을 열고, HTML 모드로 전환하고, 붙여넣고... 이 반복 작업이 하루에만 40분을 잡아먹었습니다.
✏️ 계산해보면: 1편 게시에 5분 × 하루 8편 = 40분 × 30일 = 매달 20시간 낭비
20시간이면 새로운 에피소드 10편을 쓸 수 있는 시간입니다. 수동 게시는 처음엔 "어렵지 않다"고 느끼지만, 규모가 커지면 반드시 병목이 됩니다. 이 병목을 제거하는 열쇠가 바로 Blogger v3 API입니다.
2. API란 무엇인가 — 식당 비유로 이해하기
API(Application Programming Interface)가 처음이라면 이렇게 생각해보세요.
🍽️ 식당 비유
당신(코드) = 손님
메뉴판(API 문서) = 무엇을 주문할 수 있는지 적혀 있는 목록
웨이터(API) = 주방과 손님 사이를 오가며 요청을 전달
주방(Blogger 서버) = 실제로 포스트를 저장하고 관리하는 곳
당신은 주방에 직접 들어갈 수 없습니다. 하지만 웨이터(API)에게 "포스트 하나 올려주세요"라고 말하면, 웨이터가 주방에 전달해서 요리(게시)가 됩니다. 이때 주문 형식을 정확하게 지켜야만 주문이 통합니다 — 그 형식이 바로 REST API 규칙입니다.
3. OAuth 2.0 — "당신이 누구인지 증명하세요"
API를 쓰려면 먼저 신원 증명이 필요합니다. 낯선 사람이 "블로그에 글 올려주세요"라고 하면 Blogger 서버는 당연히 거부합니다. 본인임을 증명해야 합니다.
이 신원 증명 방식이 OAuth 2.0입니다. 구체적인 흐름은 다음과 같습니다.
처음 설정(1~3단계)은 한 번만 합니다. 이후 자동화는 4~5단계만 반복합니다. 클로드의 친구는 이 과정을 blogger_token.json 파일에 저장해두고, 매번 스크립트가 자동으로 갱신하도록 설정했습니다.
4. Blogger v3 API — 실제 코드로 보는 게시 원리
Blogger v3 API의 포스트 생성 엔드포인트는 이렇게 생겼습니다.
Authorization: Bearer {access_token}
Content-Type: application/json
{
"title": "포스트 제목",
"content": "<p>포스트 내용...</p>",
"labels": ["태그1", "태그2"]
}
복잡해 보이지만 핵심은 세 가지입니다. 어디에 보내는지(엔드포인트), 내가 누구인지(Authorization 헤더), 무엇을 보내는지(JSON 본문). 이 세 가지만 맞추면 Blogger 서버는 자동으로 포스트를 만들어줍니다.
실제로 클로드의 친구가 사용하는 Python 코드는 이렇게 생겼습니다.
# 저장된 토큰 불러오기
with open("blogger_token.json") as f:
tok = json.load(f)
# API 호출
r = requests.post(
f"https://www.googleapis.com/blogger/v3/blogs/{BLOG_ID}/posts/",
headers={"Authorization": f"Bearer {tok['access_token']}",
"Content-Type": "application/json"},
json={"title": "오늘의 포스트 제목",
"content": html_content}
)
print(r.json()["url"]) # 게시된 URL 출력
Python을 몰라도 괜찮습니다. 중요한 것은 이 10줄이 하는 일을 이해하는 것입니다. 파일에서 토큰을 읽고, 그 토큰을 헤더에 담아, 제목과 내용을 JSON으로 보내면 — Blogger가 알아서 포스트를 만들어줍니다. 나머지는 클로드가 채워줍니다.
기존 포스트 수정(PATCH)도 똑같습니다
POST 대신 PATCH를 쓰고, URL 끝에 {postId}를 추가하면 됩니다. 이미 게시된 포스트의 내용을 API로 수정할 수 있습니다. 클로드의 친구가 19편 전체의 내비게이션 링크를 일괄 업데이트한 방식이 바로 이것입니다.
다음 편(EP 08)에서는 이 API를 바탕으로 CSS 재사용 전략을 다룹니다. 10개 블로그에 동일한 디자인을 적용하면서도 관리 비용을 최소화하는 방법입니다.
#클로드어디까지써봤니 #BloggerAPI #v3API #블로그자동화 #OAuth2 #RESTAPI #클로드 #Claude #AI자동화 #하네스엔지니어링 #비개발자AI #Blogger #구글블로그 #자동게시 #CodeMirror #클로드의친구 #AI블로그 #파이썬자동화 #구글API #디지털노마드 #스마트워크 #콘텐츠자동화 #블로그운영
5. 실전 실습 — OAuth 토큰 발급부터 첫 게시까지
이제 실제로 해봅시다. 클로드의 친구가 처음 자동화를 설정할 때 밟은 단계 그대로입니다.
Step 1
Google Cloud Console에서 프로젝트 생성 → Blogger API v3 활성화 → OAuth 2.0 클라이언트 ID 생성 (client_id, client_secret 발급)
Step 2
OAuth 동의 화면에서 Blogger API 스코프 추가 → 처음 한 번 브라우저 인증으로 access_token + refresh_token 획득
Step 3
토큰을 JSON 파일에 저장 (blogger_token.json) → 이후 refresh_token으로 자동 갱신, 수동 인증 불필요
Step 4
Python으로 POST 요청 → 블로그 ID + access_token + 제목 + HTML 내용 전송 → 게시 완료! URL 반환
⚠️ CodeMirror 함정 주의!
Blogger 관리 화면에서 HTML을 직접 입력하는 에디터는 CodeMirror라는 라이브러리를 씁니다. 브라우저 자동화(form_input, textarea.value)로는 내용이 실제 저장되지 않습니다. 반드시 v3 REST API를 사용하세요. 이것을 모르고 수동/자동화를 섞었다가 반나절을 날린 경험이 있습니다.
✅ 다음 편 예고: EP 08에서는 이 API를 응용한 시리즈 블로그 CSS 설계를 다룹니다. 같은 HTML 구조를 10개 블로그에 재사용하면서도 유지보수를 최소화하는 전략입니다.
💭 클로드의 친구 생각
API를 처음 배웠을 때 가장 충격이었던 건 "이걸 배우기만 하면 손가락 하나로 블로그 10개에 동시 게시할 수 있다"는 사실이었습니다. 하지만 실제로 해보기까지 3주가 걸렸습니다. OAuth 설정이 복잡해서가 아니라, "이걸 내가 할 수 있을까?"라는 두려움 때문이었습니다.
지금 돌아보면 — 가장 중요한 건 한 번 성공 경험입니다. 처음으로 코드가 블로그에 글을 올려줬을 때의 그 느낌. "내가 프로그래머가 된 것 같다"는 착각이 아니라, "AI와 함께라면 나도 이걸 할 수 있구나"라는 자신감. 그것이 이 시리즈 전체의 출발점입니다.
📚 전체 에피소드 목차
Phase 1: 출발점
Phase 5: 완성
Phase 2: 설계도
- EP 05: 나만의 헌법 만들기
- EP 06: Guides 완전 정복
- ► EP 07: 블로그 자동화 첫걸음
- EP 08: CSS 한 번 쓰고 열두 번 쓰기
Phase 4: 운영 심화
📖 전 19개 에피소드 | Phase 1~5 완결형 커리큘럼
コメント
コメントを投稿