616일치 콘텐츠를 자동으로 뿌리는 시스템
Threads 자동 발행 파이프라인을 완성했다. 이미지 631장, 텍스트 1,848개. 하루 3포스트, 616일을 자동으로 굴린다.
4월 27일부터 30일까지, 나흘 동안 두 가지를 끝냈다. 토스페이먼츠 PG 심사 준비와 Threads 자동 발행 파이프라인. 결과적으로 화조당은 결제 인프라의 첫 관문을 통과할 준비를 마쳤고, 616일치 콘텐츠가 자동으로 올라가는 시스템을 갖추게 됐다.
PG 심사, 한 번에 끝내는 전략 (04-27)

토스페이먼츠에서 계약 심사 메일이 도착했다. 열어보니 예상치 못한 조건이 하나 있었다. 보증보험 가입 필수. 온라인 결제를 붙이려면 피할 수 없는 관문이다.
PG 대리점을 비교했다. 인산아이비와 플러스, 두 곳을 놓고 따져봤다.
- 인산아이비: 업력이 길고 레퍼런스가 많다. 하지만 초기 사업자에게 유연하지 않았다.
- 플러스: 소규모 사업자 대응이 빠르고, 보증보험 안내도 깔끔했다.
플러스를 선택했다. 월 정산한도 200만 원으로 시작하고, 보험료는 연 19,060원. 화조당처럼 초기 매출이 크지 않은 프로젝트에는 충분한 한도다. 매출이 늘면 그때 올리면 된다.
심사 전략은 단순했다. 1턴 컷. 서류를 한 번에 완벽하게 넣어서 재심사 없이 통과시키는 것. 사업자등록증, 통신판매업 신고증, 보증보험 가입증명서, 사이트 스크린샷까지 한꺼번에 준비했다. 심사 담당자와 메일을 여러 번 주고받는 건 시간 낭비다. 처음부터 빈틈없이 넣으면 된다.
PG 연동은 기술적으로 어렵지 않다. 어려운 건 서류와 행정이다. 개발자들이 사이드 프로젝트에서 결제를 포기하는 이유의 대부분이 여기에 있다. 코드가 아니라 서류에서 막힌다.
유나 이미지 631장, 클라우드로 (04-29)
Threads에 올릴 콘텐츠를 준비하면서, 유나(화조당의 AI 캐릭터) 이미지 631장을 정리했다. 총 607MB. 이걸 어디에 올릴지 고민하다가 Cloudflare R2를 선택했다.
R2를 선택한 이유는 단순하다.
- 이그레스 무료: 이미지를 아무리 많이 내려받아도 전송 비용이 0원이다.
- S3 호환 API: 기존 도구와 스크립트를 그대로 쓸 수 있다.
- 무료 티어가 넉넉하다: 월 10GB 스토리지, 1,000만 건 읽기 요청. 화조당 규모에서는 과금될 일이 없다.
631장을 업로드하고 나니 안도감이 들었다. 로컬에만 있던 이미지가 CDN 위에 올라가면서, 어디서든 URL 하나로 접근할 수 있게 됐다.
같은 날 n8n 인프라도 정비했다. 그동안 Quick Tunnel(임시 터널)로 n8n을 외부에 노출하고 있었는데, 이건 매번 URL이 바뀌어서 웹훅을 걸 수가 없었다. Named Tunnel로 전환하면서 n8n.hwajodang.com이라는 고정 도메인을 붙였다. 이제 외부 서비스에서 안정적으로 웹훅을 호출할 수 있다.
사업 계정도 분리했다. hwajodang@gmail.com을 새로 만들어서 화조당 관련 서비스를 모두 이 계정으로 옮겼다. 개인 계정과 사업 계정이 섞이면 나중에 반드시 문제가 된다. 세금, 권한, 보안 — 전부.
Threads 자동 발행 파이프라인 (04-30)

마지막 날이 가장 치열했다. n8n 워크플로우로 Threads 자동 발행을 완성하는 날이었다.
첫 번째 벽: R2 URL 거부
시스템을 다 만들어 놓고 테스트를 돌렸더니, Meta가 R2 URL을 거부했다. Threads API가 이미지를 가져갈 때 특정 CDN 도메인을 신뢰하지 않는 것 같았다. R2의 커스텀 도메인을 붙여봐도 마찬가지.
해결책은 Cloudinary로 이전하는 것이었다. Cloudinary는 Meta 플랫폼에서 오래 전부터 검증된 이미지 호스팅이다. R2에 올린 이미지를 Cloudinary로 옮기는 건 아깝지만, 동작하지 않는 시스템은 의미가 없다. 빠르게 판단하고 옮겼다.
두 번째 벽: 토큰 노출 사고
테스트 과정에서 실수가 있었다. Threads API 토큰이 로그에 노출됐다. 즉시 Meta 개발자 포털에서 앱 시크릿을 재생성하고, 기존 토큰을 전부 무효화했다.
이런 사고는 개발 과정에서 언제든 일어날 수 있다. 중요한 건 발견 즉시 대응하는 속도다. 토큰이 노출된 시점과 재생성 시점 사이의 간격이 짧을수록 피해 가능성이 줄어든다. 이번에는 몇 분 안에 처리했다.
완성된 시스템
모든 문제를 해결하고 나니, 꽤 견고한 시스템이 나왔다.
- 하루 3슬롯: 08:00 / 12:30 / 20:00
- 랜덤 지터: 정확히 같은 시간에 올라가면 봇처럼 보인다. 각 슬롯에 ±몇 분의 랜덤 지연을 넣었다.
- 주간 토큰 자동갱신: Threads의 long-lived 토큰은 60일 유효. 매주 자동으로 갱신해서 만료를 원천 차단한다.
- 콘텐츠 풀: 유나 이미지와 텍스트를 조합해서 만든 1,848개의 포스트. 1,848 ÷ 3 = 약 616일치.
616일이면 거의 2년이다. 한 번 만들어 놓으면 2년 동안 Threads에 하루 3번씩 포스트가 올라간다. 물론 중간에 콘텐츠를 추가하거나 수정할 수도 있지만, 최소한 2년 동안은 "콘텐츠가 없어서 못 올린다"는 상황은 오지 않는다.
자동화에 대한 생각
마케팅 자동화를 만들면서 한 가지 확실히 느낀 게 있다. 자동화의 가치는 '안 해도 되는 것'을 만드는 데 있지 않다. 자동화의 진짜 가치는 '해야 하는데 꾸준히 못하는 것'을 가능하게 만드는 데 있다.
매일 SNS에 포스트를 올리는 건 누구나 할 수 있다. 하지만 매일, 하루 3번, 616일 동안? 사람이 직접 하면 열흘도 못 간다. 까먹거나, 귀찮거나, 다른 일이 생기거나. 자동화는 이 "인간의 일관성 부족"을 기계의 일관성으로 대체한다.
n8n으로 이 파이프라인을 만드는 데 걸린 시간은 하루. 디버깅과 인프라 정비까지 합하면 이틀. 이틀의 투자로 2년의 마케팅 일관성을 얻었다. 이런 ROI는 다른 어떤 마케팅 방법으로도 달성하기 어렵다.
나흘의 결산
돌이켜보면, 4월 27일부터 30일까지의 나흘은 화조당의 인프라 계층을 한 단계 올린 기간이었다.
- 결제: PG 심사 서류 준비 완료 → 통과만 남음
- 콘텐츠: 631장 이미지 + 1,848개 텍스트 → 클라우드 안착
- 마케팅: Threads 자동 발행 → 616일치 무인 운영
- 인프라: n8n Named Tunnel + 사업 계정 분리 → 장기 운영 기반
PG, 이미지 호스팅, SNS 자동화, 인프라 — 네 가지가 동시에 진행됐다. 하나씩 따로 보면 작은 일들이지만, 이런 작은 결정들이 쌓여서 프로젝트의 기반이 된다.
다음 단계는 실제 결제 연동과 상품 등록이다. 파이프라인은 준비됐으니, 이제 그 위에 매출을 올릴 차례다.