반응형
매일 X, 스레드, 인스타에 글을 올리는 일은 생각보다 손이 많이 가요. 혼자 제품을 만들다 보면 마케팅까지 챙길 시간이 늘 부족하죠. 그래서 이 반복을 n8n으로 자동화해봤어요. 거창한 SaaS 없이, 맥미니 한 대와 무료 도구만으로요.
이 글은 자랑이 아니라 직접 부딪힌 기록이에요. 똑같이 1인으로 운영하시는 분께 시행착오라도 줄여드리고 싶어서 정리했어요.
왜 클라우드 대신 자가호스팅이었나
처음엔 클라우드 자동화 서비스를 봤는데, 실행 횟수 제한과 월 구독이 부담이었어요. 결론은 n8n 셀프호스팅이었어요.
- n8n을 Docker로 맥미니에 올리고, 데이터는 PostgreSQL에 저장
- 외부에서 들어오는 웹훅은 ngrok 터널로 연결
- 실행 횟수 제한 없이, 비용은 사실상 0

무엇을 자동화했나
핵심은 세 채널의 일일 포스팅이에요. X, 스레드, 인스타 각각의 워크플로우를 만들고, 게시 큐와 로그는 n8n의 데이터테이블에 담았어요. (처음엔 구글 시트를 썼는데, 관리가 번거로워서 전부 데이터테이블로 옮겼어요.)
여기서 끝이 아니에요. 올린 글의 반응을 다시 수집해서 다음 글에 반영하는 학습 루프를 붙였어요.
- 게시 → 지표 수집(좋아요·조회·저장)
- 주마다 잘 된 글의 패턴을 정리
- 그 요약을 다음 포스팅 프롬프트에 넣어 조금씩 개선

빌드는 Claude Code와 함께
워크플로우를 손으로 클릭해서 만들지 않고, Claude Code로 설계하고 n8n API로 코드처럼 배포했어요. 리뷰는 Codex에 맡겨서 교차 검증했고요. 덕분에 수정과 재배포가 빨라졌어요.
직접 깨진 부분들 (이게 제일 도움될 거예요)
문서엔 잘 안 나오는, 직접 당한 것들이에요.
- API로 워크플로우를 수정하면 cron 등록이 풀려요. 배포 후 컨테이너를 재시작하고 "Activated workflow" 로그를 확인하는 걸 절차로 고정했어요.
- 노드를 병렬로 모으면(fan-in) 실행이 안 돼요. "hasn't been executed" 에러가 나서, 순차 체인으로 설계를 바꿨어요.
- AI 호출에서 토큰 상한을 추론과 같이 걸면 빈 응답이 와요. 해당 파라미터를 빼니 해결됐어요.
- 품질 검사를 너무 빡세게 잡으면 매일 다른 항목에서 막혀요. 게시를 멈출 치명적 규칙과 경고만 할 규칙을 분리했어요.
자동화에서 지킨 원칙
마지막으로, 자동화라고 다 맡기진 않았어요.
- 실제로 올리는 건 사람이 승인한 뒤에만
- 수치나 사실은 지어내지 않고 검증된 것만
- 이해한 작업만 자동화 (수동으로 충분히 해본 뒤에)
작은 도구라도 매일 쓰이면 의미가 생기더라고요. 다음 글에선 반응 학습 루프를 더 자세히 풀어볼게요.
반응형