n8n Code 노드 사용법 가이드
자동화 워크플로우를 효율적으로 설계하고 싶다면 n8n의 'Code' 노드를 주목해보세요.
이 노드는 JavaScript 또는 Python 코드를 직접 삽입해 실행할 수 있어, 다양한 조건 분기와 고급 처리를 가능하게 합니다.
본 글에서는 Code 노드의 핵심 기능부터 사용법, 실전 예제까지 꼼꼼하게 정리해드립니다.

1. Code 노드란?
Code 노드는 기존 Function 노드를 대체하는 모듈로, JavaScript와 Python을 모두 지원합니다. 버전 0.198.0 이상부터 사용할 수 있으며, 워크플로우 내에서 복잡한 로직 처리가 가능합니다. 특히 API 호출 결과를 실시간으로 가공하거나, 조건에 따라 데이터를 분기 처리하는 데 유용합니다.
예를 들어, 특정 고객의 구매 이력을 분석해 할인 쿠폰을 발급하거나, 특정 키워드를 포함한 이메일만 필터링하는 등 다양한 조건 기반 작업을 손쉽게 처리할 수 있습니다.
2. 실행 모드 이해하기
Code 노드는 두 가지 실행 모드를 제공합니다. 워크플로우 목적에 따라 적절한 실행 모드를 선택하는 것이 중요합니다.
- Run Once for All Items: 전체 입력 아이템을 한 번에 처리합니다. 예를 들어, 모든 이메일 주소를 하나의 배열로 묶는 작업에 유용합니다.
- Run Once for Each Item: 각 입력 아이템을 개별적으로 반복 처리합니다. 주로 사용자별 메시지 전송, 개별 데이터 처리에 활용됩니다.
3. JavaScript 사용 방법
JavaScript는 Code 노드에서 가장 일반적으로 사용하는 언어입니다. 기본적으로 Node.js 환경에서 실행되며, console.log()를 통해 로그 출력이 가능합니다. 비동기 처리도 async/await 문법으로 구현할 수 있어 유연합니다.
예를 들어:
const user = item.json;
if (user.age >= 18) {
user.status = '성인';
} else {
user.status = '미성년자';
}
return [{ json: user }];
Cloud 환경에서는 보안상의 이유로 일부 모듈만 지원되므로, 외부 라이브러리 호출은 self-hosted 환경에서 사용해야 합니다.
4. Python 사용 방법
Python은 Pyodide를 기반으로 동작합니다. JavaScript보다 다소 느릴 수 있으나, 데이터 과학, 텍스트 분석, 수치 계산에 익숙한 사용자에게 유리한 선택입니다.
예를 들어:
def main():
name = item.json.get("name", "Unknown")
return [{"json": {"greeting": f"Hello, {name}!"}}]
첫 실행 시 Pyodide가 필요한 패키지를 로딩하기 때문에 로딩 시간이 길 수 있습니다. 복잡한 분석 작업이나 통계 처리에 적합합니다.
5. AI 코드 생성 기능
n8n Cloud에서는 ChatGPT 기반 AI 기능을 활용해 JavaScript 코드 생성을 자동화할 수 있습니다. 원하는 동작을 자연어로 설명하면 해당 기능을 수행하는 코드를 자동으로 작성해줍니다. 예를 들어, "날짜 형식을 yyyy-mm-dd로 변경하는 코드"라고 입력하면, 이에 맞는 코드를 자동 생성합니다.
6. 입력/출력 구조
Code 노드는 return 문을 통해 다음 노드로 데이터를 전달합니다. 반환 형식은 다음과 같아야 합니다:
return [
{
json: {
key: 'value'
}
}
];
- json은 반드시 객체(Object) 타입이어야 하며, 배열(Array) 형태로 감싸 반환해야 합니다. 그렇지 않으면 다음 노드에서 오류가 발생할 수 있습니다.
7. 데이터 링크 및 고정(Pinning)
n8n의 강력한 기능 중 하나는 이전 노드의 데이터를 동적으로 참조할 수 있다는 점입니다. item.json을 통해 현재 아이템의 데이터를 불러오고, items 또는 input.all()을 활용해 다른 노드의 모든 데이터를 참조할 수 있습니다.
또한 Pinning 기능은 테스트 과정에서 특정 노드의 입력값을 고정할 수 있어, 반복 실행 없이 안정적으로 워크플로우를 개발할 수 있습니다.
8. 실전 예제
- 입력된 항목 개수 세기:
return [{ json: { count: items.length } }];
- 콘솔 출력:
console.log(items);
return items;
- 특정 필드 수정 및 반환:
return items.map(item => {
item.json.discount = item.json.price * 0.1;
return item;
});
- 다중 조건 분기 처리:
return items.map(item => {
if (item.json.category === '전자제품') {
item.json.shipping = '무료';
} else {
item.json.shipping = '유료';
}
return item;
});
9. 자주 발생하는 오류와 해결법
- json이 객체가 아님: 반환 데이터는 반드시 { json: {} } 형태여야 합니다. 숫자, 문자열 단독 반환은 오류 발생 요인입니다.
- 라이브러리 import 실패: Cloud 환경에서는 모듈 제한이 있으므로, axios, lodash 등 외부 모듈 사용 시 self-hosted 환경을 활용하세요.
- 전역 변수 사용 이슈: 워크플로우 내 데이터를 유지하려면 getWorkflowStaticData()를 활용해 전역 변수처럼 사용할 수 있습니다.
10. 요약 및 다음 단계
n8n Code 노드는 자동화 워크플로우의 유연성을 극대화하는 강력한 기능입니다.
JavaScript와 Python을 지원하며, 간단한 데이터 가공부터 복잡한 조건 분기까지 폭넓게 활용할 수 있습니다.
클라우드 환경에서는 AI 코드 자동 생성 기능도 제공되어 진입 장벽이 더욱 낮아졌습니다.
다음 단계로는 n8n의 공식 문서인 n8n.io에서 다양한 실습 예제(Cookbook)를 참고하거나, GitHub에 공유된 오픈소스 워크플로우를 다운로드해 직접 실행해보는 것을 추천드립니다.
'개발&프로그래밍' 카테고리의 다른 글
| [n8n] n8n 사용법 완벽 가이드: NASA API로 첫 자동화 워크플로우 만들기 (0) | 2025.11.29 |
|---|---|
| 구글 안티그래비티(Google Antigravity) 사용법: Cursor와 차이점 및 실무 활용 꿀팁 총정리 (0) | 2025.11.28 |
| [N8N] n8n Wait 노드 – 웹훅으로 워크플로우 만들기 (0) | 2025.06.25 |
| [N8N] n8n Merge 노드 사용법과 SQL Query 예제 | 워크플로우 자동화 가이드 (0) | 2025.06.24 |
| [N8N] n8n 노드 완벽 가이드: 워크플로우 자동화의 핵심 요소 (3) | 2025.06.23 |
댓글