n8n 표현식 완벽 정복 : 데이터 참조와 변환 마스터
목차
{{ $json.name }} — 이전 노드의 "김철수"가 자동으로 들어갑니다.
하드코딩 없이 동적으로 값을 바꾸는 마법. 그게 표현식입니다.
이 글을 다 읽으면 어떤 데이터든 원하는 형태로 가공할 수 있게 됩니다.
① n8n 표현식이란? — 엑셀 공식처럼
표현식이 뭔가요? 어려워 보여요...
쉽게 말해 "동적으로 값을 가져오는 공식"이야! 엑셀에서 =A1+B1 쓰는 것처럼, n8n에서도 다른 노드의 값을 참조할 수 있어.
아! 그래서 {{ }} 안에 쓰는 거군요?
맞아! {{ }}가 표현식의 시작이야. 이 안에 쓴 내용이 실행 시점에 실제 값으로 바뀌는 거지.
표현식 = 실행 시점에 동적으로 평가되는 코드
{{ }} 안에 JavaScript 문법으로 작성
이전 노드 데이터 참조, 변환, 조합 가능
② n8n 표현식 기본 문법 — {{ }} 안에 뭘 쓸까?
기본 구조
{{ 표현식 }}
중괄호 두 개 안에 JavaScript 코드 작성
n8n 내장 변수
| 변수 | 설명 | 예시 |
|---|---|---|
$json |
현재 Item의 JSON 데이터 | {{ $json.name }} |
$input |
입력 데이터 전체 | {{ $input.all() }} |
$now |
현재 시간 (Luxon) | {{ $now.toISO() }} |
$workflow |
워크플로우 정보 | {{ $workflow.name }} |
$execution |
실행 정보 | {{ $execution.id }} |
③ n8n 표현식으로 다른 노드 데이터 가져오기
현재 노드 데이터
// 단순 필드 접근
{{ $json.name }}
{{ $json.email }}
// 중첩 객체 접근
{{ $json.user.profile.name }}
// 배열 요소 접근
{{ $json.items[0].name }}
다른 노드 데이터 참조
// 노드 이름으로 참조
{{ $('노드이름').item.json.fieldName }}
// 첫 번째 아이템
{{ $('노드이름').first().json.name }}
// 모든 아이템
{{ $('노드이름').all() }}
💡 실전 예시
{{ $('Gmail Trigger').item.json.subject }}- 메일 제목{{ $('HTTP Request').first().json.data }}- API 응답 데이터{{ $('Split').all().length }}- 분리된 아이템 개수
④ n8n 표현식 문자열 메서드 활용
문자열을 다양하게 변환할 수 있습니다.
자주 쓰는 문자열 메서드
| 메서드 | 설명 | 예시 |
|---|---|---|
.toUpperCase() |
대문자로 | "hello" → "HELLO" |
.toLowerCase() |
소문자로 | "HELLO" → "hello" |
.trim() |
앞뒤 공백 제거 | " hello " → "hello" |
.split(',') |
문자열 분리 | "a,b,c" → ["a","b","c"] |
.replace(a, b) |
문자 교체 | "hello" → "hallo" |
.slice(0, 5) |
문자열 자르기 | "hello world" → "hello" |
💡 문자열 조합 예시
// 이름 조합
{{ $json.firstName + ' ' + $json.lastName }}
// 템플릿 리터럴
{{ `안녕하세요, ${$json.name}님!` }}
// 조건부 텍스트
{{ $json.status === 'active' ? '활성' : '비활성' }}
⑤ n8n 표현식 고급 패턴 — 조건·배열·안전 처리
조건부 표현식 (삼항 연산자)
// 기본 구조: 조건 ? 참일때 : 거짓일때
{{ $json.amount > 100000 ? 'VIP' : '일반' }}
// 중첩 조건
{{ $json.score >= 90 ? 'A' : $json.score >= 80 ? 'B' : 'C' }}
Null/Undefined 처리
// Optional Chaining
{{ $json.user?.profile?.name }}
// Nullish Coalescing (기본값)
{{ $json.name ?? '이름 없음' }}
// OR 연산자 (기본값)
{{ $json.name || '이름 없음' }}
배열 처리
// 배열 길이
{{ $json.items.length }}
// 배열 필터링
{{ $json.items.filter(item => item.active) }}
// 배열 맵핑
{{ $json.items.map(item => item.name).join(', ') }}
n8n 표현식 공식 문서에서 더 많은 예제를 확인하세요!
{{ }} - 표현식 시작
$json - 현재 데이터
$('노드') - 다른 노드 참조
?. ?? - 안전한 접근
현재 데이터 접근? → $json.필드명
다른 노드 참조? → $('노드명').item.json.필드명
값이 없을 수도? → $json.필드명 ?? '기본값'
조건 분기? → 조건 ? '참' : '거짓'
👉 n8n 날짜 표현식 고급편 : 복잡한 시간 계산 마스터
표현식은 n8n의 마법 언어입니다.
익숙해지면 어떤 데이터도 자유롭게 다룰 수 있습니다!
👉 Set 노드에서 {{ $json.name }}을 입력해보세요
댓글
댓글 쓰기