깃 블로그 자동화 세팅 | 1일마다 글이 올라가게 만들어봤다
하루 만에 AI 블로그 자동 포스팅 시스템을 만들면서 배운 것들.
블로그에 1일마다 새 글이 자동으로 올라오게 만들어봤다.
처음엔 “몇 줄만 쓰면 되겠지” 했는데, 하루 동안 커밋이 열두 개 쌓였다. 걸렸던 지점들을 정리해둔다.
1️⃣ 만든 것
크게 세 조각이다.
① 글감 수집
scripts/prepare.py가 Figma, React, Vercel, Anthropic 같은 공식 블로그를 돌면서 최근 글을 긁어온다. 결과는 candidates.json에 쌓아둔다. 2차 소스(Medium, dev.to)는 뺐다. 톤이 섞이면 블로그 일관성이 흐트러질 것 같아서.
② 글 작성
.github/workflows/auto-blog.yml이 1일마다 돌면서 anthropics/claude-code-action을 깨운다. Claude는 prompts/claude_instructions.md의 지시를 따라 후보 중 하나를 골라 한국어 학습 노트로 다시 쓴다. 이때 내 블로그의 문체·어휘·톤을 담은 가이드도 같이 주입한다.
③ 썸네일
scripts/thumbnail.py가 카테고리별 solid 배경에 영어 키워드 하나만 크게 얹은 이미지를 만든다. 피그마 시안을 Pillow로 옮긴 거라 폰트 크기·정렬만 값으로 관리한다.
2️⃣ 중간에 걸린 지점들
해본 적 없는 작업이었다. GitHub Actions가 뭔지, 워크플로우가 어떻게 돌아가는지는 간단하게만 알았다. 그래서 시작부터 연달아 막혔다.
- 최신 버전에서 지시문 전달 방식이 prompt_file에서 prompt로 바뀜
- 한 번에 쓸 수 있는 작업 수(max-turns)가 25로는 부족해서 60으로 늘림
- Claude에게 파일 쓰기 권한이 기본으로 없어서 Read, Write, Edit, Bash, WebFetch 등을 명시
- GITHUB_TOKEN으로는 푸시가 안 돼서 원격 URL에 토큰을 직접 끼워 넣음
- [dev-tools] 같이 하이픈 있는 카테고리를 Chirpy 테마가 링크로 못 걺
하나씩 떼어 놓고 보면 간단한 문제들인데, 해본 적 없는 입장에선 하나하나가 다 막막했다. 워크플로우 안에서 연달아 터지니 디버깅이 꽤 고됐다.
3️⃣ 진짜 문제는 기술이 아니었다
돌아가게 만든 뒤 첫 글을 열어봤다. 이상했다.
“혁명적 변화”, “많은 개발자들이”, “X의 본질은 Y다” 같은 문장이 섞여 있었다. 내가 평소 쓰는 말투가 전혀 아니었다.
그래서 하루의 후반은 톤을 잡는 데 썼다. 관리하기 편하게 세 개의 파일로 나눠서 접근했다.
- 첫 번째 파일(style_guide.md)에는 AI 티 나는 표현 블랙리스트를 따로 모아뒀다. “혁명적”, “게임 체인저”, “Forrester가 분석한…” 같은 표현이 나오면 빼도록 명시했다.
- 두 번째 파일(author_context.md)에는 내 말투와 성격을 적어뒀다. “단정하지 않고 조심스럽게 관찰한다”, “배우는 중이다”, “결론보다 질문이 먼저 온다” 같은 내용으로.
- 세 번째 파일(claude_instructions.md)에는 “글을 쓰기 전에 반드시 위 두 파일을 읽고 시작할 것”을 제일 먼저 적어뒀다. 이 단계를 안 거치면 예전 AI 패턴이 계속 나왔다.
한 파일에 다 넣지 않고 스타일·페르소나·지시문 세 층으로 나눈 건, 처음엔 오버엔지니어링 같았다. 근데 돌려보니 말투가 흔들릴 여지가 확실히 줄었다.
⭐️ 마지막으로, 자동화를 세팅하며 든 생각
이번에 블로그 자동화에서 중요한 건 매일 글이 올라가게 만드는 것이 아니라 내가 쓸 법한 글만 올라가게 만드는 것이라는 생각이 들었다.
기술 문제는 시간 들이면 결국 풀렸다. 근데 톤은 푸는 문제가 아니라 정의하는 문제였다. 스타일 가이드를 쓰는 작업이 결국 “내 말투를 언어로 한 번 더 설명해두는 일”에 가까웠다.
잘 돌아가는 파이프라인보다, 그 끝에서 내가 낯설어하지 않는 글이 나오게 만드는 쪽이 훨씬 품이 들었다. 다음 자동 생성 글이 어떻게 올라올지 조심스럽게 지켜볼 생각이다.
물론 최종적으로는 내가 다시 다듬어야 할 것 같다. 한번 더 정리하면서 공부도 계속 이어가 볼 생각이다.
전체 코드와 커밋 히스토리: jerryko570/jerryko570.github.io