Contents
핵심 요약
n8n 자동화의 핵심은 데이터 흐름을 얼마나 매끄럽게 관리하느냐에 달려 있습니다. 복잡한 API 응답이나 꼬인 데이터 구조 때문에 워크플로우가 멈췄다면, 이 글이 완벽한 해결책이 될 것입니다.
이 글에서는 JSON 데이터 구조의 기초부터 Set 노드를 활용한 실전 데이터 정제 방법까지 상세히 다룹니다.
복잡한 코딩 없이도 데이터를 원하는 형태로 가공하여 자동화 효율을 극대화하는 방법을 지금 바로 확인해 보세요.
자동화 툴인 n8n을 사용하다 보면 누구나 한 번쯤 “데이터가 왜 이렇게 들어오지?”라며 당황하는 순간을 마주하게 됩니다. 구글 시트에서 가져온 데이터, 웹훅(Webhook)으로 받은 고객 정보, API로 호출한 날씨 정보까지 모든 데이터의 생김새가 제각각이기 때문입니다.
데이터가 꼬이면 워크플로우는 에러를 뿜어내고, 우리의 소중한 시간은 디버깅으로 허비됩니다. 하지만 걱정하지 마세요. n8n에서 데이터가 흐르는 기본 원리인 JSON 구조를 이해하고, 만능 해결사 Set 노드 사용법만 익히면 어떤 데이터든 깔끔하게 정리할 수 있습니다.
오늘은 2026년 현재 가장 효율적인 노코드 데이터 가공 전략을 통해, 여러분의 n8n 스킬을 한 단계 업그레이드해 드리겠습니다.
1. 자동화의 언어, JSON 데이터 구조 쉽게 이해하기
n8n을 비롯한 대부분의 최신 웹 서비스들은 서로 대화할 때 JSON(JavaScript Object Notation)이라는 언어를 사용합니다. 개발자가 아니더라도 이 구조를 이해하는 것은 필수적입니다. 어렵게 생각할 필요 없이, JSON을 ‘이름표가 붙은 정리 상자’라고 생각하면 됩니다.

JSON의 기본 규칙 2가지
JSON은 크게 두 가지 형태의 결합으로 이루어져 있습니다. 이 두 가지만 알면 복잡해 보이는 데이터도 해석할 수 있습니다.
- 객체 (Object): 중괄호
{}로 감싸져 있으며, ‘키(Key): 값(Value)’의 쌍으로 이루어져 있습니다. 예:{"이름": "홍길동", "나이": 30} - 배열 (Array): 대괄호
[]로 감싸져 있으며, 데이터가 순서대로 나열된 목록입니다. 예:["사과", "바나나", "포도"]
n8n에서 데이터가 꼬이는 대부분의 이유는, 내가 필요한 데이터가 ‘객체’ 안에 깊숙이 숨어있거나, ‘배열’ 형태로 들어와서 n8n이 한 번에 처리하지 못하기 때문입니다. 우리는 이 구조를 파악하고 원하는 알맹이만 쏙 빼내는 법을 배워야 합니다.
2. 데이터 해결사, Set 노드의 역할과 기능
n8n에는 수많은 노드가 있지만, 가장 기본적이면서도 강력한 노드는 단연 Set 노드입니다. 많은 분들이 단순히 변수를 설정하는 용도로만 알고 있지만, 사실 Set 노드는 데이터를 성형수술하는 집도의와 같습니다.
이전 노드에서 넘어온 지저분한 데이터(Output)를 다음 노드가 처리하기 좋게 예쁘게 다듬어서 넘겨주는 것이 바로 Set 노드의 역할입니다.

Set 노드로 할 수 있는 핵심 작업
- 필요한 데이터만 남기기: 수백 개의 정보 중 내가 쓸 3가지만 선택해서 남길 수 있습니다.
- 이름 바꾸기 (Rename): ‘user_id_v2_final’ 같은 복잡한 이름을 ‘ID’처럼 직관적으로 변경할 수 있습니다.
- 값 계산 및 조합: 성(Last Name)과 이름(First Name)을 합쳐서 전체 이름(Full Name)으로 만들 수 있습니다.
- 데이터 형식 변경: 숫자로 들어온 데이터를 문자로 바꾸거나, 그 반대의 작업도 가능합니다.
3. 실전 가이드: 꼬인 데이터 풀어내기
이제 실제 상황을 가정해 보겠습니다. 외부 API에서 고객 정보를 받아왔는데, 데이터가 불필요한 정보로 가득 차 있고 구조도 복잡하다고 가정해 봅시다. 이를 Set 노드로 정리하는 과정입니다.
단계 1: 데이터 구조 파악하기
먼저 들어온 데이터를 확인합니다. 아래 코드는 n8n의 실행 창에서 흔히 볼 수 있는 복잡한 JSON 예시입니다.
[ { "status": "success", "data": { "response_v1": { "user_info": { "id": 101, "name": "김철수", "contact": "010-1234-5678" }, "meta": { "created_at": "2026-01-24", "ip": "192.168.0.1" } } } } ]
우리가 필요한 것은 오직 이름(name)과 연락처(contact) 뿐입니다. 하지만 데이터는 data > response_v1 > user_info 안에 깊숙이 숨어 있습니다.
단계 2: Set 노드 설정하기
Set 노드를 추가하고 ‘Values to Set’ 옵션을 사용합니다. 여기서 중요한 것은 Dot Notation(점 표기법)을 사용하여 깊숙이 있는 데이터에 접근하는 것입니다.
설정 방법은 다음과 같습니다:
- Name 설정: 좌측에
고객명입력, 우측 값(Expression)에{{ $json.data.response_v1.user_info.name }}연결 - Phone 설정: 좌측에
전화번호입력, 우측 값(Expression)에{{ $json.data.response_v1.user_info.contact }}연결 - Keep Only Set: 이 옵션을 ON으로 켜야 불필요한 나머지 데이터(status, meta 등)가 모두 사라지고 깔끔한 결과만 남습니다.
4. Set 노드 적용 전후 비교
Set 노드를 거치기 전과 후의 데이터가 어떻게 달라지는지 비교해 보면 그 강력함을 알 수 있습니다. 복잡한 계층 구조가 사라지고, 바로 사용할 수 있는 평면적인(Flat) 데이터로 변환됩니다.
| 구분 | 적용 전 (Raw Data) | 적용 후 (Clean Data) |
|---|---|---|
| 데이터 구조 | 4단계 이상의 깊은 중첩 구조 (Nested) | 1단계의 단순 구조 (Flat) |
| 필드 이름 | user_info, response_v1 등 복잡함 | 고객명, 전화번호 등 직관적임 |
| 용량 및 속도 | 불필요한 메타데이터 포함으로 무거움 | 핵심 데이터만 있어 처리 속도 빠름 |
| 연동 편의성 | 다음 노드에서 매핑하기 까다로움 | 슬랙, 구글 시트 등에 즉시 매핑 가능 |

5. 알아두면 쓸모 있는 추가 팁
데이터 정제를 더 완벽하게 하기 위한 몇 가지 팁을 공유합니다. n8n을 200% 활용하기 위한 노하우입니다.
배열(Array) 처리가 어렵다면?
만약 데이터가 객체 {}가 아니라 배열 [] 안에 들어있다면, n8n의 ‘Item Lists’ 노드를 먼저 사용해서 배열을 각각의 아이템으로 분리(Split Out)한 뒤 Set 노드를 사용하는 것이 좋습니다. 배열을 강제로 Set 노드에서 처리하려고 하면 첫 번째 데이터만 처리되는 오류가 발생할 수 있습니다.
미리보기 기능을 활용하세요
Set 노드에서 값을 설정할 때, Expression 입력창 아래에 나오는 Result Preview를 반드시 확인하세요. [Object: object]라고 나온다면 데이터 경로를 잘못 지정한 것입니다. 실제 텍스트나 숫자가 보여야 정상적으로 연결된 것입니다.
자주 묻는 질문 (FAQ)
Q1. Set 노드 대신 Code 노드를 써도 되나요?
네, 가능합니다. 자바스크립트에 익숙하다면 Code 노드가 더 강력할 수 있습니다. 하지만 단순한 데이터 매핑이나 이름 변경은 Set 노드가 훨씬 직관적이고 관리하기 편합니다. 협업을 위해서라도 가급적 Set 노드를 추천합니다.
Q2. JSON 데이터가 너무 길어서 복사가 안 됩니다.
n8n 실행 창에서 데이터를 볼 때 ‘JSON’ 탭 대신 ‘Schema’ 탭을 활용하거나, 데이터 우측 상단의 ‘Copy’ 버튼을 이용해 메모장이나 VS Code 같은 에디터로 옮겨서 구조를 파악하는 것이 좋습니다.
Q3. 날짜 형식이 제각각인데 Set 노드에서 바꿀 수 있나요?
Set 노드 안에서도 간단한 자바스크립트 함수나 n8n 내장 함수(Luxon 등)를 사용할 수 있습니다. 예를 들어 {{ $now.toFormat('yyyy-MM-dd') }}와 같이 작성하여 날짜 포맷을 통일할 수 있습니다.
n8n, JSON데이터구조, 데이터정제, Set노드, 노코드자동화, 업무자동화, 워크플로우최적화, API연동, 데이터가공, 스마트워크





