n8n 자동화 배우기: 초급 4단계 - JSON과 리스트 구조의 이해

안녕하세요! n8n 자동화 여정의 네 번째 단계를 함께 할 여러분을 진심으로 환영합니다. 이번 포스팅에서는 n8n 워크플로우의 핵심을 이루는 데이터 구조와 흐름에 대해 심층적으로 탐구해 볼 것입니다. 특히, JSON, 리스트, 그리고 아이템이라는 중요한 개념을 중심으로 설명하겠습니다. 이후 섹션에서는 각각의 개념을 간략히 요약하여 빠르게 이해할 수 있도록 도와드리겠습니다. 데이터가 노드를 거치며 변화하고 워크플로우가 실행되는 과정을 명확히 이해할 수 있도록 돕겠습니다.

만약 n8n 자동화 여정의 이전 단계들을 놓치셨다면, 아래 링크를 통해 이전 포스팅들을 확인해주세요.

  1. n8n 자동화 배우기: 초급 1단계 - 핵심 개념 완벽 마스터
  2. n8n 자동화 배우기: 초급 2단계 - API와 웹훅의 핵심 개념
  3. n8n 자동화 배우기: 초급 3단계 - 노드 (Node) 완벽 분석

핵심 데이터 구조: JSON과 리스트

n8n에서 데이터를 다룰 때 가장 중요한 두 가지 구조는 바로 JSON과 리스트입니다. JSON은 데이터 전송 및 저장을 위한 기본 구조로 사용되며, 리스트는 여러 개의 JSON 객체를 동시에 처리하기 위한 필수적인 형식으로 활용됩니다. 이 두 가지 구조를 정확히 이해해야 n8n의 강력한 기능을 최대한 활용할 수 있습니다.

JSON (JavaScript Object Notation)

JSON은 데이터를 저장하고 교환하는 데 널리 사용되는 표준 형식입니다. 예를 들어, 웹 애플리케이션에서 서버와 클라이언트 간 데이터를 주고받을 때, 혹은 API 응답 데이터를 전달하는 데 자주 사용됩니다. n8n에서는 데이터를 나타내고 처리하는 데 JSON을 광범위하게 활용합니다. JSON은 키(key)와 값(value) 쌍으로 구성되며, 중괄호 {} 안에 작성됩니다. 각 쌍은 쉼표로 구분됩니다.

예시:

{
  "first_name": "Emily",
  "last_name": "Johnson",
  "email": "emily.johnson@example.com"
}

JSON의 특징:

  • 중첩 구조 (Nested Structure): JSON은 다른 JSON 객체를 값으로 가질 수 있습니다.
    {
      "first_name": "Emily",
      "last_name": "Johnson",
      "location": {
        "country": "USA",
        "city": "New York"
      }
    }
  • 점 표기법 (Dot Notation): 특정 키 값에 접근할 때 점 표기법을 사용합니다. 예를 들어, location 객체의 country 키 값에 접근하려면 $JSON.location.country와 같이 표현합니다.

리스트 (List)

리스트는 여러 개의 객체를 순서대로 나열한 구조입니다. 대괄호 [] 안에 작성되며, 각 객체는 쉼표로 구분됩니다.

예시:

[
  "apple",
  "banana",
  "cherry"
]

[
  { "name": "Emily", "age": 30 },
  { "name": "Paul", "age": 25 },
  { "name": "Sarah", "age": 35 }
]

리스트의 특징:

JSON 리스트: 리스트 안에 JSON 객체가 포함될 수 있습니다. n8n에서는 JSON 리스트를 사용하여 여러 개의 데이터를 처리합니다.

n8n의 핵심 개념: 아이템(Item)

n8n에서는 데이터를 아이템이라고 부릅니다. 아이템은 워크플로우를 통해 처리되는 개별 데이터 단위이며, 일반적으로 JSON 객체로 표현됩니다.

아이템과 테이블의 관계

JSON은 테이블과 아주 밀접한 관계를 가지고 있습니다. JSON 객체는 테이블의 한 행(row)에 해당하며, 각 키는 테이블의 열 헤더(column header)에 해당합니다.

예시:

[
  { "first_name": "Emily", "last_name": "Johnson", "email": "emily.johnson@example.com" },
  { "first_name": "Paul", "last_name": "Harris", "email": "paul.harris@example.com" },
  { "first_name": "Marcus", "last_name": "Bennett", "email": "marcus.bennett@example.com" }
]
first_name last_name email
Emily Johnson emily.johnson@example.com
Paul Harris paul.harris@example.com
Marcus Bennett marcus.bennett@example.com

n8n에서 각 행은 하나의 아이템을 나타내며, 워크플로우는 이러한 아이템들을 순차적으로 처리합니다.

이 포스팅은 유튜브 채널 '@n8n-io'의 콘텐츠를 기반으로 작성되었습니다. n8n Academy는 자동화 및 워크플로우 설계의 핵심 개념을 알기 쉽게 설명하는 채널로, 실무에 바로 적용할 수 있는 유용한 팁들을 제공합니다.

노드와 아이템

n8n의 노드는 아이템들을 입력받아 처리하고, 결과 아이템들을 출력합니다. 각 노드는 입력 데이터의 각 아이템에 대해 한 번씩 실행됩니다.

노드 실행 방식:

  1. 입력 처리: 노드는 입력으로 들어온 아이템 리스트를 받습니다.
  2. 아이템 반복: 각 아이템에 대해 정의된 작업을 실행합니다.
  3. 출력 생성: 처리된 결과를 새로운 아이템 리스트로 출력합니다.

특정 설정에 따라 첫 번째 아이템만 처리하거나 특정 조건에 해당하는 아이템만 처리하도록 설정할 수도 있습니다. 예를 들어, 'IF' 노드를 사용하여 특정 키 값이 원하는 조건을 충족할 때만 해당 아이템을 처리하도록 설정할 수 있습니다.

n8n 워크플로우 실행 흐름

워크플로우는 노드들이 연결되어 데이터를 처리하는 일련의 과정입니다. 이를 시각적으로 이해하기 위해, 각 노드가 데이터의 흐름을 처리하고 전달하는 간단한 다이어그램을 참고하면 효과적입니다. 예시 이미지나 다이어그램은 워크플로우의 전반적인 흐름을 명확히 보여줄 수 있습니다.

간단한 예시를 통해 실행 흐름을 알아봅시다:

  1. 워크플로우 시작: 시작 노드가 빈 JSON 리스트 [{}]를 출력합니다.
  2. 구글 시트 노드: 데이터를 읽어오면 JSON 리스트 형식으로 출력됩니다.
  3. 필터 노드: 조건에 만족하는 아이템만 다음 노드로 전달합니다.
  4. 최종 결과: 필터링된 아이템들이 다음 노드로 전달됩니다.

표현식 (Expressions)과 데이터 접근

n8n에서 표현식을 사용하여 데이터를 동적으로 활용할 수 있습니다. 예를 들어, 구글 시트에서 가져온 데이터를 결합하여 이메일 제목을 생성하거나, 특정 값에 따라 사용자 알림 메시지를 동적으로 변경할 수 있습니다.

아이템 변수 활용

  • $JSON.first_name: 현재 아이템의 first_name 키 값을 가져옵니다.
  • $JSON.location.country: 현재 아이템의 location 객체 내부의 country 값을 가져옵니다.

자바스크립트 활용

  • { $JSON.last_name.toUpperCase() }: last_name 값을 대문자로 변환합니다.
  • { $JSON.age > 30 ? "Older" : "Younger" }: age 값에 따라 조건을 반환합니다.

표현식 조합

{ $JSON.first_name } { $JSON.last_name } ({ $JSON.email }): 아이템 데이터를 조합하여 출력합니다.

n8n 실습 예제: 필드 편집 노드

워크플로우 준비

  1. 필드 편집 노드 추가: 새 필드를 추가하고 이름을 full_name으로 지정합니다.
  2. 표현식 입력: { $JSON.first_name } { $JSON.last_name }을 입력합니다.
  3. 테스트: 워크플로우 실행 후 full_name 필드가 생성되었는지 확인합니다.
  4. 자바스크립트 추가: 표현식을 { $JSON.first_name } { $JSON.last_name.toUpperCase() }로 변경하여 실행합니다.

결론

이번 포스팅에서는 n8n 워크플로우의 핵심 데이터 구조(JSON, 리스트), 아이템 개념, 그리고 표현식 활용법을 다루었습니다. 이러한 개념을 숙지하면 복잡한 자동화 워크플로우를 설계할 수 있습니다.

다음 포스팅에서는 첫 번째 자동화 워크플로우를 만들어보는 실습을 진행할 예정입니다. 이 실습에서는 데이터를 입력하고, 필터링 조건을 설정하며, 결과를 저장하는 과정을 단계별로 다룰 것입니다. 이를 통해 n8n의 실제 활용법을 명확히 이해할 수 있습니다. 이 과정에서는 간단한 데이터 입력부터 조건에 따른 필터링, 결과 처리까지의 전체 과정을 다룰 것입니다.


AI와 함께 성장하는 블로거들의 커뮤니티에 초대합니다!
최신 AI 트렌드부터 실전 활용법까지, 함께 배우고 나누며 성장해요.
지금 참여하시고 새로운 가능성을 발견하세요!

AI를 활용하는 블로거들의 공간

댓글 쓰기

다음 이전