n8n 워크플로우 노드 가이드
n8n의 주요 노드들의 사용법과 실전 예제를 통해 효과적인 워크플로우 구성 방법을 알아봅니다.
운영 모드
운영 모드 활성화 방법
워크플로우 편집기 화면의 오른쪽 상단에 있는 Activate 토글 스위치를 켜면 됩니다.
테스트 모드와 운영 모드의 차이
- 테스트 모드: "Execute Workflow" 버튼을 통해 수동으로 실행할 때 적용됩니다.
- 운영 모드: Activate 토글을 켠 후 트리거 노드에 의해 자동으로 실행될 때 적용됩니다.
주요 특징
- 운영 모드에서만
getWorkflowStaticData()
메서드가 제대로 작동합니다. - 데이터 변경이나 카운터 증가와 같은 상태 유지가 필요한 기능들은 운영 모드에서만 정상적으로 동작합니다.
- Interval 노드와 같은 트리거 노드들은 운영 모드에서만 자동으로 실행됩니다.
Webhook 노드
외부에서 들어오는 HTTP 요청을 처리하기 위해서는 n8n의 Webhook 노드를 사용합니다.
Webhook 노드 설정
1. 기본 설정
{
"method": "POST", // HTTP 메서드 선택
"path": "/my-webhook", // 웹훅 경로
"respondWith": "json", // 응답 형식
"authentication": "none" // 인증 방식
}
2. 접근 URL
<http://your-n8n-domain:5678/webhook/my-webhook>
사용 예시
1. 단순 데이터 수신
# 외부에서 POST 요청 보내기
curl -X POST \\
<http://your-n8n-domain:5678/webhook/my-webhook> \\
-H 'Content-Type: application/json' \\
-d '{"name": "John", "age": 30}'
2. 인증이 포함된 요청
# Basic 인증이 포함된 요청
curl -X POST \\
<http://your-n8n-domain:5678/webhook/my-webhook> \\
-H 'Content-Type: application/json' \\
-H 'Authorization: Basic dXNlcjpwYXNz' \\
-d '{"data": "test"}'
주요 기능
1. HTTP 메서드
- GET
- POST
- PUT
- DELETE
- PATCH
- HEAD
- OPTIONS
2. 응답 설정
- JSON 응답
- 텍스트 응답
- 바이너리 응답
- 커스텀 HTTP 상태 코드
3. 보안 옵션
- Basic 인증
- 헤더 인증
- Query 파라미터 인증
워크플로우 구성 예시
- 데이터 수신 및 저장
Webhook → Set → Database
- 데이터 검증 및 처리
Webhook → IF → Function → Response
- API 엔드포인트
Webhook → Switch → HTTP Request → Response
주의사항
- 공개 접근 시 보안 설정 필수
- 응답 시간 고려
- 에러 처리 로직 구현
- 데이터 유효성 검사
Webhook 노드를 사용하면 n8n을 API 서버처럼 활용할 수 있으며, 외부 시스템의 이벤트를 처리할 수 있습니다.
HTTP Request 노드
HTTP Request 노드는 외부 시스템과의 HTTP 통신을 담당하는 핵심 노드입니다. API 호출부터 웹 스크래핑까지 다양한 작업을 수행할 수 있습니다.
기본 설정
{
"method": "GET", // HTTP 메서드
"url": "<https://example.com>", // 요청 URL
"headers": { // HTTP 헤더
"Content-Type": "application/json"
},
"responseFormat": "json" // 응답 형식
}
지원하는 HTTP 메서드
- GET: 데이터 조회
- POST: 데이터 생성
- PUT: 데이터 수정
- DELETE: 데이터 삭제
- PATCH: 부분 수정
- HEAD: 헤더만 조회
- OPTIONS: 지원 옵션 확인
데이터 형식
- JSON
- Form-Data
- Raw/Custom
- Binary 데이터
실전 예제
1. REST API 호출
{
"method": "POST",
"url": "<https://api.example.com/users>",
"headers": {
"Authorization": "Bearer {{$node.auth.data.token}}",
"Content-Type": "application/json"
},
"body": {
"name": "John Doe",
"email": "john@example.com"
}
}
2. 웹 스크래핑
{
"method": "GET",
"url": "<https://example.com/data>",
"responseFormat": "string",
"options": {
"timeout": 5000
}
}
고급 기능
1. 보안 설정
- SSL/TLS 인증
- 프록시 설정
- API 키 인증
- OAuth 인증
2. 성능 최적화
- 타임아웃 설정
- 재시도 옵션
- 배치 처리
- 페이지네이션
3. 편의 기능
- curl 명령어 변환
- 응답 데이터 파싱
- 에러 핸들링
- 리다이렉트 처리
워크플로우 활용 예시
- 데이터 동기화
HTTP Request → Function → Database
- API 연동
Schedule → HTTP Request → Send Email
- 데이터 수집
HTTP Request → Filter → Transform → Save
주의사항
- 타임아웃 설정 필수
- 에러 처리 로직 구현
- 인증 정보 보안
- 요청 제한 고려
HTTP Request 노드는 n8n에서 가장 많이 사용되는 노드 중 하나로, 외부 시스템과의 효과적인 통합을 가능하게 합니다.
Schedule Trigger 노드
Schedule Trigger 노드는 워크플로우를 정해진 시간에 자동으로 실행하게 해주는 트리거 노드입니다. 워크플로우의 시작점으로만 사용할 수 있으며, 다른 노드의 입력으로 사용할 수 없습니다.
설정 방법
- 기본 설정
- 새 워크플로우 생성
- Schedule Trigger 노드 추가
- 실행 모드 선택
- 상세 설정
- Timezone 설정
- 실행 시간/간격 설정
- 특정 날짜/시간 제외 설정 가능
주의사항
- 워크플로우 상태가 반드시 Active여야 함
- 실행 시간대 설정 확인 필수
- 과도한 실행 주기 설정 주의
- 노드 실행 시간과 스케줄 간격 고려
활용 예시
일간 보고서 생성
Mode: Every Day
Time: 09:00
주간 데이터 백업
Mode: Every Week
Time: 00:00
Weekday: Sunday
매시간 모니터링
Mode: Every Hour
Minute: 0
커스텀 스케줄 (Cron)
Mode: Custom
Cron: 0 9 * * 1-5 // 평일 오전 9시
시간 간격 설정
- Mode 선택에서 다양한 옵션 제공:
Every Minute
Every Hour
Every Day
Every Week
Every Month
Custom (Cron)
Cron 표현식 지원
* * * * *
│ │ │ │ │
│ │ │ │ └─ 요일 (0-7)
│ │ │ └─── 월 (1-12)
│ │ └───── 일 (1-31)
│ └─────── 시간 (0-23)
└───────── 분 (0-59)
연계 노드 추천
Schedule Trigger 노드와 자주 함께 사용되는 노드들:
- HTTP Request: API 호출
- Email Send: 정기 이메일 발송
- Function: 데이터 처리
- Database: 정기 데이터 처리
이러한 스케줄링 기능을 통해 자동화된 워크플로우를 구축할 수 있습니다.
트리거 간격 옵션
- 초 단위
- 분 단위
- 시간 단위
- 일 단위
- 주 단위
- 월 단위
- 커스텀 (Cron 표현식)
주요 설정
- 트리거 규칙 여러 개 추가 가능
- 실행 시간대(timezone) 설정 가능
- 특정 요일, 시간, 분 지정 가능
사용 방법
- Schedule Trigger 노드 추가
- 원하는 트리거 간격 선택
- 세부 파라미터 설정
- 워크플로우 저장 및 활성화(Activate)
주의사항
- 워크플로우를 반드시 활성화(Activate)해야 스케줄이 동작합니다
- 타임존 설정 확인이 필요합니다
- 워크플로우 설정의 타임존이 우선 적용되고, 없으면 n8n 인스턴스의 타임존이 적용됩니다
Edit Fields(Set) 노드
워크플로우에서 데이터를 설정하고 수정하는 핵심 노드입니다.
주요 기능
- 새로운 데이터 설정
- 기존 데이터 수정
- 데이터 필드 매핑
작동 모드
- Manual Mapping
- GUI를 통한 필드 편집
- 드래그 앤 드롭으로 값 설정
- Fixed/Expression 토글 지원
- JSON Output
- JSON 형식으로 직접 데이터 작성
- 배열과 표현식 사용 가능
주요 옵션
- Keep Only Set Fields: 설정된 필드만 유지
- Include Binary Data: 바이너리 데이터 포함 여부
- Support Dot Notation: 점 표기법 지원
Code 노드
JavaScript나 Python을 사용하여 커스텀 로직을 구현할 수 있는 노드입니다.
주요 특징
- JavaScript(Node.js) 또는 Python 지원
- Promise 지원
- console.log를 통한 디버깅 가능
기본 제공 기능
- 내장 메서드와 변수 사용 (
$
접두어) - 브라우저 콘솔 로깅
- 데이터 처리와 변환
제한사항
- 파일 시스템 직접 접근 불가
- HTTP 요청은 별도 노드 사용 필요
- n8n Cloud에서는 외부 npm 모듈 사용 제한
AI 지원
- n8n Cloud 사용자를 위한 ChatGPT 코드 생성
- JavaScript 코드 자동 생성 기능
활용 시나리오
- Edit Fields(Set) 노드
- API 엔드포인트 생성
- 데이터 필드 매핑
- 데이터 구조 변환
- Code 노드
- 복잡한 데이터 처리
- 커스텀 비즈니스 로직 구현
- 데이터 변환 및 계산
'개발' 카테고리의 다른 글
Traefik: 클라우드 네이티브 시대의 현대적인 리버스 프록시 (1) | 2024.11.20 |
---|---|
Editly 옵션 설명 (0) | 2024.11.19 |
n8n - 워크플로우 자동화 도구 (1) | 2024.11.19 |
Select vs Selector: 네이밍 가이드 (1) | 2024.11.17 |