자동화가 바로 안 도는 이유 — 웹훅과 폴링 차이, Zapier·Make 플랜별 실행 주기 정리
자동화를 켰는데 몇 분 뒤에야 도는 건 대부분 고장이 아니라 실행 주기 때문이에요. 웹훅과 폴링이 어떻게 다른지, Zapier와 Make가 공식 문서에 적어 둔 플랜별 주기가 얼마인지, 내 시나리오가 어느 쪽인지 확인하는 방법까지 정리했어요.
AI 기술을 누구나 쉽게 활용할 수 있도록 실전 가이드를 작성합니다. ChatGPT, Claude, AI 자동화, SEO 분야를 전문으로 다룹니다.
n8n으로 자동화 봇 만들고 싶은데 Zapier 월 30달러 결제하기 싫으셨죠?
저도 그랬어요. 관리형 서비스는 편한 대신 워크플로가 늘수록 구독료가 부담스러워지거든요. 그래서 저렴한 VPS에 n8n을 셀프호스팅하고 Claude API를 붙이는 구조로 정리했어요. 서버 비용은 고정이고, AI 비용만 쓴 만큼 나가는 방식이라 예측이 쉬워요.
오늘은 n8n 셀프호스팅 + Claude Sonnet 4.6 자동화 봇을 5단계로 만드는 실전 가이드를 정리할게요. 결론부터 말씀드리면 첫 셋업 90분, 첫 봇 30분이면 끝이에요. 5월 3일 기준 n8n 1.x + Claude API 최신 호환입니다.

가장 가성비 좋은 조합은 Hetzner CPX11(월 5.41달러, 2 vCPU, 2GB RAM, Ubuntu 22.04)이에요. AWS·GCP보다 저렴하고 한국에서 핑 200ms로 충분.
Docker Compose 설치:
# 서버 접속 후
sudo apt update && sudo apt install -y docker.io docker-compose
# n8n 디렉토리 생성
mkdir -p ~/n8n && cd ~/n8n
# docker-compose.yml 작성 (다음 단계)
docker-compose.yml:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=강한패스워드_변경필수
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Asia/Seoul
volumes:
- ~/n8n_data:/home/node/.n8n
실행:
docker compose up -d
docker compose logs -f n8n
브라우저에서 http://서버IP:5678 접속하면 n8n UI가 떠요. Basic auth 창에서 위에 설정한 admin/패스워드 입력. 첫 실행 시 회원가입 (이메일·이름·비번) 단계 1번만 진행.
HTTPS 강제 (Cloudflare Tunnel이 가장 간단):
# Cloudflare에서 도메인 구매 후
cloudflared tunnel create n8n
cloudflared tunnel route dns n8n n8n.yourdomain.com
cloudflared tunnel run n8n
이제 외부에서 https://n8n.yourdomain.com 접속 가능. 5분이면 끝나요.
API 키 발급:
n8n에 등록:
n8n 좌측 메뉴 → "Credentials" → "Add Credential" → 검색에서 "Anthropic" 선택 → API Key 붙여넣기 → Save.
중요: API 키를 워크플로 노드에 직접 박지 말고 반드시 Credentials 탭에 저장. 워크플로 export 시 키가 노출되는 사고 방지.
관련 글: Claude AI 가격 정책 — 무료/Pro/Max/API 2026 완벽 정리
기본 테스트 워크플로:
새 Workflow → "Manual Trigger" 노드 추가 → 우측 "Anthropic" 검색해서 "Anthropic Chat" 노드 추가 → Credentials에서 방금 등록한 키 선택 → Model: claude-sonnet-4.6 → Messages 입력에 테스트 메시지 → "Execute Workflow" 클릭.
응답이 떨어지면 연결 성공. 첫 호출 비용은 보통 0.001달러 미만이에요.
가장 많이 쓰는 활용 사례예요. Gmail 새 메일 도착 → Claude가 카테고리 분류 + 회신 초안 작성 → 라벨 자동 지정.
워크플로 구성:
[Gmail Trigger: New Email]
↓
[Anthropic Chat: 분류 + 초안 생성]
↓
[Gmail: Add Label]
↓
[Gmail: Create Draft]
Claude 노드 시스템 프롬프트:
당신은 이메일 비서입니다. 입력된 메일을 다음 4가지 중 하나로 분류하세요:
1. urgent: 24시간 내 답변 필요
2. business: 거래·미팅 관련
3. personal: 친구·가족
4. spam: 광고·홍보
JSON 형식으로 응답하세요:
[
"category": "urgent|business|personal|spam",
"priority": "high|medium|low",
"draft_reply": "회신 초안 (한국어)",
"summary": "한 줄 요약"
]
중요: response_format에 JSON 강제. 텍스트로 받으면 다음 노드에서 파싱 실패.
// Anthropic Chat 노드의 추가 옵션
[
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
[
"role": "user",
"content": "{{ $json.subject }}\n\n{{ $json.body }}"
]
]
]
Gmail Add Label 노드: 위에서 받은 category 값에 따라 라벨 동적 할당.
// Label name 필드에 표현식
{{ $node["Anthropic Chat"].json.category }}
이 한 줄짜리 워크플로만으로 매일 쌓이는 메일이 자동으로 분류돼요. 받은편지함을 열자마자 급한 것부터 눈에 들어오니, 메일을 훑으며 우선순위를 매기던 시간이 통째로 사라져요. 메일 한 통당 토큰 사용량이 크지 않아서 비용 부담도 작은 편인데, 정확한 금액은 며칠 돌려보고 콘솔 사용량으로 확인하시는 게 확실해요.

도구를 깔고 나면 눈에 보이는 걸 전부 자동화하고 싶어져요. 그런데 자동화가 오히려 손이 더 가는 작업도 있거든요. 붙이기 전에 아래 기준으로 한 번 걸러보세요.
맡기기 좋은 작업
맡기면 안 되는 작업
여기서 갈리는 지점은 하나예요. 초안까지만 자동화하고 발송 버튼은 사람이 누르는가. 위 이메일 워크플로도 Create Draft에서 멈추지 자동 발송까지 가지 않아요. 이 선만 지켜도 자동화 사고의 대부분은 애초에 안 생겨요. 익숙해지고 나서 위험이 낮은 것부터 한 칸씩 넘기면 돼요.
자동화 돌리면 반드시 만나는 에러 4가지와 해결법.
에러 1. Rate Limit 429
Claude API는 분당 토큰 한도가 있어요(Tier 1: 50K input/min). 너무 빠르게 호출하면 429 떨어집니다.
해결: n8n 워크플로 설정 → Settings → "Execution timeout" 60초로 설정 + 워크플로에 Wait 노드 끼워넣기.
// Wait 노드 (각 호출 사이 1초)
[
"amount": 1,
"unit": "seconds"
]
에러 2. JSON 파싱 실패
Claude가 가끔 JSON 앞에 마크다운 코드 블록(```json)을 붙여서 옵니다. n8n의 JSON.parse가 실패해요.
해결: Code 노드 추가해서 코드 블록 제거.
// Code 노드
const raw = $input.first().json.completion;
const cleaned = raw
.replace(/^```json\s*/i, "")
.replace(/```\s*$/, "")
.trim();
return [json: JSON.parse(cleaned)];
에러 3. 인증 만료
Gmail OAuth 토큰이 7일 후 만료되는 사고가 있어요. n8n 1.x부터 자동 갱신되지만 가끔 실패.
해결: 매주 일요일 cron으로 OAuth 재인증 점검. n8n Settings → Credentials → 빨간 표시 있으면 재인증.
에러 4. 무한 루프
Gmail Trigger가 Draft도 New Email로 인식해서 루프 도는 사고. 반드시 Filter 노드 추가.
// Filter 노드 조건
{{ !$json.labels.includes("DRAFT") }}
비용 폭증 막는 4가지 패턴.
패턴 1. 모델 계층화
| 작업 유형 | 추천 모델 | 가격 | | 단순 분류·라벨링 | Haiku 4.5 | 1달러/1M 입력 | | 일반 텍스트 생성 | Sonnet 4.6 | 3달러/1M 입력 | | 복잡 추론·코드 | Opus 4.7 | 5달러/1M 입력 |
5/3 기준 가격이에요. 90% 자동화는 Haiku로 충분하고, Sonnet은 정말 품질 필요한 곳만.
패턴 2. max_tokens 강제
응답 길이 제한 안 하면 모델이 1500토큰까지 출력해요. 분류 작업엔 200토큰이면 충분.
"max_tokens": 200
패턴 3. 시스템 프롬프트 압축
긴 시스템 프롬프트 매번 재전송하면 입력 토큰 누적이 커요. 프롬프트 캐싱 기능 활용:
"system": [
[
"type": "text",
"text": "긴 시스템 프롬프트...",
"cache_control": ["type": "ephemeral"]
]
]
캐시 히트 시 입력 가격이 10%로 떨어집니다.
패턴 4. 일 한도 알림
Anthropic 콘솔 → Settings → Usage limits에서 일/월 한도 설정. 초과 시 자동 차단 + 이메일 알림. 폭주 사고 방지.
관련 글: n8n 셀프호스팅 0원 자동화 — 2026 최신 가이드
비용을 아끼는 대신 관리 책임을 떠안는 구조라, 처음 몇 달에 겪는 사고 유형이 정해져 있어요. 미리 알면 대부분 예방됩니다.
첫째, 백업을 안 해둔 상태에서 서버를 날립니다. 워크플로와 자격 증명은 전부 데이터 디렉토리에 들어 있어요. 이걸 매일 다른 저장소로 복사해두지 않으면, 서버를 한 번 잘못 건드렸을 때 그동안 만든 걸 통째로 다시 짜야 해요. 백업은 봇을 만들기 전에 먼저 걸어두세요.
둘째, 업데이트를 미루다 한 번에 크게 올립니다. 버전을 오래 방치하면 나중에 올릴 때 노드 동작이 바뀌어 워크플로가 한꺼번에 깨져요. 주기를 정해 조금씩 올리고, 올린 뒤에는 핵심 워크플로 하나를 수동 실행해 정상 동작을 확인하는 습관이 안전해요.
셋째, 실패를 조용히 넘깁니다. 자동화의 진짜 위험은 멈춘 걸 아무도 모르는 상태예요. 워크플로 설정에서 실패 시 알림을 켜두고, 알림을 실제로 보는 채널로 보내세요. 메일함 구석으로 보내면 없는 것과 같아요.
넷째, 트리거를 너무 촘촘하게 겁니다. 1분 간격 폴링은 대부분 필요 없어요. 간격을 넉넉히 두면 서버 부하와 API 호출이 함께 줄어요. 실시간이 꼭 필요한 흐름만 웹훅으로 바꾸면 충분해요.
여기까지 5단계 정리했으니, 오늘부터 적용할 3가지 액션 정리할게요.

이 3단계로 시작하면 셀프호스팅 구조가 손에 익어요. 비용 면에서는 서버 요금이 고정이고 AI 요금만 사용량에 따라 붙는 구조라, 워크플로가 늘어날수록 구독형 서비스보다 유리해지는 편이에요. 다만 절감 폭은 워크플로 수와 실행량에 따라 달라지니 현재 요금제를 직접 대조해 보세요. 셀프호스팅은 본인이 백업·업데이트를 챙겨야 하니 그게 부담되시면 Cloud로 가시는 게 정신 건강에 좋습니다.
워크플로를 여러 개 돌리시면 셀프호스팅이 대체로 쌉니다. n8n Cloud는 플랜별로 월 실행 건수 한도가 걸려 있고 VPS 셀프호스팅은 서버 사양이 버티는 만큼 돌릴 수 있거든요. 다만 요금제와 실행 한도는 개편이 잦으니 n8n 공식 요금 페이지에서 최신 조건을 확인하고 비교하세요. 단, VPS 관리·업데이트 직접 하셔야 하니 IT 경험 어느 정도 있으셔야 적합해요. 그게 부담되시면 Cloud로 시작하시는 게 정신 건강에 좋아요.
Sonnet 4.6 기준 입력 100만 토큰당 3달러, 출력 100만 토큰당 15달러예요. 일반적인 자동화 워크플로(블로그 초안 생성·이메일 분류·요약)는 월 평균 50만 토큰 정도 쓰시면 1.5~3달러 선. Haiku 4.5(입력 1달러, 출력 5달러)로 시작하시고 품질 부족하면 Sonnet으로 올리는 게 정석. 첫 달에 풀가동해도 보통 10달러 이내.
네, 다른 제품이에요. Claude Code는 IDE에서 코딩 도와주는 CLI 도구고, Claude API는 일반 텍스트·도구 호출 API예요. n8n에서 자동화 봇 만들 땐 Claude API(콘솔에서 발급)를 씁니다. 단, 2026년 들어 n8n에서 Claude Code를 호출해 워크플로 자체를 빌드하는 메타 자동화도 가능해졌어요(MCP 서버 통해).
각 노드 우클릭 → Execute Node로 단일 노드만 테스트하시는 게 핵심이에요. 그리고 'Executions' 탭에서 과거 실행 기록 다 보입니다. Claude 응답 검사하시려면 Set 노드를 중간에 끼워넣어서 출력값을 시각화하세요. 자동화 안 돌면 90%는 JSON 파싱 실패 또는 인증 토큰 만료가 원인이에요.
최소 4가지는 필수예요. 1) Basic auth 활성화 (N8N_BASIC_AUTH_ACTIVE=true), 2) HTTPS 강제 (Caddy 또는 Cloudflare Tunnel), 3) Postgres DB 외부 접속 차단 (방화벽), 4) Claude API 키는 n8n 'Credentials' 탭에 저장(환경변수에 직접 박지 말고 암호화 저장). 추가로 자동 백업 cron 설정해서 .n8n 디렉토리 매일 백업하세요.
세 가지 옵션 — 1) Haiku 4.5로 모델 다운그레이드(2~3배 빠름), 2) max_tokens 명시해서 응답 길이 제한, 3) 스트리밍(stream=true) 켜서 첫 토큰 대기 시간 단축. n8n은 기본 동기 방식이라 스트리밍 효과 제한적이고, 가장 효과적인 건 Haiku 전환. 품질 차이 거의 없는 워크플로에선 Haiku로 충분해요.
무료 무제한 티어는 없어요. 신규 가입 크레딧 제공 여부와 조건은 시기에 따라 달라지니 Anthropic 콘솔의 안내를 확인하세요. claude.ai 웹 인터페이스는 일정 메시지 무료지만 API 자동화엔 못 써요. 개인 학습용으로 무료 자동화 만드시려면 Gemini Flash 무료 티어(15 RPM, 1,500 RPD)가 더 나아요.