n8n 입문 가이드 7: 데이터 가공 핵심 Set·Function 노드 완전 활용법

n8n 데이터 가공 핵심: Set·Function 노드 완전 활용법

**

n8n을 활용해 자동화를 구축하다 보면 가장 자주 사용하게 되는 노드가 바로 Set 노드Function 노드입니다. 이 두 노드는 단순히 데이터를 정리하는 수준을 넘어서, 자동화의 정밀도를 높이고 안정적인 데이터 흐름을 설계하는 데 핵심적인 역할을 합니다. 실제로 자동화가 복잡해질수록 ‘데이터를 어떻게 가공하느냐’가 전체 품질을 좌우하는 요소가 됩니다. 이번 글에서는 Set·Function 노드를 사용하는 기본 방식부터 실전 응용까지, 데이터를 다루는 모든 핵심 개념을 상세하게 설명하겠습니다.

왜 데이터 가공이 중요한가?

자동화가 실패하는 가장 흔한 이유는 ‘데이터 구조가 예측과 다르기 때문’입니다. Webhook에서 들어오는 데이터, API 응답 데이터, 이메일 본문 데이터 등은 형태가 모두 다르기 때문에 이를 통일해주지 않으면 다음 노드에서 오류가 발생하기 쉽습니다. 특히 Make나 Zapier는 어느 정도 구조를 자동 변환해주지만, n8n은 자유도가 높은 대신 사용자가 원하는 방식으로 데이터를 직접 정리하는 작업이 필수적입니다. 이 과정에서 Set·Function 노드가 결정적인 역할을 합니다.

Set 노드: 가장 안정적인 데이터 정리 도구

Set 노드는 데이터를 원하는 구조로 변환하거나, 특정 필드만 남겨 깔끔하게 정리하는 데 최적화된 노드입니다. 제가 프로젝트에서 Set 노드를 자주 사용하는 이유는 다음과 같습니다:

  • 필요한 데이터만 선택적으로 남길 수 있음
  • 새로운 필드를 쉽게 추가할 수 있음
  • 데이터 구조를 통일할 수 있음
  • Function보다 오류 가능성이 낮음

예를 들어 고객 문의 데이터가 다음과 같이 들어왔다고 가정해봅시다:

  • user_name
  • user_email
  • question_text
  • metadata

이 데이터를 Google Sheets에 기록할 때 필드명을 다음처럼 바꾸고 싶다면 Set 노드만으로 충분합니다:

  • name = {{$json[“user_name”]}}
  • email = {{$json[“user_email”]}}
  • message = {{$json[“question_text”]}}
  • timestamp = {{$now}}

Set 노드는 코드 없이도 데이터 구조를 깔끔히 정리할 수 있기 때문에 초보자뿐 아니라 전문가에게도 매우 중요한 도구입니다.

Function 노드: 고급 데이터 변환의 핵심

Function 노드는 JavaScript를 활용해 더 복잡한 계산·조건 처리·데이터 변환을 수행할 때 사용합니다. 특히 다음과 같은 상황에서 Function 노드는 필수적입니다:

  • 문자열에서 특정 단어를 추출해야 할 때
  • 여러 배열 데이터를 합쳐야 할 때
  • API 응답이 중첩된 JSON 구조일 때
  • 특정 규칙에 따라 데이터를 자동 분류해야 할 때

예를 들어 문의 내용에서 고객의 감정 상태를 단순하게 분류한다고 가정해보겠습니다. “불편”, “오류”, “환불” 같은 단어가 포함되어 있으면 부정 문의로 분류하는 식입니다.

Function 노드 예시:

 const msg = $json.message || ""; let type = "일반문의"; if (msg.includes("환불") || msg.includes("오류") || msg.includes("불편")) { type = "부정문의"; } return [{ name: $json.name, email: $json.email, message: msg, type, timestamp: new Date().toISOString() }]; 

이와 같은 방식은 Set 노드보다 유연하며, 어떠한 형태의 데이터도 원하는 구조로 변환할 수 있게 해줍니다. Opal이나 최신 자동화 플랫폼에서도 유사한 코드 기반 데이터 가공이 핵심 기술이기 때문에 이 부분을 확실히 이해해두면 확장 가능한 자동화를 만들 수 있습니다.

Set vs Function 언제 무엇을 써야 할까?

Set 노드가 더 적합한 경우

  • 필드 이름을 변경할 때
  • 필드 일부만 선택해 남겨야 할 때
  • 정해진 방식으로 데이터 구조를 통일할 때
  • 코드를 사용하지 않고도 해결 가능한 경우

Function 노드가 필요한 경우

  • 조건문, 반복문 등 논리적 처리 필요
  • 문자열 분석·변환
  • 복잡한 JSON 데이터 정렬
  • API 응답을 여러 단계로 변환해야 할 때

저는 실무에서 “1차 정리(Set) → 고급 처리(Function)” 순서를 가장 많이 사용합니다. 이 방식이 가장 안정적이며, 오류가 발생해도 어느 단계에서 문제가 생겼는지 파악하기 쉽습니다.

정리

Set 노드와 Function 노드를 이해하면 n8n에서 데이터를 다루는 능력이 한층 더 향상됩니다. 자동화의 품질은 데이터가 얼마나 깔끔하고 일관되게 흐르느냐에 따라 결정되기 때문에, 이 두 노드는 사실상 n8n 자동화의 핵심이라고 할 수 있습니다. 다음 글에서는 방금 배운 데이터 가공 가이드를 활용해 ‘실제 자동화 시나리오’를 구성하며 실전 활용법을 더욱 깊게 다뤄보겠습니다.

댓글 남기기