검색
← 모듈 로드맵

Claude Code로 4개 플랫폼 자동 게시한 워크플로

발행 출처 Medium · Claire

클로드 코드사례전문가

나중에 보기좋아요
공유 · 인쇄
후기댓글

Claude Code로 4개 플랫폼 자동 게시 워크플로

Claude Code로 4개 플랫폼에 게시하고, X에 공지하고, Drive에 보관하고, 한 번의 요청으로 모두 기록하게 했습니다. 15일 동안 30편. 어려운 부분은 각 플랫폼의 특이점이었습니다

8분 읽기1시간 전

2026–10–10부터 10–24까지 15일 동안 같은 30편의 글을 note(일본의 블로그 플랫폼), Substack, Medium에 올렸습니다. Zenn이라는 일본 기술 블로그 사이트에는 15편의 글과 3권의 책을 올렸습니다. 제가 하는 말은 오직 하나의 요청뿐입니다. “글을 게시해 주세요.” 나머지는 비서(Claude Code)가 처리합니다. 무엇을 게시할지 고르고, 발행하고, X에 알리고, 파일을 Google Drive로 옮기고, 무엇이 나갔는지 기록합니다. 이 글은 AI의 도움으로 작성했습니다.

이 글은 그 시스템의 설계도입니다. 각 부분, 그 부분을 추가하게 만든 사건, 그리고 플랫폼별 차이점을 다룹니다. 사이드 프로젝트를 하는 사람들 가운데 AI에게 글 게시를 맡기고 싶은 분들, 그리고 같은 글을 여러 플랫폼에 올리는 분들을 위해 썼습니다.

여섯 가지 구성 요소. 각각은 사건이 발생한 뒤 추가되었습니다

제가 2026–10–10에 처음 요청한 문장은 다음 한 줄이었습니다.

“scenery window처럼, 알아서 돌아가게 하고 싶습니다. 제가 요청하면 무엇을 업로드할지 스스로 결정하고, 게시하고, 소셜 미디어에 올리고, Drive로 옮기고 로컬에서는 삭제하고, 어떤 글이 올라갔는지도 추적하게 해 주세요.”

“scenery window”는 제가 이미 같은 방식으로 운영하고 있는 YouTube 영상 시스템입니다. 글 쪽은 다음 순서로 동작합니다.

이제부터는 각 구성 요소가 왜 필요했는지, 그리고 각 사건이 언제 있었는지 날짜와 함께 설명하겠습니다. 또한 플랫폼 차이 표, 15일간의 실제 수치, 그리고 비용도 함께 적습니다.

장부가 없으면 실패한 실행이 다시 게시됩니다

장부(toukou_daicho.json)는 글-플랫폼 쌍마다 한 행씩 상태와 함께 보관합니다. 상태는 "draft created"에서 "content filled in and checked"를 거쳐 "published and checked"로 이동합니다. 플랫폼에 무엇이든 생성되면 그 직후 플랫폼의 id가 기록됩니다. 따라서 실행 도중 실패하더라도 같은 명령을 다시 실행하면 처음부터 다시 만들지 않고 중단된 지점부터 이어서 진행합니다.

게시 도구는 실행 전에 장부에 잠금(폴더)을 만듭니다. 동시에 두 실행이 일어나는 일은 없습니다. X 공지 역시 장부에 한 행을 쓰므로, 공지 도구를 여러 번 실행해도 두 번 보내지지 않습니다.

나중에 두 가지 상태를 추가했습니다. “not posted”(muyou)와 “posted as a book chapter”(honni)입니다. 2026–10–13에 저는 “Zenn에는 무료 글만 게시하고, 유료 글은 note로 안내하자”고 정했습니다. 그래서 유료 글에 대한 Zenn 행은 muyo입니다. 그런 행은 12개가 있습니다. muyo가 없으면 Zenn 대기열이 유료 글까지 가져오게 됩니다.

변환기는 통과시킬 수 없는 것을 발견하면 멈춥니다

변환기(henkan.mjs)는 Markdown을 블록으로 바꿉니다. 표는 이미지가 됩니다. 변환할 수 없는 문법이나, 관련 글 URL이 아직 설정되지 않았음을 나타내는 마커(“게시 후 URL로 바꾸기”라는 주석)를 발견하면 멈춥니다.

annai.mjs는 관련 글 링크를 추가합니다. 무료 글의 경우, 같은 플랫폼에 이미 게시되었고 태그가 겹치는 글을 고릅니다. 본문에는 1개, 끝부분에는 최대 3개를 넣습니다. "AI"나 "generative AI"만 겹치는 경우는 포함되지 않습니다. 시리즈의 첫 글에는 상단과 하단에 유료 요약본 링크를 넣습니다. 요약본이 아직 나오지 않았으면 첫 글은 멈춥니다.

4개 플랫폼은 각각 완전히 다른 특이점이 있었습니다

note: 태그의 공백과 “추천 태그”

note에서는 초안이 편집기 자체가 사용하는 것과 같은 요청으로 생성됩니다. 게시는 화면의 “Post” 버튼을 눌러 수행합니다. 그 버튼을 누르면 reCAPTCHA 검사가 실행됩니다.

문제는 해시태그였습니다. 2026–10–15에 공백이 들어간 태그는 허용되지 않았습니다. 저는 그것을 “ClaudeCode”로 바꾸고 다시 게시했습니다. 그 이전인 10/12와 13에는 화면에 보이는 “suggested tags”(예: #YouTube)를 이미 추가된 태그로 착각해서 태그가 건너뛰어졌습니다. 이제는 “delete”라고 표시된 버튼만 추가된 태그로 간주합니다. 이름이 정확히 일치할 때만 추천 태그를 클릭합니다. 그 규칙은 “#ClaudeCode101”을 실수로 클릭해 버린 뒤 생겼습니다. 101을 개수로 읽었기 때문입니다.

2026–02–27에 note 운영자는 “기계적으로 대량의 글을 게시하는 행위”에 대한 대책을 발표했습니다. 어디부터가 “대량”인지는 밝히지 않았습니다. 그래서 저는 하루 1건(첫 주에만 2건 가능)으로 제한을 두었고, 도구도 그 제한을 강제합니다.

Zenn: 24시간, 7일, 그리고 중복 전송

Zenn은 GitHub와 연동되어 있고, git push로 글이 게시됩니다. 공식 FAQ에 따르면 아티클은 “지난 24시간의 게시 수”, 책은 “지난 1주일의 게시 수”로 판단합니다. 실제 한도는 공개되어 있지 않습니다.

실제로 한 번 게시가 통과된 뒤 1.1시간 후에 두 번째 게시를 시도하자, 10/17과 10/21 모두 차단되었습니다. 10/19에는 이전 게시 후 24.6시간 뒤에 보낸 것은 차단되었고, 24.8시간 뒤의 push는 통과했습니다. 24시간을 대략적인 기준으로 보고, 여유를 두는 편이 좋습니다.

중복 전송은 별도의 사건이었습니다. 같은 대화를 여러 창에서 다시 열면, 대화 내부의 예약 작업(cron)이 창마다 한 번씩 되살아나 실행됩니다. 10/14 19:40과 10/15 03:00에 같은 글이 두 창에서 전송되었습니다. 그래서 그 사이에 가드(zenn_mamori.mjs)를 넣었습니다. 한 번에 하나의 전송만 실행되며, 이전 전송 후 60분이 지나야 합니다. 마지막 성공 게시 이후에는 아티클은 24시간, 책은 7일을 대기합니다. 각 전송, 차단, 성공은 zenn_soushin.json에 기록됩니다. 10/10 이후 로그에는 성공 19건과 차단 30건이 남아 있습니다(push할 때마다 자동 재시도한 것도 포함).

또 하나 있습니다. Zenn은 보관용으로 push한 경우에도 미게시 아티클을 다시 검사합니다. 10/18에는 그 방식으로 한 글이 통과했습니다.

Substack: 429, 인증 코드, 그리고 본문 속 문자열

Substack은 영어 번역본(.en.md 파일)을 사용합니다. 약관상 내부 API 사용이 허용되지 않으므로, 텍스트를 에디터에 붙여넣습니다. 붙여넣기 직후 저장하면 429(레이트 리밋)로 거절됩니다. 도구는 30초 대기하고, 그래도 실패하면 60초 간격으로 최대 3번 재시도합니다.

2026–10–13에는 Mac mini의 자동화 브라우저(Playwright)가 게시를 누를 때마다 Substack이 새 로그인을 요구했고, 인증 코드 이메일이 4통 도착했습니다. 이제는 재시도하지 않고 멈추도록 했습니다. 10/14부터는 MacBook의 Chrome 확장을 통해 게시를 누르고, mini에서는 이미지 업로드만 수행합니다.

10/19에는 본문 안의 문자열 때문에 초안 저장이 403으로 반환되었습니다. 그 문자열은 상위 폴더를 거쳐 시스템 설정 파일로 올라가는 경로처럼 생긴 형태였는데, 공격에서 자주 쓰이는 형태입니다. 사이트의 방어장치(WAF, 수상한 트래픽을 차단하는 시스템)가 이를 공격으로 판단한 것이라고 봅니다. 문구를 바꾸자 문제가 해결되었습니다. 다음 날부터는 붙여넣기 전에 정규표현식으로 이런 문자열을 찾도록 했습니다.

유료 구역은 소스 코드에서 유료 부분이 시작되는 위치를 표시하는 주석을 마커 문단으로 바꾼 뒤, 이를 에디터의 유료 구역 블록으로 대체합니다.

Medium: Cloudflare, AI 공개 표시, 태그 화면, 그리고 큰 본문

Medium에서는 자기 프로필로 연 자동화 브라우저가 Cloudflare에 의해 403으로 막혔습니다. 보이는 창이 있든 없든 마찬가지였습니다. 지금은 MacBook의 Chrome 확장이 Substack용으로 만든 HTML을 새 글 화면에 한 번 붙여넣습니다.

Medium의 규정은 AI 도움을 받았음을 공개해야 합니다. “이 글은 AI의 도움을 받아 작성되었습니다.”라는 문구가 영어 버전의 첫 두 문단 안이나 맨 끝에 들어가야 합니다. 없으면 HTML 도구가 멈춥니다.

태그 화면(Topics, 최대 5개)은 10/23에 바뀌었습니다. JavaScript로 값을 설정하면 더 이상 제안 목록이 뜨지 않았습니다. 작동한 방법은 입력칸을 실제로 클릭하고, 실제로 타이핑한 뒤, 2초 기다리고, 첫 번째 제안 항목을 실제로 클릭하는 방식이었습니다. 각 태그를 넣기 전에 입력칸을 다시 클릭합니다.

10/24에는 시리즈 요약이 너무 커서, 대화 과정을 거치지 않고 HTML을 붙여넣었습니다. Mac mini에서 임시 서버를 띄웠습니다. MacBook의 Chrome이 그 서버에서 복사 페이지를 열어 내용을 복사한 뒤, cmd+v로 붙여넣었습니다. 이미지 34장과 약 58,000자의 일본어가 한꺼번에 들어갔습니다.

테스트 게시는 하지 않습니다. Medium에서는 “게시 후 삭제한” 글도 24시간 게시 횟수에 포함됩니다. 10/10에 테스트로 3번 했다가 한도에 걸렸습니다.

로그인은 일반 Chrome에만 남는다

처음에는 Playwright의 launchPersistentContext로 별도의 프로필을 열었습니다. macOS에서는 이것이 가짜 키체인으로 시작되기 때문에, 일반 Chrome에 저장된 로그인 정보를 읽을 수 없습니다. 세 플랫폼 모두 로그인 정보가 사라졌습니다. 지금은 일반 Chrome을 띄우고, 외부에서 그것에 연결합니다(chrome.mjs). 저는 일반 Chrome에서 직접 한 번 로그인합니다.

보관은 개수가 맞은 뒤에만 삭제한다

보관 도구(kiji_taihi.mjs)는 완성된 글을 Drive에 업로드합니다. 업로드 위치는 게시 날짜와 제목으로 이름 붙인 폴더이며, 이는 글 게시용 폴더 아래에 생성됩니다. 그 안에는 각 플랫폼의 원고와 공개 URL, 이미지, 기타 자료, 그리고 해당 글의 원장 행이 들어 있습니다. 어떤 플랫폼이라도 완전히 게시되지 않았으면 중단합니다. 업로드 후에는 크기와 파일 개수를 비교하고, 일치할 때만 로컬 복사본을 삭제합니다. 30개 글 중 28개는 보관되었습니다. 남은 2개 중 1개는 Zenn 대기열에서 기다리고 있습니다.

X 공지 문구는 3번 수정했다

공지 도구(kiji_x_kokuchi.py)는 노트 URL을 함께 넣어 게시합니다. 링크가 있는 게시물은 \$0.200이 들며, 링크가 없는 게시물(\$0.015)의 13.3배입니다. 기본 설정에서는 전송하지 않으며, --okuru를 붙여야만 전송합니다. #AI, #automation, #sidejob을 뜻하는 일본어 해시태그 3개가 자동으로 추가됩니다.

문구는 3번 수정했습니다. 10/13: “그냥 ‘글을 올렸습니다’라고만 되어 있어서 너무 봇 같아요.” 10/18: “너무 업무적이에요.” 10/23: “조금 너무 수다스러워요.” 지금은 적당히 조절된 숫자 1개와 이모지 2개 또는 3개가 들어간 짧고 직접적인 문장입니다.

15일간의 실제 수치와 비용

원장 기준으로 집계했습니다(2026–10–25 기준).

note에서는 30개 중 17개가 유료였습니다. 10/13부터는 하루에 한 쌍씩 올렸습니다. 무료 입문 글 1개와 유료 글 1개입니다. 10/23까지 11쌍이었고, 10/24에는 시리즈(무료 첫 글 + 요약)를 올렸습니다.

기록된 유일한 사용량 기반 결제는 X 공지입니다: 19개 게시물 × \$0.200 = \$3.80(테스트 게시물 1개는 제외). Codex로 만든 헤더 삽화는 구독 범위 안에 있습니다. 매출은 제 기록에 없어서 보고할 수 없습니다.

남은 것

Medium은 월 조회수가 1,600을 넘을 때까지 무료로 게시할 수 있습니다. Zenn의 한도는 아직 알 수 없고, 게시물이 통과되는지는 보내기 전까지 알 수 없습니다. 글당 소요 시간도 아직 측정하지 않았습니다.

같은 시스템을 만든다면, 원장부터 시작하세요. 플랫폼별 특이점은 하나씩 드러나지만, 원장이 있으면 실패한 실행도 언제든 다시 이어서 할 수 있습니다.

출처

  • 원문: https://medium.com/@claire_ai/i-had-claude-code-publish-to-4-platforms-announce-on-x-archive-to-drive-and-log-it-all-from-one-dde630bee32f?source=rss------claude_code-5 (2026-10-25 · Claire)

자료 변경 기록을 불러오는 중입니다.

다음 자료를 불러오는 중입니다.

후기

아직 후기가 없습니다

직접 적용한 결과와 주의할 점을 공유하는 공간입니다.

로그인하고 후기 쓰기

참고 자료 · 도구와 릴리스 노트

댓글