AI 자동화툴_30분 안에 n8n JSON 및 데이터 변환 마스터하기 (가장 가치 있는 n8n 기술)
_Jono Catliff

Master n8n JSON & Data Transformation in 30 Minutes (Most Valuable n8n Skill)

1. JSON 데이터와 키-값 쌍

JSON(JavaScript Object Notation) 데이터는 인간과 기계 모두가 읽기 쉬운 형식으로 데이터를 표현하는 데 사용됩니다. JSON 데이터의 핵심은 키-값 쌍(key-value pairs)입니다. 키는 데이터를 식별하는 데 사용되는 이름이며, 값은 실제 데이터입니다. 키는 일반적으로 따옴표로 묶인 문자열로 표현되고, 값은 문자열, 숫자, 부울, 배열, 객체 등 다양한 데이터 타입이 될 수 있습니다.

예를 들어, 고객의 이름, 이메일, 전화번호를 JSON 형식으로 표현할 수 있습니다. 이 경우, “name”, “email”, “phone”이 키가 되고, 각 키에 해당하는 실제 고객 정보가 값이 됩니다. 키를 사용하여 특정 고객의 정보를 쉽게 검색하고 참조할 수 있습니다. 이러한 키-값 구조는 데이터를 체계적으로 관리하고 접근하는 데 매우 유용하며, 다양한 애플리케이션과 시스템 간의 데이터 교환을 간소화합니다. 예를 들어, 웹 애플리케이션에서 서버로 데이터를 전송하거나, API에서 데이터를 받아올 때 JSON 형식이 널리 사용됩니다. JSON은 데이터 구조를 명확하게 정의하고, 다양한 프로그래밍 언어에서 쉽게 파싱할 수 있기 때문에 데이터 교환에 이상적인 선택입니다. 키-값 쌍의 개념을 이해하는 것은 JSON 데이터를 효과적으로 활용하고, N8N과 같은 자동화 플랫폼에서 데이터를 변환하고 처리하는 데 필수적입니다.

2. N8N에서 JSON 데이터 생성 및 수정하기

N8N은 다양한 방식으로 JSON 데이터를 생성하고 수정할 수 있는 강력한 도구를 제공합니다. 가장 기본적인 방법은 수동 매핑을 사용하는 것입니다. 이 방법을 사용하면 사용자가 직접 키-값 쌍을 정의하고 값을 할당할 수 있습니다. N8N 인터페이스에서 필드를 추가하고, 각 필드에 원하는 키 이름과 값을 입력하면 됩니다. 예를 들어, “name”이라는 키에 “Jonno Catliff”라는 값을 할당하거나, “country”라는 키에 “Canada”라는 값을 할당할 수 있습니다. 수동 매핑은 간단한 JSON 데이터를 빠르게 생성하는 데 유용합니다.

또 다른 방법은 JSON 구조를 직접 정의하는 것입니다. 이 방법은 JSON 데이터의 구조를 잘 이해하고 있을 때 유용합니다. N8N 인터페이스에서 JSON 객체를 생성하고, 객체 내에 필요한 키-값 쌍을 직접 입력할 수 있습니다. 이 방법을 사용하면 복잡한 JSON 데이터를 유연하게 구성할 수 있습니다.

ChatGPT와 같은 AI 도구를 활용하여 JSON 데이터를 생성하는 방법도 있습니다. ChatGPT에게 원하는 데이터 구조를 설명하고 JSON 형식으로 생성해 달라고 요청하면, AI가 자동으로 JSON 데이터를 생성해 줍니다. 이 방법은 JSON 데이터 구조를 잘 모르거나, 복잡한 JSON 데이터를 빠르게 생성해야 할 때 유용합니다. ChatGPT가 생성한 JSON 데이터를 N8N에 복사하여 붙여넣고, 필요에 따라 수정하여 사용할 수 있습니다.

JSON 데이터를 수정할 때는 키 이름을 변경하거나, 값을 변경하거나, 새로운 키-값 쌍을 추가할 수 있습니다. N8N은 이러한 작업을 쉽게 수행할 수 있도록 다양한 도구를 제공합니다. 예를 들어, 수동 매핑을 사용하여 특정 키의 값을 변경하거나, JSON 구조를 직접 편집하여 데이터 구조를 변경할 수 있습니다. 키 이름을 변경할 때는 N8N에서 해당 키를 선택하고, 새로운 이름을 입력하면 됩니다. 값을 변경할 때는 해당 값을 클릭하고, 새로운 값을 입력하면 됩니다. 새로운 키-값 쌍을 추가할 때는 필드를 추가하고, 새로운 키 이름과 값을 입력하면 됩니다.

3. JSON 데이터 타입 이해의 중요성

JSON 데이터 타입을 이해하는 것은 N8N과 같은 플랫폼을 마스터하는 데 매우 중요합니다. JSON은 다양한 데이터 타입을 지원하며, 각 데이터 타입은 서로 다른 방식으로 처리됩니다. JSON에서 가장 흔하게 사용되는 데이터 타입은 다음과 같습니다.

  • 문자열(Text): 따옴표로 묶인 텍스트 데이터입니다. 예를 들어, 사람의 이름(“Jane Doe”)이나 주소(“123 Main Street”)가 문자열 데이터 타입에 해당합니다.
  • 숫자(Number): 정수 또는 실수 형태의 숫자 데이터입니다. 예를 들어, 예산(5000)이나 나이(30)가 숫자 데이터 타입에 해당합니다.
  • 부울(Boolean): 참(true) 또는 거짓(false) 값을 가지는 데이터입니다. 예를 들어, 사용자의 활성 상태(true 또는 false)가 부울 데이터 타입에 해당합니다.
  • 날짜(Date): 특정 날짜와 시간을 나타내는 데이터입니다. 예를 들어, 양식 제출 날짜(2024-01-26)가 날짜 데이터 타입에 해당합니다.
  • 바이너리(Binary): 파일이나 이미지와 같은 바이너리 데이터를 나타내는 데이터입니다. 예를 들어, PDF 파일이나 PNG 이미지가 바이너리 데이터 타입에 해당합니다.
  • 컬렉션(Collection): 여러 개의 키-값 쌍을 포함하는 객체입니다. 컬렉션은 다양한 데이터 타입을 포함할 수 있으며, 계층적인 데이터 구조를 표현하는 데 유용합니다. 예를 들어, 고객 정보를 담은 객체(이름, 이메일, 전화번호 등)가 컬렉션 데이터 타입에 해당합니다.
  • 배열(Array): 동일한 데이터 타입의 값들을 순서대로 나열한 리스트입니다. 배열은 여러 개의 값을 하나의 변수에 저장하고 관리하는 데 유용합니다. 예를 들어, 구매한 제품 목록([ “사과”, “오렌지”, “망고” ])이 배열 데이터 타입에 해당합니다.

JSON 데이터 타입을 이해하는 것이 중요한 이유는 N8N에서 데이터를 처리하고 변환할 때 데이터 타입에 따라 다른 연산을 수행해야 하기 때문입니다. 예를 들어, 문자열 데이터에 대해 문자열 연산(concatenate, substring 등)을 수행하고, 숫자 데이터에 대해 산술 연산(덧셈, 뺄셈 등)을 수행해야 합니다. 또한, 서로 다른 데이터 타입을 비교하거나 결합할 때는 데이터 타입 변환이 필요할 수 있습니다. N8N은 다양한 데이터 타입 변환 함수를 제공하며, 이러한 함수를 사용하여 데이터 타입을 일치시키고, 원하는 연산을 수행할 수 있습니다. 예를 들어, 문자열 “true”를 부울 값 true로 변환하거나, 숫자 123을 문자열 “123”으로 변환할 수 있습니다.

4. N8N에서 데이터 타입 변환하기: 함수 활용

N8N에서는 JSON 데이터 타입을 변환하기 위해 다양한 함수를 활용할 수 있습니다. 이러한 함수들은 데이터 처리 과정을 더욱 유연하고 효율적으로 만들어줍니다. 대표적인 예로, join 함수와 split 함수가 있습니다.

join 함수는 배열(Array) 형태의 데이터를 문자열(Text)로 변환하는 데 사용됩니다. 이 함수는 배열의 요소들을 특정 구분자를 사용하여 연결하여 하나의 문자열로 만듭니다. 예를 들어, 고객의 서비스 목록이 배열 형태로 저장되어 있을 때, join 함수를 사용하여 이 목록을 쉼표(,)와 공백(” “)으로 구분된 문자열로 변환할 수 있습니다. 이렇게 변환된 문자열은 이메일 본문에 삽입하거나, 데이터베이스에 저장하는 데 유용합니다.

{{ $json.clients[1].services.join(', ') }}

위 예시에서 clients[1].services는 고객의 서비스 목록 배열을 나타내며, join(', ')는 이 배열의 요소들을 쉼표와 공백으로 연결하여 하나의 문자열로 변환합니다.

split 함수는 문자열(Text) 형태의 데이터를 배열(Array)로 변환하는 데 사용됩니다. 이 함수는 문자열을 특정 구분자를 기준으로 분리하여 배열의 요소로 만듭니다. 예를 들어, 고객의 이름이 공백(” “)으로 구분된 문자열 형태로 저장되어 있을 때, split 함수를 사용하여 이 문자열을 성과 이름으로 분리된 배열로 변환할 수 있습니다. 이렇게 변환된 배열은 성과 이름을 개별적으로 처리하거나, 데이터베이스에 저장하는 데 유용합니다.

{{ $json.clients[1].name.split(' ') }}

위 예시에서 clients[1].name은 고객의 이름 문자열을 나타내며, split(' ')는 이 문자열을 공백을 기준으로 분리하여 배열로 변환합니다.

이 외에도 N8N은 다양한 데이터 타입 변환 함수를 제공합니다. 예를 들어, 숫자(Number)를 문자열(Text)로 변환하는 toString() 함수, 문자열(Text)을 숫자(Number)로 변환하는 parseInt() 함수, 부울(Boolean) 값을 반전시키는 !value 연산자 등을 사용할 수 있습니다. 이러한 함수들을 적절히 활용하면 N8N에서 JSON 데이터를 자유자재로 변환하고 처리할 수 있습니다.

5. 배열 데이터 다루기: Iterator와 Aggregator

배열(Array) 데이터는 여러 개의 값을 하나의 변수에 저장하고 관리하는 데 유용합니다. N8N에서는 배열 데이터를 효과적으로 다루기 위해 IteratorAggregator라는 두 가지 핵심 기능을 제공합니다.

Iterator는 배열의 각 요소를 하나씩 순회하면서 특정 작업을 수행하는 데 사용됩니다. Iterator는 배열을 분리(split out)하여 각 요소에 대해 독립적인 워크플로우를 실행할 수 있도록 합니다. 예를 들어, 고객 목록이 배열 형태로 저장되어 있을 때, Iterator를 사용하여 각 고객에게 개별적인 이메일을 보낼 수 있습니다. Iterator는 배열의 첫 번째 요소부터 마지막 요소까지 순서대로 순회하며, 각 요소에 대해 지정된 작업을 반복합니다.

Aggregator는 Iterator를 통해 분리된 요소들을 다시 하나의 배열로 결합하는 데 사용됩니다. Aggregator는 여러 개의 독립적인 워크플로우 결과를 하나의 결과로 통합하는 데 유용합니다. 예를 들어, 각 고객에게 이메일을 보낸 후, Aggregator를 사용하여 이메일 전송 결과를 하나의 배열로 모을 수 있습니다. Aggregator는 Iterator를 통해 처리된 요소들을 순서대로 수집하고, 지정된 방식으로 결합하여 새로운 배열을 생성합니다.

Iterator와 Aggregator는 상호 보완적인 기능을 수행합니다. Iterator는 배열을 분리하여 각 요소에 대한 개별적인 처리를 가능하게 하고, Aggregator는 이러한 개별적인 처리 결과를 다시 하나의 배열로 통합합니다. 이러한 기능을 활용하면 N8N에서 복잡한 배열 데이터 처리 워크플로우를 효율적으로 구축할 수 있습니다.

예를 들어, 10,000명의 고객에게 이메일을 보내야 하는 경우, Iterator를 사용하여 고객 목록을 분리하고, 각 고객에게 개별적인 이메일을 보낼 수 있습니다. 이메일 전송 후, Aggregator를 사용하여 이메일 전송 결과를 하나의 배열로 모으고, 이 배열을 사용하여 전송 성공률을 분석하거나, 실패한 고객에게 다시 이메일을 보내는 등의 추가 작업을 수행할 수 있습니다.

Iterator와 Aggregator는 N8N에서 배열 데이터를 다루는 데 필수적인 기능이며, 이러한 기능을 숙지하면 N8N을 더욱 효과적으로 활용할 수 있습니다.

위로 스크롤