내장 단축 메서드 활용하기
내장 단축 메서드 활용하기
n8n의 내장 커스텀 메서드와 변수에 대해 알아볼게요.
n8n은 데이터를 다루고 n8n 데이터에 접근하기 위한 내장 메서드와 변수를 제공합니다. 이 섹션에서는 표현식[^1]에서 사용할 수 있는 메서드와 변수의 레퍼런스를 짧은 설명과 함께 정리해요.
표현식 편집기와 Code 노드에서의 사용 가능 여부
이 레퍼런스의 모든 메서드·변수가 Code 노드에서 동작하는 건 아니에요. Code 노드는 n8n의 표현식 엔진이 아니라 기본 Luxon을 상대로 일반 JavaScript를 실행합니다. 그래서 레퍼런스 페이지에 Source: Custom n8n functionality로 표시된 항목(예:
DateTime.format())은 n8n 전용 확장이라서 Code 노드에는 없거나 다르게 동작할 수 있어요.Code 노드에서 코드가
... is not a function을 던지거나, 조용히 엉뚱한 결과를 낸다면:
- 메서드의 레퍼런스 항목이 Custom n8n functionality로 표시됐는지 확인하세요.
- 기본 Luxon이나 JavaScript 동등 기능을 찾아보세요. 예를 들어 n8n 전용
DateTime.format()대신toFormat()를 씁니다.- 두 곳 모두에 있지만 시그니처가 다른 메서드를 주의하세요.
DateTime.plus()/minus()가 그런 경우예요. n8n 표현식 버전은(amount, unit)를 받지만, 기본 Luxon 버전은 Duration 형태 객체 하나({ days: 7 })만 받습니다. Code 노드에서 표현식 스타일의 시그니처를 써도 오류는 나지 않지만, 기대한 결과도 나오지 않아요.데이터 변환 함수(이 섹션에 나열된
$if()나$jmespath()같은 최상위 헬퍼 함수)는 모두 표현식 편집기에서만 쓸 수 있고 Code 노드에서는 쓸 수 없습니다.
Cookbook에는 흔한 작업의 예시가 있는데, Code 노드 전용 함수 예시도 있어요.
[^1]: n8n에서 표현식은 JavaScript 코드를 실행해 노드 파라미터를 동적으로 채우는 기능이에요. 정적 값을 주는 대신, n8n 표현식 문법으로 이전 노드·다른 워크플로·n8n 환경의 데이터를 써서 값을 정의할 수 있습니다.