🧩자동화자동화 입문 시리즈 · 3/4 10분
③ n8n 실전 — 셀프호스팅으로 자유도 최대화
Docker 한 줄로 n8n 띄우고, AI 응답 + 웹훅 + DB 저장까지 하는 워크플로우 만들기.
n8n을 쓰는 이유
- 오픈소스 — 코드 공개, fork 가능
- 셀프호스팅 — 클라우드 비용 없이 내 서버에서 무제한 실행
- 코드 노드 — 복잡한 변환은 JS로 바로
- AI 노드 기본 제공 — OpenAI·Anthropic 연동 내장
단점: 초기 세팅이 Zapier보다 무거움.
1. Docker로 1분 만에 띄우기
docker run -d --restart unless-stopped \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
브라우저에서 http://localhost:5678 → 첫 계정 만들면 끝.
프로덕션에선 Docker Compose + Postgres + 도메인(HTTPS) 세팅을 권장합니다. 공식 가이드: docs.n8n.io/hosting.
2. 환경 변수
Claude / OpenAI 쓸 거면 컨테이너에 env로 키를 넣어두세요. 코드에 하드코딩 금지.
-e ANTHROPIC_API_KEY=sk-ant-xxx
3. 실전 워크플로우 — "문의 폼 → Claude 요약 → Slack + Google Sheets"
흐름
Webhook (폼 제출)
→ Anthropic (Claude로 요약)
→ Slack (팀 채널 알림)
→ Google Sheets (로그 기록)
단계
-
Webhook 노드 추가
- Method:
POST - Path:
/lead - 활성화 후 표시되는 URL을 폼 제출 endpoint로 사용
- Method:
-
Anthropic 노드 (Claude)
- Model:
claude-haiku-4-5(비용 저렴) - Messages:
다음 문의 내용을 3줄로 요약하고 우선순위(높음/보통/낮음)를 매겨줘. --- {{$json.body.message}}
- Model:
-
Slack 노드
- Channel:
#sales - Text:
📩 {{$json.body.name}} / {{$json.body.company}} 요약: {{$node["Anthropic"].json.content}}
- Channel:
-
Google Sheets 노드
- Append Row
- 컬럼:
timestamp | name | email | summary | priority
-
Activate 버튼 → 워크플로우 실행 중 상태
4. 에러 핸들링 — 이게 Zapier와의 큰 차이
각 노드 우클릭 → "On Error" 설정:
Stop Workflow(기본)Continue— 에러 무시하고 다음 노드로Continue (Error Output)— 에러 브랜치로 분기
추천 패턴: 중요 노드는 Error Output → Slack #ops-alert 채널로 알림.
5. JS 코드 노드 — 필요하면 언제든
Code 노드로 입력을 마음대로 변환할 수 있습니다.
// 들어온 items에서 유효 이메일만 남기기
return items.filter(i => /.+@.+\..+/.test(i.json.email))
6. 운영 체크리스트
- 백업: Postgres 덤프 주 1회 +
/home/node/.n8n볼륨 백업 - 버전 업데이트: 컨테이너 이미지 월 1회 갱신, 큰 버전 업 전 로컬 테스트
- 리소스 모니터링: 워크플로우 수 늘면 메모리 모니터 필수
- 시크릿 로테이션: API 키 만료 전 교체 루틴화
다음 편(마지막): AI 자동화 패턴 — Claude·GPT를 자동화에 섞는 4가지 검증된 패턴.
최근 업데이트 2026-04-18다른 가이드 보기