InfoGrab DocsInfoGrab Docs

n8n의 데이터 구조 이해하기

요약

n8n이 노드 간에 데이터를 구조화하고 전달하는 방식을 이해하는 것은 워크플로를 구축하는 데 있어 근본적으로 중요합니다. n8n에서 노드 간에 전달되는 모든 데이터는 객체의 배열입니다. 0.166.0 버전부터 Function node 또는 Code node를 사용할 때, json 키가 없으면 n8n이 자동으로 추가합니다.

n8n이 노드 간에 데이터를 구조화하고 전달하는 방식을 이해하는 것은 워크플로를 구축하는 데 있어 근본적으로 중요합니다. 이 가이드는 데이터 구조 형식과 워크플로 내에서 데이터가 흐르는 방식을 모두 다룹니다.

데이터 구조#

n8n에서 노드 간에 전달되는 모든 데이터는 객체의 배열입니다. 다음과 같은 구조를 가집니다.

[
	{
		// For most data:
		// Wrap each item in another object, with the key 'json'
		"json": {
			// Example data
			"apple": "beets",
			"carrot": {
				"dill": 1
			}
		},
		// For binary data:
		// Wrap each item in another object, with the key 'binary'
		"binary": {
			// Example data
			"apple-picture": {
				"data": "....", // Base64 encoded binary data (required)
				"mimeType": "image/png", // Best practice to set if possible (optional)
				"fileExtension": "png", // Best practice to set if possible (optional)
				"fileName": "example.png", // Best practice to set if possible (optional)
			}
		}
	},
]
Note

json 키와 배열 문법 생략하기

0.166.0 버전부터 Function node 또는 Code node를 사용할 때, json 키가 없으면 n8n이 자동으로 추가합니다. 또한 필요한 경우 항목을 배열([])로 자동으로 감쌉니다. 이는 Function node 또는 Code node를 사용할 때만 해당됩니다. 직접 노드를 만들 때는 노드가 json 키가 포함된 데이터를 반환하도록 반드시 확인해야 합니다.

노드 내에서 데이터가 흐르는 방식#

워크플로에서 노드를 연결하면 한 노드에서 다음 노드로 데이터가 자동으로 전달됩니다.

노드는 여러 항목을 자동으로 처리합니다. 노드가 데이터 항목의 배열을 받으면, 각 항목을 개별적으로 처리하고 구성된 작업을 각 항목에 대해 수행합니다.

예를 들어, Trello node를 Create-Card로 설정하고 수신 데이터의 name-input-value라는 속성을 사용해 Name을 설정하는 표현식을 만들면, 노드는 각 항목에 대해 카드를 생성하며 항상 현재 항목의 name-input-value를 선택합니다.

예를 들어, 다음 입력은 두 개의 카드를 생성합니다. 하나는 test1이라는 이름을, 다른 하나는 test2라는 이름을 갖습니다.

[
	{
		"name-input-value": "test1"
	},
	{
		"name-input-value": "test2"
	}
]

드래그 앤 드롭으로 매핑하는 대상 이해하기#

데이터 매핑은 필드 경로를 매핑하고 해당 필드의 값을 불러옵니다. 예를 들어, 다음과 같은 데이터가 있다고 가정합니다.

[
	{
		"fruit": "apples",
		"color": "green"
	}
]

INPUT에서 fruit를 드래그하여 값을 사용하고자 하는 필드에 드롭하면 fruit를 매핑할 수 있습니다. 이렇게 하면 {{ $json.fruit }}라는 표현식이 생성됩니다. 노드가 입력 항목을 반복 처리할 때, 해당 필드의 값은 각 항목의 fruit 값이 됩니다.

중첩된 데이터 이해하기#

다음과 같은 데이터가 있다고 가정합니다.

[
  {
    "name": "First item",
    "nested": {
      "example-number-field": 1,
      "example-string-field": "apples"
    }
  },
  {
    "name": "Second item",
    "nested": {
      "example-number-field": 2,
      "example-string-field": "oranges"
    }
  }
]

n8n은 이를 다음과 같이 테이블 형태로 표시합니다.

"INPUT 패널의 테이블 스크린샷. "nested"라는 최상위 필드가 포함되어 있습니다. 이 필드는 중첩된 데이터를 포함하고 있으며, 굵은 글씨로 표시됩니다."

n8n의 데이터 구조 이해하기

n8n v2.29
원문 보기
요약

n8n이 노드 간에 데이터를 구조화하고 전달하는 방식을 이해하는 것은 워크플로를 구축하는 데 있어 근본적으로 중요합니다. n8n에서 노드 간에 전달되는 모든 데이터는 객체의 배열입니다. 0.166.0 버전부터 Function node 또는 Code node를 사용할 때, json 키가 없으면 n8n이 자동으로 추가합니다.

n8n이 노드 간에 데이터를 구조화하고 전달하는 방식을 이해하는 것은 워크플로를 구축하는 데 있어 근본적으로 중요합니다. 이 가이드는 데이터 구조 형식과 워크플로 내에서 데이터가 흐르는 방식을 모두 다룹니다.

데이터 구조#

n8n에서 노드 간에 전달되는 모든 데이터는 객체의 배열입니다. 다음과 같은 구조를 가집니다.

[
	{
		// For most data:
		// Wrap each item in another object, with the key 'json'
		"json": {
			// Example data
			"apple": "beets",
			"carrot": {
				"dill": 1
			}
		},
		// For binary data:
		// Wrap each item in another object, with the key 'binary'
		"binary": {
			// Example data
			"apple-picture": {
				"data": "....", // Base64 encoded binary data (required)
				"mimeType": "image/png", // Best practice to set if possible (optional)
				"fileExtension": "png", // Best practice to set if possible (optional)
				"fileName": "example.png", // Best practice to set if possible (optional)
			}
		}
	},
]
Note

json 키와 배열 문법 생략하기

0.166.0 버전부터 Function node 또는 Code node를 사용할 때, json 키가 없으면 n8n이 자동으로 추가합니다. 또한 필요한 경우 항목을 배열([])로 자동으로 감쌉니다. 이는 Function node 또는 Code node를 사용할 때만 해당됩니다. 직접 노드를 만들 때는 노드가 json 키가 포함된 데이터를 반환하도록 반드시 확인해야 합니다.

노드 내에서 데이터가 흐르는 방식#

워크플로에서 노드를 연결하면 한 노드에서 다음 노드로 데이터가 자동으로 전달됩니다.

노드는 여러 항목을 자동으로 처리합니다. 노드가 데이터 항목의 배열을 받으면, 각 항목을 개별적으로 처리하고 구성된 작업을 각 항목에 대해 수행합니다.

예를 들어, Trello node를 Create-Card로 설정하고 수신 데이터의 name-input-value라는 속성을 사용해 Name을 설정하는 표현식을 만들면, 노드는 각 항목에 대해 카드를 생성하며 항상 현재 항목의 name-input-value를 선택합니다.

예를 들어, 다음 입력은 두 개의 카드를 생성합니다. 하나는 test1이라는 이름을, 다른 하나는 test2라는 이름을 갖습니다.

[
	{
		"name-input-value": "test1"
	},
	{
		"name-input-value": "test2"
	}
]

드래그 앤 드롭으로 매핑하는 대상 이해하기#

데이터 매핑은 필드 경로를 매핑하고 해당 필드의 값을 불러옵니다. 예를 들어, 다음과 같은 데이터가 있다고 가정합니다.

[
	{
		"fruit": "apples",
		"color": "green"
	}
]

INPUT에서 fruit를 드래그하여 값을 사용하고자 하는 필드에 드롭하면 fruit를 매핑할 수 있습니다. 이렇게 하면 {{ $json.fruit }}라는 표현식이 생성됩니다. 노드가 입력 항목을 반복 처리할 때, 해당 필드의 값은 각 항목의 fruit 값이 됩니다.

중첩된 데이터 이해하기#

다음과 같은 데이터가 있다고 가정합니다.

[
  {
    "name": "First item",
    "nested": {
      "example-number-field": 1,
      "example-string-field": "apples"
    }
  },
  {
    "name": "Second item",
    "nested": {
      "example-number-field": 2,
      "example-string-field": "oranges"
    }
  }
]

n8n은 이를 다음과 같이 테이블 형태로 표시합니다.

"INPUT 패널의 테이블 스크린샷. "nested"라는 최상위 필드가 포함되어 있습니다. 이 필드는 중첩된 데이터를 포함하고 있으며, 굵은 글씨로 표시됩니다."