본문 바로가기

N8N 사용법 - 워크플로우(Workflow) 및 뉴스 RSS 피드 엑셀 저장

by Tech.Knockknows 2025. 9. 4.

워크플로우(Workflow)?

워크플로우란 프로세스를 자동화 하기 위해 연결된 노드의 모음으로 여러 개의 노드(Node)를 연결해 특정 입력 → 처리 → 출력 과정을 하나의 흐름(Flow)으로 만든 것을 뜻합니다. 예를 들어, "새 이메일 수신 → 첨부파일 저장 → 알림 보내기" 같은 과정이 하나의 Workflow 입니다.

 

https://docs.n8n.io/workflows/

 

안녕하세요, 낙노즈입니다.

오늘은 N8N 워크플로우(Workflow)에 대해서 알아볼게요.

 

워크플로우는 내가 자동화하고 싶은 작업을 정의해둔 흐름입니다.

무슨 뜻이냐면 N8N으로 구성할 수 있는 자동화 작업을 예시로 들어볼게요.

 

매일 오전 9시가 되면 -> 최신 뉴스를 확인해서 -> 나에게 메신저로 보내줘

 

위 작업이 일련의 흐름이죠. 저러한 흐름을 정의한게 워크플로우예요.

그래서 작업을 정의하기 위해서 필수로 필요한게 바로 노드(Node) 죠.

 

노드(Node)?

노드는 워크플로를 만들기 위해 구성하는 개별 구성 요소로 노드는 워크플로가 실행되어야 하는 시기를 정의하고, 데이터를 가져오고, 전송하고, 처리할 수 있도록 하고, 흐름 제어 논리를 정의하고, 외부 서비스와 연결할 수 있어요. 좀더 쉬운 말로 하나의 기능을 수행하는 작은 모듈이라고 볼 수 있죠

 

위 예시로 살펴 볼게요.

 

매일 오전 9시가 되면 -> 최신 뉴스를 확인해서 -> 나에게 메신저로 보내줘

 

이 위크플로우를 노드 단위로 쪼개면 아래와 같아요.

 

매일 오전 9시가 되면 -> 오전 9시마다 시작하는 트리거 노드(Trigger Node)를 구성합니다.

최신 뉴스를 확인해서 -> 웹에 있는 온라인 뉴스를 확인하기 위해 HTTP Request Node를 구성합니다.

나에게 메신저로 보내줘 -> 메시지를 보내기 위해 사용하는 메신저의 노드를 구성합니다.

 

그래서 노드는 내가 하려는 자동화 작업의 흐름을 노드 단위로 구성하고,

이들이 연결되면 워크플로우가 되는거에요.

 

메인화면에서 우측 상단의 [ Create workflow ]를 누르거나,

N8N Create workflow

좌측 메뉴바 상단의 [ + ] 아이콘을 누른다음 [ Workflow ]를 누르면 워크플로우를 생성화면으로 이동돼요.

N8N Create workflow

아래는 워크플로우 화면이에요. Workflow Canvas라고도 불러요.

N8N Workflow Canvas

 

Workflow에 Node 추가

노드를 추가하려면 우측 상단의 [ + ] 아이콘을 선택해야해요.

N8N Workflow Add Node

 

그럼 다음과 같은 메뉴가 펼쳐져요.

빈 Workflow Cavas에서 노드를 추가하려고 하면 제일 처음에는 [ Trigger Node ]만 나타나요.

더보기

N8N에서 트리거(Trigger) 노드는 워크플로우를 자동으로 시작하게 해주는 노드예요.
즉, "언제 이 워크플로우를 실행할지"를 정하는 시작점입니다.

 

특징

  • 입력은 없고 출력만 있습니다.
  • 워크플로우가 외부 이벤트, 일정(schedule), 웹훅 요청 등에 의해 실행되도록 합니다.
  • 보통 워크플로우의 맨 앞에 위치합니다.

대표적인 트리거 노드 종류

  1. Webhook Trigger
    • 특정 URL로 요청(HTTP GET/POST 등)이 들어올 때 실행됩니다.
    • 예: 외부 시스템에서 이벤트 발생 → N8N으로 데이터 전송.
  2. Cron Trigger (스케줄러)
    • 지정된 시간 간격(매일 9시, 5분마다 등)에 맞춰 실행됩니다.
    • 주기적 작업(백업, 리포트 생성 등)에 많이 사용됩니다.
  3. App/서비스 트리거
    • Gmail, Slack, Trello, GitHub 같은 서비스에서 이벤트 발생 시 실행됩니다.
    • 예: Gmail에서 새 메일 수신 → 워크플로우 시작.

정리하면, 트리거 노드는 워크플로우의 "자동 시작 버튼" 역할을 하는 거예요.
필요에 따라 웹훅, 시간 스케줄, 특정 앱 이벤트 등을 시작 조건으로 설정할 수 있습니다.

 

N8N Node Add
트리거 노드(Trigger Node)

 

초기 트리거 노드를 추가하고 난 뒤 다시 노드를 추가하는 버튼 [ + ]를 누르면 이번에는 다른 메뉴가 나타나요.

여기서부터 실제 여러가지 기능을 수행하는 노드들을 추가할 수 있어요,

 

원하는 노드는 검색창에 노드 이름이나 원하는 기능을 검색해서 찾을 수 있어요.



 

Workflow 예시(오전 9시 -> 뉴스 RSS 피드 요청 -> 내용 저장)

위 예시를 N8N으로 구성해봤어요.

다음은 오전 9시마다 JTBC 뉴스 RSS 피드에서 속보를 가지고와서 XLSX로 저장하는 워크플로우예요.

원래는 메신저로 보내는건데 이 부분은 나중에 별도로 글을 작성해볼게요.

 

N8N Workflow Example

 

위 워크플로우는 총 5개의 노드로 구성되어있어요.

각각 노드에 대해 상세히 알아보겠습니다.

Schedule Trgger

 

Schedule Trigger 노드를 사용하여 고정된 간격과 시간에 워크플로를 실행합니다. 이것은 Unix 계열 시스템의 Cron 소프트웨어 유틸리티와 유사한 방식으로 작동합니다.

트리거 노드(Trigger Node)중 하나로 리눅스(Linux)의 크론(Cron)과 유사한 기능을 수행하는 노드에요.

내가 원하는 시점(월,주,일,시,분,초)단위로 트리거를 발동할 수 있어요.

트리거가 발동되면, 해당 노드와 연결된 후속 노드들이 실행됩니다.

 

그래서 워크플로우를 실행시키는 첫번째 지점이라고 볼 수 있어요.

아래는 스케줄 트리거 노드(Schedule Trigger Node) 설정 화면이에요.

각 설정을 통해 내가 원하는 주기, 시간에 트리거되도록 구성할 수 있답니다.

Schedule Trigger Node Configure

 

스케줄 트리거 노드에 대한 공식 문서는 아래 링크를 참고해주세요.

https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/?utm_source=n8n_app&utm_medium=node_settings_modal-credential_link&utm_campaign=n8n-nodes-base.scheduleTrigger

 

Schedule Trigger node documentation | n8n Docs

Integrations Built-in nodes Core nodes Schedule Trigger Schedule Trigger node Use the Schedule Trigger node to run workflows at fixed intervals and times. This works in a similar way to the Cron software utility in Unix-like systems. You must activate the

docs.n8n.io

 

HTTP Request

 

HTTP 요청 노드는 n8n에서 가장 다재다능한 노드 중 하나입니다. REST API를 사용하여 모든 앱 또는 서비스에서 데이터를 쿼리하기 위한 HTTP 요청을 할 수 있습니다. HTTP Request 노드를 일반 노드로 사용하거나 AI 에이전트에 연결하여 도구로 사용할 수 있습니다.

HTTP Request 노드는 이름 그대로 지정된 사이트에 요청을 보내는 기능을 하는 노드예요.

여러 기능들을 수행하지만, 이번 글에서는 간단한 사용법만 알아볼게요.

 

해당 노드를 더블 클릭하면 설정창으로 들어갈 수 있어요.

저는 이 노드로 위 예시의 작업 중 JTBC 뉴스 RSS 피드에서 속보를 가지고오는 작업을 수행할꺼에요.

 

JTBC RSS 피드 속보의 URL의 링크는 아래와 같아요.

https://news-ex.jtbc.co.kr/v1/get/rss/newsflesh

 

접속하면 아래와 같은 화면을 볼 수 있어요.

XLM 형식의 데이터를 보게됩니다.

JTBC 속보 RSS

 

위 데이터를 받아오기 위해서는 HTTP Request 설정에서 MethodGET, URL위 링크를 입력해주기만 하면 됩니다.

HTTP Rquest Node Configure

 

 HTTP Request 노드에 대한 공식 문서는 아래 링크를 참고해주세요.

https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/?utm_source=n8n_app&utm_medium=node_settings_modal-credential_link&utm_campaign=n8n-nodes-base.httpRequest

 

XML Node

 

XML 노드는 XML에서 데이터를 JSON으로 변환합니다. JSON을 다시 XML으로 변환합니다.

XML 데이터를 사용하기보다 좀더 활용하기 쉬운 JSON 데이터로 변환하는게 좋아요.

그래서 XML 노드를 사용하시면 XML을 바로 JSON 형태로 변형할 수 있어요.

더보기

📌 XML (eXtensible Markup Language)

  • 태그 기반 마크업 언어 → <태그>내용</태그> 형식
  • 트리 구조로 계층적 데이터 표현 가능
  • 속성(attribute) 사용 가능
  • 예시:
    <book id="1"> <title>XML Basics</title> <author>홍길동</author> <price currency="USD">19.99</price> </book>
  • 장점: 구조 엄격, 검증(DTD, XSD) 가능
  • 단점: 태그가 많아 무겁고 파싱 느림

📌 JSON (JavaScript Object Notation)

  • 경량 데이터 포맷 → {키: 값} 구조
  • 사람이 읽기 쉽고, 기계도 빠르게 파싱 가능
  • 다양한 언어에서 기본 지원 (예: JSON.parse, JSON.stringify)
  • 예시:
    { "book": { "id": 1, "title": "JSON Basics", "author": "홍길동", "price": { "currency": "USD", "value": 19.99 } } }
  • 장점: 가볍고 직관적, 웹/모바일 API 표준
  • 단점: 주석 불가, 스키마 표준 부족 → JSON Schema로 보완

📊 XML vs JSON 차이점

구분 XML JSON
구조 <태그>값</태그> "key": "value"
가독성 장황 간결
데이터 타입 문자열 중심 숫자, 문자열, 배열, 객체
용량/속도 무겁고 느림 가볍고 빠름
표준화 DTD/XSD JSON Schema
주석 지원 O 지원 X

그래서 해당 노드를 더블클릭해서 설정 창을 엽니다.

[ Mode ]를 'XML to JSON'으로 설정하면 XML 데이터를 JSON으로 바꾸도록 설정돼요.

그래서 실제 설정 후 적용하면 아래와 같아요.

 

좌측의 입력된 XML 데이터가 우측의 JSON으로 출력됩니다.

XML Node Configure

 

Split Out Node

 

Split Out Node 사용하여 목록을 포함하는 단일 데이터 항목을 여러 항목으로 분리합니다. 예를 들어 고객 목록과 각 고객에 대한 항목이 있도록 분할하려고 합니다.

JSON으로 변형했다면 다음으로 우리가 원하는 데이터만 JSON에서 추출해야해요.

현재 상태에서 바로 엑셀로 저장하면 이상한 형태로 생성됩니다.

 

바로 저장할 경우 아래와 같이 과도한 컬럼이 생성돼요.

JSON to XLSX 저장

 

이것을 방지하고자 RSS 뉴스 속보 피드에서 우리가 원하는 뉴스 데이터만 가지고 와야해요.

아래는 Split out 설정이에요.

 

JSON으로 변경된 JTBC RSS 피드를 살펴보면 rss 아래 channel 아래 item이 존재해요.

글 작성 기준 속보는 1개가 존재하지만, 여러개의 속보가 있을 경우 item 아래 속보들이 배열 형태로 존재해요.

그래서 우리는 이 item 필드 하위 객체들만 추출하면 정상적으로 뉴스 데이터만 가지고 올 수 있어요.

 

item 부분을 클릭한 상태에서 마우스를 드래그하며 'Fields To Split Out' 에서 마우스를 놓아줍니다.

Split Out Configure

 

 

그럼 아래와 같이 해당 값이 자동으로 채워진 걸 볼 수 있어요.

우측의 [ Execute step ]을 누르면 이전 단계 우리가 구성했던 노드들이 실행되면서 결과를 확인할 수 있어요.

Split Out Configure

 

그래서 우측의 OUTPUT을 살펴보면 아래와 같이 INPUT에 있던 많은 JSON 데이터에서 뉴스 정보만 추출된 것을 볼 수 있어요.

Split Out 결과


Split Out 노드에 대한 공식 문서는 아래 링크를 참고해주세요.

https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/

 

Convert to File

 

파일로 변환 노드를 사용하여 입력 데이터를 가져와 파일로 출력합니다. 이렇게 하면 입력 JSON 데이터가 바이너리 형식으로 변환됩니다.

Convert to File 노드는 입력된 데이터를 파일로 저장해주는 기능을 수행하는 노드예요.

그래서 Split Out Node에서 저희가 원하는 데이터만 추출했어요. 추출된 데이터를 기반으로 파일로 저장해볼게요.

 

노드를 더블 클릭하면 아래와 같은 설정 창이 나타나요.

저는 엑셀로 저장할꺼기 때문에 'Operation' 설정을 'Convert to XLSX'로 설정합니다.

그리고 대부분은 추가적인 설정이 필요없어요.

Convet to File Configure

 

[ Execute Step ]을 눌러주면 XLSX 파일이 위 이미지와 같이 생성됩니다.

[ Download ] 버튼으로 파일을 받아서 열어볼게요.

 

그럼 이전과 달리 컬럼 수가 줄어든 걸 볼 수 있어요.

그런데 현재 워크플로우에선 문제가 하나 있어요.

 

RSS 속보 피드에서 추출할 데이터가 1개일 경우, 아래와 같이 Split Out 노드에서 선택한 필드명으로 컬럼이 지정돼요

 

하지만 추출할 데이터가 여러개 일경우 아래와 같이 구분되어 나타난답니다.

 

이 부분에 대해서 추후 글로 작성해서 표준화 하는 방법에 대해 알아볼게요.

 

Convert to File 노드에 대한 공식 문서는 아래 링크를 참고해주세요.

Split Out 노드에 대한 공식 문서는 아래 링크를 참고해주세요.

https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/

 

정리

이번 글에서는 자동화 예시를 토대로 워크플로우를 만들어봤어요.

그래서 수행한 작업은 아래와 같아요.

 

  • 워크플로우 핵심: 자동화하고 싶은 흐름을 트리거→처리→출력 단계로 설계합니다.
  • 핵심 노드 복습: Schedule Trigger(시간 기반 시작), HTTP Request(API 호출), XML(→JSON 변환), Split Out(목록 분해), Convert to File(XLSX 출력).
  • 실습 흐름 요약: 매일 9시 JTBC 속보 RSS를 GET → XML→JSON 변환 → channel.item만 분리 → 엑셀(XLSX)로 저장.
  • 주의/팁: Split Out의 결과가 데이터 개수에따라 컬럼 구조가 달라질 수 있으니 필드 표준화(선택/매핑)와 후처리를 함께 설계해야해요