n8n 튜토리얼: 코드 없이 워크플로우 만들기

Jonas Höttler24. 1월 20268 min
간단히 말해

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

기능n8nZapierMake
가격무료(자체 호스팅) / 클라우드 20€부터월 20$부터월 9€부터
Self-Hosting아니요아니요
Open Source아니요아니요
통합 수400+6.000+1.500+
복잡한 로직매우 우수제한적우수
학습 곡선중간낮음중간
DSGVO최적(자체 호스팅)문제 소지우수

n8n은 다음에 이상적입니다:

  • 데이터 보호 요구가 있는 기업
  • 기술 역량이 있는 팀
  • 분기 로직이 있는 복잡한 워크플로
  • 예산을 중시하는 자동화

n8n 설치 및 설정

옵션 1: n8n Cloud (가장 쉬운 시작)

  1. https://n8n.io로 이동합니다
  2. "Start Free"를 클릭합니다
  3. 회원가입합니다
  4. 완료 - 바로 시작할 수 있습니다

가격: 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단계: 트리거 추가

  1. Canvas에서 + 클릭
  2. "Notion" 검색
  3. "Notion Trigger" 선택
  4. 연결 구성:
    • "Create New Credential" 클릭
    • Notion API 설정 안내를 따르세요
  5. 선택:
    • Event: Page Added to Database
    • Database: 원하는 데이터베이스

2단계: 이메일 노드 추가

  1. Notion 노드 오른쪽의 + 클릭
  2. "Send Email" 검색
  3. 구성:
    • 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단계: 워크플로 활성화

  1. 저장 클릭
  2. 활성화(오른쪽 상단 토글) 클릭
  3. 워크플로가 자동으로 실행됩니다!

워크플로 예시 2: 리드 알림

시나리오: 웹사이트 폼 제출 → Slack 알림 + CRM에 등록

사용 노드

  1. Webhook(트리거): 폼 데이터를 수신
  2. HubSpot: 연락처 생성
  3. Slack: 팀 채널에 메시지 전송

단계별

  1. Webhook 설정:
  • 노드: "Webhook"
  • HTTP Method: POST
  • Path: lead-form
  • Webhook URL 복사
  1. HubSpot 연락처 생성:
  • 노드: "HubSpot"
  • Operation: Create/Update Contact
  • Email: {{ $json.body.email }}
  • First Name: {{ $json.body.firstname }}
  • Last Name: {{ $json.body.lastname }}
  1. Slack 메시지 전송:
  • 노드: "Slack"
  • Channel: #sales
  • Text:
Neuer Lead!
Name: {{ $json.body.firstname }} {{ $json.body.lastname }}
E-Mail: {{ $json.body.email }}
  1. 폼에 Webhook-URL 삽입: 폼의 Action-URL로 Webhook-URL을 사용

워크플로 예시 3: 자동 리포팅

시나리오: 매주 월요일 9시 → Google Sheets에서 데이터 읽기 → 이메일로 전송

사용 노드

  1. Schedule Trigger: 월요일 9:00
  2. Google Sheets: 데이터 읽기
  3. Function: 데이터 포맷팅
  4. Send Email: 리포트 전송

구성

  1. Schedule Trigger:
  • Trigger Times: Add Cron Time
  • Mode: Every Week
  • Day of Week: Monday
  • Hour: 9
  • Minute: 0
  1. Google Sheets:
  • Operation: Read Rows
  • Spreadsheet: Ihre Tabelle
  • Range: A:E (또는 필요한 열)
  1. 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 } }];
  1. 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 노드는 조건부 로직을 제공합니다:

  1. "IF" 노드 추가
  2. 조건: 예: {{ $json.status }} equals "urgent"
  3. True 경로: 한 동작
  4. False 경로: 다른 동작

Split In Batches로 반복 처리

대량 데이터 처리 시:

  1. "Split In Batches" 노드 추가
  2. Batch Size 설정(예: 10)
  3. 모든 항목이 처리될 때까지 루프 실행

오류 처리

Error Trigger: 다른 워크플로가 실패할 때 시작

Retry on Fail: 개별 노드에서 활성화

  • 노드 설정 열기
  • "On Error" → "Continue" 또는 "Retry"

고급 기법

외부 이벤트용 Webhooks

Webhooks는 외부 서비스가 호출할 수 있는 URL입니다.

Webhook 생성:

  1. Webhook 노드를 트리거로 추가
  2. HTTP Method 선택(GET, POST 등)
  3. Path 정의(예: /customer-update)
  4. URL 복사하여 외부 서비스에 등록

Webhook 테스트:

  • 브라우저에서 GET Webhook 직접 호출
  • Postman으로 POST Webhook 테스트
  • n8n에서 "Listen for test event" 사용

통합이 없는 API를 위한 HTTP Request

네이티브 통합이 없는 서비스에는:

  1. "HTTP Request" 노드 추가
  2. 구성:
    • 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 모범 사례

  1. 워크플로를 모듈화하세요
  • 한 워크플로 = 한 작업
  • 복잡한 프로세스는 여러 워크플로로 분할
  • 워크플로를 Webhook으로 연결
  1. 오류 처리 추가
  • 중요한 워크플로에 Error Trigger 설정
  • 오류 발생 시 알림(Slack, 이메일)
  • 불안정한 API에 재시도 로직
  1. 자격 증명 안전하게 관리
  • 워크플로에 API 키를 직접 넣지 마세요
  • n8n Credentials 사용
  • 자체 호스팅 시 환경 변수 사용
  1. 활성화 전 테스트
  • "Execute Workflow"로 테스트
  • 테스트 데이터를 사용
  • 각 노드의 출력 확인
  1. 문서화
  • 명확한 워크플로 이름 사용
  • 설명용 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보다 다소 가파르지만, 가능성은 훨씬 큽니다.

다음 단계:

  1. n8n Cloud 또는 로컬 설치
  2. 간단한 워크플로 먼저 만들기(예: RSS → 이메일)
  3. 점차 더 복잡한 플로우 작성
  4. 자체 호스팅 시 프로덕션 설정 구성

추가 자료:

n8n을 조직에 도입하시겠습니까? 설정, 워크플로 개발 및 호스팅을 도와드리겠습니다 - 프로세스에 집중하실 수 있도록 지원합니다.

도구 팁: 무료 Automatisierungs-Check는 몇 분 안에 특정 프로세스가 자동화에 적합한지, ROI 추정 및 도구 권장까지 제공합니다.

귀사의 프로세스가 얼마 드는지 알고 싶으시면: 측정하십시오.

무료 진단으로 시작하거나 FlowVisual을 다운로드하세요. 이후에 누군가와 이야기하고 싶다면 저희에게 연락해 주십시오.