n8n 튜토리얼: 코드 없이 워크플로우 만들기
n8n 워크플로는 노드로 구성됩니다: 트리거가 워크플로를 시작합니다(Webhook, 일정, 앱에서의 이벤트), 액션 노드가 작업을 실행하고, 로직 노드는 분기합니다. 시작하려면 클라우드 버전으로도 충분합니다; 데이터를 사내에 보관하려면 n8n을 Docker 컨테이너로 실행하고 WEBHOOK_URL 및 Basic Auth를 설정해야 합니다, 그렇지 않으면 들어오는 Webhook이 인스턴스에 도달하지 않습니다. 코드 없이도 많은 작업을 할 수 있습니다: 값은 이전 노드에서 중괄호 두 개로 감싼 표현식으로 끌어오고, 분기는 IF로 처리하며, 대용량 데이터는 Split In Batches로, 오류는 Retry와 Error-Trigger로 처리합니다. JavaScript는 미리 만들어진 노드가 없는 변형 작업에만 필요합니다.

Inhaltsverzeichnis
n8n은 개발자용 도구가 아니며, 문서가 그렇게 보일 수는 있습니다. 이 도구는 회사에서 이미 Excel 수식을 작성하는 사람이 쓰는 도구입니다: 컨트롤러, 경영진 보좌, 분석표를 관리하는 현장 책임자 등이 해당합니다. SVERWEIS(LOOKUP) 수식을 만들 수 있는 사람이라면 n8n 워크플로도 만들 수 있습니다. 아래 세 번째 예시인 주간 리포팅이 바로 그런 사례이며, 범위에 따라 주당 여러 시간을 절약합니다.
이 튜토리얼은 바로 그런 분들을 위해 작성되었습니다. Docker 설정 극장도, TypeScript 커스텀 노드도 다루지 않습니다. 대신: n8n을 어떻게 설치하고, 45분 안에 유의미한 첫 워크플로를 실전으로 올리는지, 그리고 어느 시점에서 정말 개발자를 데려와야 하는지를 설명합니다.
n8n이란?
n8n은 앱을 연결하고 프로세스를 자동화할 수 있는 워크플로 자동화 플랫폼입니다 - 프로그래밍 없이도 사용 가능합니다. 특징:
- Open Source: 코드가 공개되어 있고 수정할 수 있습니다
- Self-Hosting 가능: 데이터에 대한 완전한 통제권을 가집니다
- Fair Code Lizenz: 대부분의 용도에 무료입니다
- Visueller Editor: 드래그 앤 드롭으로 워크플로를 만듭니다
- 400+ Integrationen: Google에서 GitHub, Slack에서 Shopify까지
n8n vs. Zapier vs. Make
| 기능 | n8n | Zapier | Make |
|---|---|---|---|
| 가격 | 무료(자체 호스팅) / 클라우드 20€부터 | 월 20$부터 | 월 9€부터 |
| Self-Hosting | 예 | 아니요 | 아니요 |
| Open Source | 예 | 아니요 | 아니요 |
| 통합 수 | 400+ | 6.000+ | 1.500+ |
| 복잡한 로직 | 매우 우수 | 제한적 | 우수 |
| 학습 곡선 | 중간 | 낮음 | 중간 |
| DSGVO | 최적(자체 호스팅) | 문제 소지 | 우수 |
n8n은 다음에 이상적입니다:
- 데이터 보호 요구가 있는 기업
- 기술 역량이 있는 팀
- 분기 로직이 있는 복잡한 워크플로
- 예산을 중시하는 자동화
n8n 설치 및 설정
옵션 1: n8n Cloud (가장 쉬운 시작)
- https://n8n.io로 이동합니다
- "Start Free"를 클릭합니다
- 회원가입합니다
- 완료 - 바로 시작할 수 있습니다
가격: 14일 무료 체험, 이후 월 20€부터
옵션 2: Docker로 자체 호스팅 (권장)
전제 조건: Docker 설치됨
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
그런 다음 브라우저에서 http://localhost:5678 를 엽니다.
프로덕션용 Docker Compose 예시:
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=sicheres_passwort
- WEBHOOK_URL=https://n8n.ihre-domain.de/
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
옵션 3: npm 설치
npm install n8n -g
n8n start
n8n 사용자 인터페이스 이해하기
워크플로 편집기
로그인 후 빈 워크플로 편집기가 보입니다. 주요 요소:
- Canvas: 노드를 배치하는 작업 공간
- Node-Panel(오른쪽): 사용 가능한 모든 통합 목록
- 실행 버튼(상단): 워크플로 수동 실행
- 저장(상단): 워크플로 저장
- 활성화(상단): 워크플로 자동 실행 활성화
노드란 무엇인가?
노드는 워크플로의 구성 요소입니다. 각 노드는 특정 기능을 합니다:
- Trigger-Nodes: 워크플로 시작(예: Webhook, 예약, 이메일 수신)
- Action-Nodes: 작업 실행(예: 이메일 전송, 데이터 저장)
- Logic-Nodes: 흐름 제어(예: If/Else, Switch, Merge)
첫 번째 워크플로: Notion에 새 페이지가 생성되면 이메일 발송
목표: Notion에 새 페이지가 생성되면 이메일을 받습니다.
1단계: 트리거 추가
- Canvas에서 + 클릭
- "Notion" 검색
- "Notion Trigger" 선택
- 연결 구성:
- "Create New Credential" 클릭
- Notion API 설정 안내를 따르세요
- 선택:
- Event: Page Added to Database
- Database: 원하는 데이터베이스
2단계: 이메일 노드 추가
- Notion 노드 오른쪽의 + 클릭
- "Send Email" 검색
- 구성:
- From Email: ihre@email.de
- To Email: ihre@email.de
- Subject: Neue Notion-Seite: {{ $json.properties.Name.title[0].plain_text }}
- Text: Es wurde eine neue Seite erstellt.
3단계: 워크플로 활성화
- 저장 클릭
- 활성화(오른쪽 상단 토글) 클릭
- 워크플로가 자동으로 실행됩니다!
워크플로 예시 2: 리드 알림
시나리오: 웹사이트 폼 제출 → Slack 알림 + CRM에 등록
사용 노드
- Webhook(트리거): 폼 데이터를 수신
- HubSpot: 연락처 생성
- Slack: 팀 채널에 메시지 전송
단계별
- Webhook 설정:
- 노드: "Webhook"
- HTTP Method: POST
- Path: lead-form
- Webhook URL 복사
- HubSpot 연락처 생성:
- 노드: "HubSpot"
- Operation: Create/Update Contact
- Email: {{ $json.body.email }}
- First Name: {{ $json.body.firstname }}
- Last Name: {{ $json.body.lastname }}
- Slack 메시지 전송:
- 노드: "Slack"
- Channel: #sales
- Text:
Neuer Lead!
Name: {{ $json.body.firstname }} {{ $json.body.lastname }}
E-Mail: {{ $json.body.email }}
- 폼에 Webhook-URL 삽입: 폼의 Action-URL로 Webhook-URL을 사용
워크플로 예시 3: 자동 리포팅
시나리오: 매주 월요일 9시 → Google Sheets에서 데이터 읽기 → 이메일로 전송
사용 노드
- Schedule Trigger: 월요일 9:00
- Google Sheets: 데이터 읽기
- Function: 데이터 포맷팅
- Send Email: 리포트 전송
구성
- Schedule Trigger:
- Trigger Times: Add Cron Time
- Mode: Every Week
- Day of Week: Monday
- Hour: 9
- Minute: 0
- Google Sheets:
- Operation: Read Rows
- Spreadsheet: Ihre Tabelle
- Range: A:E (또는 필요한 열)
- Function (JavaScript):
// 데이터를 표로 포맷
const rows = items.map(item => item.json);
let table = "| Name | Umsatz | Status |\n|---|---|---|\n";
rows.forEach(row => {
table += `| ${row.Name} | ${row.Umsatz}€ | ${row.Status} |\n`;
});
return [{ json: { report: table } }];
- Send Email:
- Subject: Wöchentlicher Report - {{ $now.format('DD.MM.YYYY') }}
- HTML: {{ $json.report }}
중요한 n8n 개념
Expressions (식)
Expressions는 동적 값을 허용합니다. 문법: {{ }}
예시:
{{ $json.email }}- 이전 노드의 값{{ $now }}- 현재 날짜/시간{{ $json.name.toUpperCase() }}- JavaScript 함수 사용{{ $node["Google Sheets"].json.data }}- 특정 노드의 데이터
IF로 분기
IF 노드는 조건부 로직을 제공합니다:
- "IF" 노드 추가
- 조건: 예:
{{ $json.status }}equals "urgent" - True 경로: 한 동작
- False 경로: 다른 동작
Split In Batches로 반복 처리
대량 데이터 처리 시:
- "Split In Batches" 노드 추가
- Batch Size 설정(예: 10)
- 모든 항목이 처리될 때까지 루프 실행
오류 처리
Error Trigger: 다른 워크플로가 실패할 때 시작
Retry on Fail: 개별 노드에서 활성화
- 노드 설정 열기
- "On Error" → "Continue" 또는 "Retry"
고급 기법
외부 이벤트용 Webhooks
Webhooks는 외부 서비스가 호출할 수 있는 URL입니다.
Webhook 생성:
- Webhook 노드를 트리거로 추가
- HTTP Method 선택(GET, POST 등)
- Path 정의(예: /customer-update)
- URL 복사하여 외부 서비스에 등록
Webhook 테스트:
- 브라우저에서 GET Webhook 직접 호출
- Postman으로 POST Webhook 테스트
- n8n에서 "Listen for test event" 사용
통합이 없는 API를 위한 HTTP Request
네이티브 통합이 없는 서비스에는:
- "HTTP Request" 노드 추가
- 구성:
- Method: GET, POST, PUT, DELETE
- URL: API 엔드포인트
- Authentication: API Key, OAuth 등
- Body: JSON 데이터
예시: 알려지지 않은 API 호출
{
"method": "POST",
"url": "https://api.example.com/data",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
},
"body": {
"name": "{{ $json.name }}",
"email": "{{ $json.email }}"
}
}
복잡한 로직용 코드 노드
시각적 노드로 부족할 때 JavaScript 사용:
// 모든 항목 처리
const results = [];
for (const item of items) {
const data = item.json;
// 계산
const total = data.price * data.quantity;
const tax = total * 0.19;
results.push({
json: {
...data,
total,
tax,
gross: total + tax
}
});
}
return results;
n8n 모범 사례
- 워크플로를 모듈화하세요
- 한 워크플로 = 한 작업
- 복잡한 프로세스는 여러 워크플로로 분할
- 워크플로를 Webhook으로 연결
- 오류 처리 추가
- 중요한 워크플로에 Error Trigger 설정
- 오류 발생 시 알림(Slack, 이메일)
- 불안정한 API에 재시도 로직
- 자격 증명 안전하게 관리
- 워크플로에 API 키를 직접 넣지 마세요
- n8n Credentials 사용
- 자체 호스팅 시 환경 변수 사용
- 활성화 전 테스트
- "Execute Workflow"로 테스트
- 테스트 데이터를 사용
- 각 노드의 출력 확인
- 문서화
- 명확한 워크플로 이름 사용
- 설명용 Sticky Notes 활용
- 복잡한 Expressions 주석 처리
자주 발생하는 문제와 해결
문제: Webhook이 n8n에 도달하지 않음
원인:
- n8n이 공개적으로 접근 불가
- 방화벽 차단
- HTTPS 미설정
해결:
- 테스트에는 ngrok 같은 터널 서비스 사용
- 리버스 프록시 설정(nginx, Traefik)
- WEBHOOK_URL 환경변수 설정
문제: API 한도 도달
해결:
- Split In Batches 사용
- 요청 사이에 Wait 노드 추가
- HTTP Request 노드에서 속도 제한 설정
문제: 데이터 형식이 올바르지 않음
해결:
- Set 노드로 구조 변경
- Function 노드로 복잡한 변환
- Date & Time 노드로 날짜 형식 처리
팀용 n8n
공동 작업(n8n Cloud)
- 워크스페이스별 여러 사용자 지원
- 워크플로 공유 가능
- 모든 사용자가 실행 기록 확인 가능
팀용 자체 호스팅
- 안정성을 위해 SQLite 대신 PostgreSQL 권장
- 높은 부하를 위한 Queue Mode 사용
- 확장을 위한 여러 워커 구성
결론
n8n은 특히 데이터 보호가 중요하거나 최대 유연성이 필요할 때 강력한 워크플로 자동화 도구입니다. 학습 곡선은 Zapier보다 다소 가파르지만, 가능성은 훨씬 큽니다.
다음 단계:
- n8n Cloud 또는 로컬 설치
- 간단한 워크플로 먼저 만들기(예: RSS → 이메일)
- 점차 더 복잡한 플로우 작성
- 자체 호스팅 시 프로덕션 설정 구성
추가 자료:
- n8n vs. Make - 상세 비교
- Beste No-Code Tools - n8n 대안
n8n을 조직에 도입하시겠습니까? 설정, 워크플로 개발 및 호스팅을 도와드리겠습니다 - 프로세스에 집중하실 수 있도록 지원합니다.
도구 팁: 무료 Automatisierungs-Check는 몇 분 안에 특정 프로세스가 자동화에 적합한지, ROI 추정 및 도구 권장까지 제공합니다.