PromleeBlog
sitemap
aboutMe

posting thumbnail
제이슨 데이터 파싱과 페이로드 가공 - n8n 파이프라인 구축 시리즈 3편
JSON Data Parsing and Payload Processing - n8n Pipeline Building Series Part 3

📅

들어가기 전에 🔗

오늘은 이전 시간에 인터넷에서 수집한 뉴스 피드 데이터를 예쁘게 다듬어주는 데이터 가공 기술에 대해 알아보겠습니다.

우리가 갓 수집한 날것의 데이터는 컴퓨터가 읽기 편한 형태라서 사람이 메신저로 바로 읽기에는 다소 복잡하고 지저분합니다.
이번 포스팅에서는 복잡한 제이슨 데이터를 우리가 원하는 정보만 쏙쏙 뽑아내어 정제하는 과정을 단계별 노드 설정과 함께 차근차근 실습해 보겠습니다.

제이슨 데이터와 배열 알고리즘 🔗

수집된 데이터는 보통
제이슨
(JSON)이라는 형식을 띠고 있습니다.
이 형식은 데이터를 이름과 값의 쌍으로 묶어서 표현하는 아주 대중적인 규칙입니다.

뉴스 기사 목록처럼 여러 개의 데이터가 모여 있을 때는
배열
(Array)이라는 컴퓨터 알고리즘의 기초 자료구조를 사용합니다.
배열은 똑같은 크기의 서랍장들이 일렬로 길게 붙어있고 각 서랍마다 0번부터 순서대로 번호표가 붙어있는 구조를 상상해 주시면 이해하기 쉽습니다.

엔에잇엔의 파이프라인은 이 배열 서랍장에 담긴 뉴스 기사들을 1번 노드에서 2번 노드로 한 뭉치씩 순서대로 전달하며 작업을 처리하게 됩니다.

필요한 정보만 추출하기 🔗

가장 먼저 할 일은 수많은 정보 중에서 기사 제목과 링크 그리고 발행일처럼 우리에게 꼭 필요한 데이터만 걸러내는 작업입니다.

1. 실습 데이터 준비하기 🔗

우리가 사용할 실습 데이터는 엔에잇엔 공식 문서에서 제공하는 뉴스 피드 예시입니다.
이 데이터는 여러 개의 뉴스 기사들이 배열 서랍장 안에 담긴 형태로 제공되고 있습니다.

각 기사마다 제목(title), 링크(link), 발행일(pubDate) 그리고 기타 여러 가지 정보들이 함께 들어있지만 우리는 그중에서 제목과 링크 그리고 발행일만 필요합니다.
실습 데이터 예시
[
  {
    "title": "<h1>예시입니다</h1>",
    "link": "https://promleeblog.com",
    "pubDate": "2026-02-21",
    "author": "홍길동",
    "content": "이것은 엔에잇엔 공식 문서에서 제공하는 뉴스 피드 예시 데이터입니다."
  },
  {
    "title": "엔에잇엔 1.0 출시",
    "link": "https://n8n.io/blog/n8n-1-0-release",
    "pubDate": "2026-02-22",
    "author": "김철수",
    "content": "엔에잇엔 1.0 버전이 공식적으로 출시되었습니다. 많은 관심 부탁드립니다!"
  },
  {
    "title": "엔에잇엔 2.0 출시",
    "link": "https://n8n.io/blog/n8n-2-0-release",
    "pubDate": "2026-02-23",
    "author": "이영희",
    "content": "엔에잇엔 2.0 버전이 공식적으로 출시되었습니다. 많은 관심 부탁드립니다!"
  }
]
워크플로우 생성 후 + 버튼을 눌러 'Manual trigger' 노드를 추가하고 위의 JSON 데이터를 입력하여 output을 만들어줍니다.
Manual trigger 노드 추가(테스트 데이터)
Manual trigger 노드 추가(테스트 데이터)

2. 필드 편집 노드 활용 🔗

화면 왼쪽의 검색창에서
필드 편집
(Edit Fields) 노드를 찾아 위에서 만든 Manual trigger 노드와 연결합니다.
이 노드는 과거 버전에서
(Set) 노드라고 불렸던 아주 강력한 데이터 변환 도구입니다.
Edit Fields 노드 추가
Edit Fields 노드 추가

설정 창을 열고 설정할 필드(Fields to Set) 옵션에 우리가 필요한 속성들을 추가해줍니다.
이렇게 설정하면 복잡했던 원본 데이터에서 제목(title)과 링크(link) 그리고 발행일(pubDate) 속성만 깔끔하게 남고 불필요한 정보는 모두 삭제됩니다.
value 항목은 그대로 $json.title, $json.link, $json.pubDate로 지정해 주시면 됩니다.
좌측의 필드를 드래그앤 드롭하여 연결하면 편하게 설정할 수 있습니다.
Fields to Set 항목 추가
Fields to Set 항목 추가

날짜와 시간 형식 변환 🔗

인터넷에서 가져온 기사의 발행일은 보통 컴퓨터 국제 표준 시간 표기법인 아이에스오(ISO 8601) 형태로 작성되어 있습니다.
이것을 한국 표준시(KST)로 바꾸고 우리가 읽기 편한 연월일 형식으로 예쁘게 변환해 보겠습니다.

3. 날짜와 시간 노드 적용하기 🔗

날짜와 시간
(Date & Time) 노드를 추가하고 앞서 작업한 노드와 선으로 연결해 줍니다.
Date & Time 노드 추가
Date & Time 노드 추가
Actions 항목에서
날짜 변환
(Format a Date) 작업을 선택해 줍니다.
노드 설정 창에서 변환할 대상 필드를 발행일(pubDate)로 지정해 줍니다.

그리고 Format을
Custom Format
으로 맞춘 뒤 출력 형식을 아래 코드의 내용처럼 지정해 줍니다.
추가로 아래 Options에서
Use Workflow Timezone
옵션을 켜서 한국 표준시(KST)로 변환되도록 설정해 줍니다.
날짜 형식 표현식 예시
yyyy년 MM월 dd일
이렇게 설정하면 복잡한 영문자와 숫자가 어지럽게 섞여 있던 시간이 '2026년 02월 21일'처럼 아주 보기 좋게 바뀝니다.
연월일 포맷으로 깔끔하게 변환된 데이터
연월일 포맷으로 깔끔하게 변환된 데이터

정규표현식을 이용한 문자열 정제 🔗

기사 제목이나 본문 데이터에는 줄바꿈 기호나 불필요한 에이치티엠엘(HTML) 태그들이 지저분하게 섞여 있는 경우가 많습니다.
이를 깔끔하게 청소하기 위해
정규표현식
(Regex)이라는 강력한 문자열 검색 알고리즘을 사용합니다.

문자열 치환 코드 작성 🔗

이번에는 노코드 블록 대신 간단한 자바스크립트 코드를 직접 실행할 수 있는
코드
(Code) 노드를 꺼내어 연결해 줍니다.
코드 노드 추가
코드 노드 추가
그리고 아래의 코드를 입력하여 지저분한 태그와 공백을 깨끗하게 정리해 줍니다.
데이터 정제 자바스크립트 코드
// 배열 서랍장에 담긴 모든 뉴스 기사를 하나씩 꺼내어 반복해서 검사합니다.
for (const item of $input.all()) {
  // 제목 데이터가 비어있지 않다면 정규표현식을 사용해 정리 작업을 시작합니다.
  if (item.json.title) {
    // 불필요한 에이치티엠엘(HTML) 태그를 모두 지워버리는 강력한 정규표현식 규칙입니다.
    let cleanTitle = item.json.title.replace(/<[^>]*>?/gm, '');
    
    // 문자열의 앞뒤에 남은 쓸데없는 여백 공간을 말끔히 잘라냅니다.
    item.json.title = cleanTitle.trim();
  }
}
 
// 청소가 끝난 깔끔한 데이터를 다음 노드로 무사히 전달합니다.
return $input.all();
데이터 정제 완료
데이터 정제 완료

서로 다른 노드의 데이터 병합하기 🔗

현재 데이터는 날짜와 제목/링크가 각각 다른 노드에 흩어져 있는 상태입니다.
이제 이 조각난 데이터들을 하나로 쭉 이어 붙여서 메신저로 발송할 수 있는 완벽한 페이로드 형태로 만들어 보겠습니다.

Merge 노드 활용하기 🔗

병합
(Merge) 노드를 추가하고 앞서 작업한 노드들과 연결해 줍니다.
Merge 노드 추가
Merge 노드 추가
Merge 노드는 여러 개의 데이터 흐름을 하나로 합쳐주는 역할을 합니다.

설정 창에서 Merge Mode를
Combine - Combined By Position
으로 맞춰 주면 각 노드에서 나온 데이터가 순서대로 하나의 덩어리로 병합됩니다.

결론 🔗

오늘은 흩어져 있던 복잡한 제이슨 데이터를 모아 배열 알고리즘으로 안전하게 처리하고 정규표현식을 이용해 불필요한 불순물을 걸러내는 과정을 실습해 보았습니다.
처음에는 데이터 가공 규칙이 조금 낯설고 까다롭게 느껴지실 수 있지만 원리만 잘 이해하면 코딩 없이도 자유자재로 데이터를 주무를 수 있게 됩니다.

다음 4편에서는 이렇게 예쁘게 정제된 하나의 텍스트 메시지를 텔레그램과 슬랙 봇을 통해 우리의 스마트폰으로 직접 전송해 보는 재미있는 메신저 연동 과정을 진행해 보겠습니다.

참고 🔗