3. 데이터 처리 및 표현식
n8n 워크플로우의 핵심은 노드 간의 데이터 흐름과 처리입니다. 표현식 (Expressions)을 사용하여 이 데이터를 동적으로 조작할 수 있습니다.
3.1. 노드 간의 데이터 흐름
각 노드는 입력 (Input)을 받아들이고 작업을 수행한 후 출력 (Output)을 생성합니다. 출력 데이터는 JSON 형식이며, 다음 노드의 입력으로 사용됩니다.
// 이전 노드의 출력 데이터 예시
[
{
"json": {
"id": "1",
"name": "Alice",
"email": "alice@example.com"
}
},
{
"json": {
"id": "2",
"name": "Bob",
"email": "bob@example.com"
}
}
]
3.2. 표현식 사용하기
표현식은 데이터 필드에 동적인 값을 삽입할 수 있게 해주는 강력한 기능입니다. 더블 중괄호 `{{ ... }}`로 묶여 사용됩니다.
- `{{ $json.name }}`: 현재 노드의 입력 데이터에서 `name` 속성 값을 가져옵니다.
- `{{ $node["Webhook"].json.email }}`: "Webhook" 노드의 출력 데이터에서 `email` 속성 값을 가져옵니다.
- `{{ $env.MY_API_KEY }}`: 환경 변수 `MY_API_KEY` 값을 가져옵니다.
예시: "Webhook" 노드에서 받은 이름을 사용하여 이메일을 보낼 때, 이메일 본문에 `Hello {{ $node["Webhook"].json.name }}!`와 같이 표현식을 사용할 수 있습니다.
3.3. JSON 데이터 변환 (Set, Item Lists)
Set 노드는 출력 데이터를 추가, 수정 또는 삭제하는 데 사용됩니다. Item Lists 노드는 배열의 항목을 분할하거나 병합하는 데 유용합니다.
// Set 노드를 사용하여 데이터 추가
{
"json": {
"status": "processed",
"timestamp": "{{ new Date().toISOString() }}"
}
}
팁: 워크플로우를 실행하고 각 노드의 \'결과\' 섹션에서 실제 데이터 흐름을 확인하는 것이 중요합니다.