n8n 표현식 완벽 정복 : 데이터 참조와 변환 마스터

목차

    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 - 현재 데이터
    $('노드') - 다른 노드 참조
    ?. ?? - 안전한 접근

    3초 선택 가이드

    현재 데이터 접근? → $json.필드명
    다른 노드 참조? → $('노드명').item.json.필드명
    값이 없을 수도? → $json.필드명 ?? '기본값'
    조건 분기? → 조건 ? '참' : '거짓'

    다음 글 예고

    👉 n8n 날짜 표현식 고급편 : 복잡한 시간 계산 마스터


    표현식은 n8n의 마법 언어입니다.
    익숙해지면 어떤 데이터도 자유롭게 다룰 수 있습니다!

    👉 Set 노드에서 {{ $json.name }}을 입력해보세요

    댓글

    이 블로그의 인기 게시물

    n8n으로 업무 자동화 시작하기 : 왜 필요하고 어떻게 활용할까?

    n8n 데이터 처리 노드 : Set, Split, Merge 완벽 정리

    n8n 트리거 노드 : 3가지 유형으로 자동화 시작하기