n8n Code 노드로 표준 노드 한계 넘어서기
n8n Code 노드에서 JavaScript·Python으로 표준 노드가 처리하지 못하는 계산·데이터 변환·조건부 로직을 구현하는 방법을 정리한다.
2026-08-12 · 최초 발행 2025-06-11
표준 노드가 막히는 지점에서 Code 노드가 시작된다
비즈니스 자동화 워크플로우를 만들다 보면 준비된 노드만으로는 풀리지 않는 계산이나 데이터 처리가 나온다. n8n의 Code 노드는 이 지점에서 JavaScript 또는 Python 코드를 워크플로우 안에 직접 심어 표준 노드로 해결하기 어려운 로직을 구현하는 기능이다. 입력으로 받은 데이터 배열을 코드로 처리하고, 결과를 다시 JSON 구조의 배열로 반환하는 것이 핵심 동작 원리다. 수학적 계산, 조건부 로직, 커스텀 알고리즘을 노코드 환경 안에서 그대로 짤 수 있다는 뜻이다.
실행 모드와 언어를 고른다
Code 노드는 두 가지 실행 방식을 지원한다. Run Once for All Items는 입력된 데이터를 한 번에 묶어 처리하는 배치 모드이고, Run Once for Each Item은 각 데이터 항목을 하나씩 개별로 처리하는 반복 모드다. 어느 쪽을 선택하느냐에 따라 처리 성능과 메모리 사용량이 달라진다.
언어는 JavaScript와 Python을 모두 쓸 수 있다. JavaScript는 빠른 프로토타이핑과 웹 기반 로직에, Python은 데이터 분석·머신러닝 라이브러리를 끌어다 쓸 때 유리하다. 팀의 기존 기술 스택에 맞춰 고르면 된다.
입력 데이터는 어떻게 코드 안으로 들어오는가
Code 노드는 표준 JSON 배열 형태로 입력과 출력을 주고받는다. $input.all() 함수로 이전 노드가 넘긴 모든 데이터에 접근하고, 실제 값은 각 항목의 json 키 안에 들어 있다. 이 구조를 벗어나면 다음 노드가 데이터를 받지 못하므로, 반환 형식을 지키는 것이 안정적인 워크플로우 구성의 전제 조건이다.
반환 형식이 올바르면 JSON 배열이 다음 노드로 전달되고, 구조가 틀어지면 오류 메시지가 발생한다. 실행 모드 선택부터 반환 검증까지가 Code 노드 한 번 실행의 전체 경로다.
예약 주문 합계를 계산하는 코드
아래는 예약된 주문의 총 개수와 총 가격을 계산하는 코드다. $input.all()로 받은 항목을 순회하면서 각 항목의 orderPrice를 누적한다.
let items = $input.all();
let totalBooked = items.length;
let bookedSum = 0;
for (let i = 0; i < items.length; i++) {
bookedSum = bookedSum + items[i].json.orderPrice;
}
return [{ json: { totalBooked, bookedSum } }];
결과로 나오는 totalBooked와 bookedSum은 이후 워크플로우 단계에서 그대로 참조할 수 있는 값이다.
테스트 결과를 바로 확인한다
Code 노드는 Test Step 기능으로 코드를 실행한 직후 결과를 바로 확인할 수 있다. 오류가 나면 상세한 에러 메시지가 뜨고, 반환된 데이터 구조도 함께 검증되기 때문에 워크플로우를 이어 붙이기 전에 문제를 잡아낼 수 있다.
계산·집계·조건 분기까지: 활용 범위
Code 노드가 실제로 쓰이는 영역은 폭넓다. ROI, NPV, IRR 같은 재무 지표나 평균·표준편차·상관관계 같은 통계 분석, 선형 회귀·시계열 분석 같은 예측 모델링이 여기 들어간다. 매출 데이터를 지역별·제품별·기간별로 집계하거나, 고객 행동 데이터를 세그먼트로 나누거나, KPI 대시보드용 실시간 지표를 계산하는 것도 같은 원리다.
조건부 로직도 강점이다. 복잡한 할인 정책과 가격 책정, 재고 부족 시 자동 발주, 고객 등급 산정과 혜택 적용 규칙처럼 여러 조건이 얽힌 판단을 코드로 명시적으로 짤 수 있다. 여기에 moment.js 같은 날짜/시간 라이브러리, 데이터 검증 라이브러리, 암호화/복호화 기능까지 외부 라이브러리를 끌어와 조합할 수 있다.
왜 코드 한 줄이 워크플로우를 바꾸는가
표준 노드만으로는 막히던 복잡한 로직을 구현할 수 있게 되면서 워크플로우의 확장성이 넓어진다. 기존에 갖고 있던 프로그래밍 지식을 자동화에 그대로 옮겨 쓸 수 있고, 요구사항이 바뀔 때도 코드를 고쳐 빠르게 대응할 수 있다.
노코드 환경에 프로그래밍의 정밀함이 더해지면서 여러 단계로 나뉘어 있던 계산 로직을 한 노드로 압축할 수 있고, Test Step으로 즉시 검증하면서 개발할 수 있다는 것도 실질적인 이점이다. 외부 서비스나 API 호출 없이 내부에서 계산을 끝내면 그만큼 비용이 줄고, 기존에 있던 프로그래밍 스킬을 재활용하는 것이라 학습 비용도 크지 않다.