Skip to content

Code 노드

Code 노드는 격리된 실행 환경에서 JavaScript 또는 Python 코드를 실행해 기본 노드만으로 표현하기 어려운 계산과 데이터 처리를 수행합니다.

언제 사용하나요?

  • 문자열 정규화, 배열 생성, 수치 계산처럼 여러 단계의 로직이 필요할 때
  • HTTP 응답 문자열을 JSON으로 파싱하거나 복잡한 객체를 재구성할 때
  • 정규식, 반복문, 조건문이 필요한 데이터 처리일 때

단순한 필드 이름 변경은 Transform, 텍스트 조합은 Template, 외부 API 호출은 HTTP을 먼저 고려하세요.

입력

Code 노드는 이전 노드의 출력 필드 중 하나의 입력 소스만 선택할 수 있습니다. 선택한 필드명에서 입력 키가 만들어지며 다음 방식으로 참조합니다.

언어입력 참조환경 변수 참조
JavaScript$input.키 또는 $input["키"]process.env["KEY"]
Pythoninputs["키"]env["KEY"]

입력 참조 추가로 필드를 선택하면 해당 참조가 코드 편집기에 삽입됩니다. 환경 변수 값에는 고정 문자열·숫자·불리언 또는 이전 노드 출력 필드를 사용할 수 있습니다.

주요 설정

설정설명
언어JavaScript 또는 Python을 선택합니다. 기본값은 Python입니다.
타임아웃코드 실행 제한 시간입니다. 기본값은 30,000ms이며 100–120,000ms로 설정할 수 있습니다.
코드실행할 스크립트입니다. 공백이 아닌 코드가 반드시 필요합니다.
입력 소스코드에 전달할 이전 노드 출력 필드입니다. 최대 1개입니다.
코드 결과 스키마result 아래에 반환할 필드와 타입을 정의합니다. 구조화된 출력을 켜면 중첩 필드를 다음 노드의 변수 선택기에서 선택할 수 있습니다.
환경 변수실행 환경에 전달할 키와 값입니다. 키는 비어 있거나 중복될 수 없습니다.

JavaScript는 객체를 return하거나 result 변수에 할당합니다. Python은 값을 return하거나 result 변수에 할당합니다. 반환 구조와 코드 결과 스키마는 서로 일치하도록 작성하세요.

출력

Code 노드는 실행 정보와 실제 반환값을 함께 제공합니다.

출력 경로타입설명
successboolean코드가 정상 종료되면 true입니다.
resultobject코드가 반환하거나 result에 할당한 값입니다. 구조화된 출력에서는 정의한 하위 필드를 사용할 수 있습니다.
logsarrayPython의 print, JavaScript의 console.log로 남긴 로그입니다.
errorstring실행에 실패했을 때의 오류 메시지입니다.
executionTimeMsnumber코드 실행에 걸린 시간(ms)입니다.

구조화된 출력을 끄면 result 자체는 사용할 수 있지만 스키마에 정의되지 않은 하위 필드는 변수 선택기에 표시되지 않습니다.

연결과 배치 제약

  • Code 노드는 일반 워크플로우와 Iteration, Loop 안에 배치할 수 있습니다.
  • 입력 소스는 현재 실행 순서와 같은 범위에서 접근 가능한 이전 노드의 필드여야 합니다.
  • Loop나 Iteration 안의 Code 노드는 컨테이너 밖 노드와 직접 연결할 수 없습니다.

예시

Input의 text 필드를 선택해 입력 키가 text로 만들어졌다고 가정합니다.

js
const text = String($input.text ?? '').trim();

return {
  normalized: text.toLowerCase(),
  length: text.length,
};

구조화된 결과 스키마에서 normalized를 string, length를 number로 정의하면 다음 노드가 result.normalizedresult.length를 직접 참조할 수 있습니다.

Python에서는 같은 입력을 다음처럼 사용할 수 있습니다.

python
text = str(inputs["text"] or "").strip()
return {
    "normalized": text.lower(),
    "length": len(text),
}

주의사항

  • 실행 환경은 격리되어 있으며 파일 시스템, 네트워크, 프로세스 실행과 관련된 위험한 코드 패턴이 차단될 수 있습니다. 외부 요청은 HTTP 노드를 사용하세요.
  • 타임아웃이나 메모리 제한으로 프로세스가 종료되면 successfalse가 되고 error에 원인이 기록됩니다.
  • 구조화된 결과 스키마는 다음 노드가 필드를 찾는 계약입니다. 코드 반환값을 변경했다면 스키마도 함께 갱신하세요.
  • 비밀값을 코드에 직접 넣지 마세요. 환경 변수도 워크플로우 설정의 일부이므로 공유와 내보내기 전에 값을 검토해야 합니다.
  • 일부 시스템 환경 변수 이름은 보안 정책에 따라 실행 시 거부됩니다.

관련 노드