Code 노드 문서
Code 노드를 사용하여 커스텀 JavaScript 또는 Python 코드를 작성하고 워크플로우의 단계로 실행합니다. 이 페이지는 Code 노드의 사용 정보를 제공합니다. 사용 예시와 시작에 도움이 되는 템플릿은 n8n의 Code 인테그레이션 페이지를 참조하세요.
Code 노드를 사용하여 커스텀 JavaScript 또는 Python 코드를 작성하고 워크플로우의 단계로 실행합니다.
이 페이지는 Code 노드의 사용 정보를 제공합니다. n8n에서의 코딩에 대한 더 많은 지침은 코드(Code) 섹션을 참조하세요. 다음 내용이 포함됩니다:
- 내장 메서드 및 변수 참조 문서
- 날짜 처리 및 JSON 쿼리 가이드
- 쿡북(Cookbook)의 다양한 예시 모음
사용 예시와 시작에 도움이 되는 템플릿은 n8n의 Code 인테그레이션 페이지를 참조하세요.
Code 노드는 버전 0.198.0부터 Function 및 Function Item 노드를 대체합니다. 이전 버전의 n8n을 사용 중인 경우 Function 노드 문서 및 Function Item 노드 문서를 확인할 수 있습니다.
사용법#
Code 노드 사용 방법입니다.
모드 선택#
두 가지 모드가 있습니다:
- 모든 항목에 대해 한 번 실행(Run Once for All Items): 이것이 기본값입니다. 워크플로우가 실행될 때 입력 항목 수에 관계없이 Code 노드의 코드가 한 번만 실행됩니다.
- 각 항목에 대해 한 번씩 실행(Run Once for Each Item): 모든 입력 항목에 대해 코드를 실행하려는 경우 선택합니다.
JavaScript#
Code 노드는 Node.js를 지원합니다.
지원되는 JavaScript 기능#
Code 노드는 다음을 지원합니다:
- Promise. 항목을 직접 반환하는 대신 적절히 해석되는 Promise를 반환할 수 있습니다.
console.log를 사용한 브라우저 콘솔 출력. 워크플로우 디버깅 및 문제 해결에 유용합니다.
외부 라이브러리#
n8n을 셀프 호스팅하는 경우 Code 노드에서 내장 및 외부 npm 모듈을 가져와 사용할 수 있습니다. 외부 모듈을 활성화하는 방법은 Code 노드에서 모듈 활성화 가이드를 참조하세요.
n8n Cloud를 사용하는 경우 외부 npm 모듈을 가져올 수 없습니다. n8n은 두 가지 모듈을 제공합니다:
내장 메서드 및 변수#
n8n은 데이터 작업 및 n8n 데이터 접근을 위한 내장 메서드와 변수를 제공합니다. 자세한 내용은 내장 메서드 및 변수를 참조하세요.
내장 메서드와 변수를 사용하는 구문은 $variableName 또는 $methodName()입니다. Code 노드 또는 표현식 에디터에서 $를 입력하면 제안되는 메서드 및 변수 목록이 표시됩니다.
키보드 단축키#
Code 노드 편집 환경은 자동 완성부터 코드 폴딩, 다중 커서 사용까지 다양한 작업에 대한 시간 절약 유용한 키보드 단축키를 지원합니다. 전체 키보드 단축키 목록을 확인하세요.
Python (Pyodide - 레거시)#
Pyodide는 레거시 기능입니다. n8n v2는 이 기능을 더 이상 지원하지 않습니다.
n8n은 버전 1.0에서 Python 지원을 추가했습니다. Python 실행 파일은 포함되지 않으며, 대신 CPython을 WebAssembly로 포팅한 Pyodide를 사용하여 Python 지원을 제공합니다. 이로 인해 사용 가능한 Python 패키지는 Pyodide에 포함된 패키지로 제한됩니다. n8n은 처음 사용할 때 패키지를 자동으로 다운로드합니다.
Code 노드는 JavaScript보다 Python 처리에 더 오래 걸립니다. 이는 추가 컴파일 단계 때문입니다.
내장 메서드 및 변수#
n8n은 데이터 작업 및 n8n 데이터 접근을 위한 내장 메서드와 변수를 제공합니다. 자세한 내용은 내장 메서드 및 변수를 참조하세요.
내장 메서드와 변수를 사용하는 구문은 _variableName 또는 _methodName()입니다. Code 노드에서 _를 입력하면 제안되는 메서드 및 변수 목록이 표시됩니다.
키보드 단축키#
Code 노드 편집 환경은 자동 완성부터 코드 폴딩, 다중 커서 사용까지 다양한 작업에 대한 시간 절약 유용한 키보드 단축키를 지원합니다. 전체 키보드 단축키 목록을 확인하세요.
파일 시스템 및 HTTP 요청#
파일 시스템에 접근하거나 HTTP 요청을 만들 수 없습니다. 대신 다음 노드를 사용하세요:
Python (네이티브)#
n8n은 버전 1.111.0에서 태스크 러너를 사용한 네이티브 Python 지원을 추가했습니다. 이 기능은 n8n v2부터 안정적입니다.
Pyodide와의 주요 차이점:
- 네이티브 Python은 전체 항목 모드에서
_items, 항목별 모드에서_item만 지원합니다. 다른 n8n 내장 메서드 및 변수는 지원하지 않습니다. - 셀프 호스팅 환경에서 네이티브 Python은
n8nio/runners이미지에 포함되고 명시적으로 허용 목록에 등록된 경우 표준 라이브러리 및 서드파티 네이티브 Python 모듈 가져오기를 지원합니다. 자세한 내용은 태스크 러너에 추가 의존성 추가를 참조하세요. - 네이티브 Python은 기본적으로 안전하지 않은 내장 기능을 차단합니다. 자세한 내용은 태스크 러너 환경 변수를 참조하세요.
- 점 접근 표기법(예:
item.json.myNewField)을 허용하는 Pyodide와 달리 네이티브 Python은 브래킷 접근 표기법(예:item["json"]["my_new_field"])만 허용합니다. Pyodide가 허용하지만 네이티브 Python에서 유효하지 않은 구문에 다른 사소한 차이가 있을 수 있습니다. - n8n 클라우드에서 Code 노드의 Python 옵션은 표준 라이브러리나 서드파티 패키지를 포함한 어떤 Python 라이브러리도 가져오는 것을 허용하지 않습니다. 셀프 호스팅 사용자는 외부 라이브러리를 포함하는 설정 지침을 여기에서 확인할 수 있습니다. 장기적으로 n8n 팀은 태스크 러너를 사용하여 모든 1st 및 3rd 파티 라이브러리로 임의의 Python 코드를 안전하게 실행할 수 있도록 지원할 계획입니다.
네이티브 Python로의 업그레이드는 파괴적 변경이므로, 네이티브 Python 러너를 사용하도록 Python 스크립트를 조정해야 할 수 있습니다.
n8n에서 코딩하기#
n8n에서 코드를 사용할 수 있는 두 곳이 있습니다: Code 노드와 표현식 에디터. 두 영역을 사용할 때 알아야 할 몇 가지 핵심 개념과 일반적인 작업을 돕는 내장 메서드 및 변수가 있습니다.
핵심 개념#
Code 노드로 작업할 때 다음 개념을 이해해야 합니다:
- 데이터 구조: Code 노드에서 받는 데이터와 노드에서 데이터를 출력하기 위한 요구 사항을 이해합니다.
- 항목 연결(Item linking): 데이터 항목의 작동 방식과 이전 노드의 항목에 연결하는 방법을 학습합니다. 입력 및 출력 항목 수가 일치하지 않을 때 코드에서 항목 연결을 처리해야 합니다.
내장 메서드 및 변수#
n8n은 내장 메서드와 변수를 포함합니다. 이들은 다음을 지원합니다:
- 특정 항목 데이터 접근
- 워크플로우, 실행 및 n8n 환경에 대한 데이터 접근
- 데이터 및 시간 작업을 돕는 편의 변수
자세한 내용은 내장 메서드 및 변수를 참조하세요.
Code 노드에서 AI 사용#
Code 노드의 AI 지원은 Cloud 사용자에게만 제공됩니다. 셀프 호스팅 n8n에서는 사용할 수 없습니다.
Code 탭에 이미 코드를 작성한 경우, AI가 생성한 코드가 해당 코드를 대체합니다. n8n은 AI를 초기 코드 작성의 시작점으로 활용한 뒤 필요에 따라 편집하는 방식을 권장합니다.
Code 노드에서 ChatGPT를 사용하여 코드를 생성하려면:
- Code 노드에서 Language를 JavaScript로 설정합니다.
- Ask AI 탭을 선택합니다.
- 쿼리를 작성합니다.
- Generate Code를 선택합니다. n8n이 쿼리를 ChatGPT에 전송한 후 결과를 Code 탭에 표시합니다.
자주 발생하는 문제#
자주 묻는 질문이나 문제 및 해결 방법은 자주 발생하는 문제를 참조하세요.
