시작하게 된 이유
요즘 인프런에서 진행 중인 n8n 챌린지에 참여하고 있는데요!
이번 챕터의 미션이 "Google News RSS로 뉴스 메일링 만들기"였는데, 기본 미션만 따라 해도 충분히 재미있지만 이왕 하는 김에 심화 미션까지 같이 풀어보기로 했습니다.
심화 미션은 이런 내용이었어요.
- 관심 키워드로 RSS URL 커스텀하기
- Gmail 말고 Slack / Discord / Telegram 같은 다른 채널 붙이기
- 여러 RSS를 Merge로 합쳐 하나의 다이제스트 만들기
- 매일 1회가 아닌 다른 스케줄로 바꿔보기
그래서 평소에 챙겨 보던 세 가지 키워드 — 미국 금리 · AI · 반도체 — 로 RSS를 묶고, Gmail과 Discord 두 채널로 동시에 받도록 만들었어요. 스케줄도 평일 오전 8시로 바꿔서, 출근길에 자연스럽게 훑어볼 수 있게 했습니다.
생각해보면 매일 아침마다 같은 키워드로 검색하면서 시간 흘려보내던 게 늘 아쉬웠거든요. 이번 미션 덕분에 그 불편을 자동화로 해결할 수 있어서 좋았어요. 😊
오늘은 그 과정을 천천히 공유해보겠습니다!
n8n, 처음이라면
n8n은 노드를 끌어다 연결해서 자동화를 만드는 워크플로우 도구예요. Zapier나 Make와 비슷한데, 셀프호스팅이 가능하고 오픈소스라는 점이 매력적입니다. API 호출, 데이터 변환, 분기 처리 같은 걸 코드 한 줄 없이 (또는 약간의 JavaScript로) 만들 수 있어요!
워크플로우 한눈에 보기
전체 흐름은 이렇습니다.

핵심 노드 살펴보기
1. Schedule Trigger — 평일 아침 8시 시작
평일(월~금) 오전 8시에 워크플로우가 자동으로 돌도록 설정했어요. 주말에는 뉴스 흐름도 잠잠하고, 출퇴근에 볼 목적이라서 쉬어가기로 결정했습니다!
2. RSS Feed Read — 구글 뉴스에서 가져오기
구글 뉴스는 RSS 피드 URL만 잘 만들면 어떤 키워드든 검색 결과를 받을 수 있어요. 예를 들어 "미국 금리"라는 키워드라면 이렇게 됩니다.
https://news.google.com/rss/search?q=미국+금리&hl=ko&gl=KR&ceid=KR:ko
이 워크플로우에서는 세 가지 RSS를 병렬로 읽어옵니다. 순차로 읽지 않고 동시에 가져오는 게 핵심이에요. 어차피 서로 의존하지 않으니까 병렬로 처리하면 실행 시간이 확 줄어듭니다.
3. Limit — 뉴스 각각 2개씩만 가져오기
각 카테고리당 최신 2개씩만 가져옵니다. 욕심내서 10개씩 보면 결국 안 읽게 되더라고요. 아침에 부담 없이 훑어볼 만한 양으로 제한하는 게 오래 쓸 수 있을 것 같아요!
4. Merge — 세 갈래를 하나로
병렬로 처리된 세 개의 스트림을 하나로 합쳐줍니다. n8n의 Merge 노드는 입력 인덱스(0, 1, 2)별로 데이터를 받아서 합치는데, 이 순서가 그대로 결과의 순서가 돼요. 그래서 뒤에서 slice(0, 2), slice(2, 4), slice(4, 6)으로 카테고리별로 잘라 쓸 수 있는 거죠.
5. Edit Fields & Aggregate — 필요한 것만 깔끔하게
RSS는 여러 필드를 다 주는데, 저는 제목과 링크만 뽑아서 볼 수 있게 세팅했습니다.
Edit Fields 노드로 두 개 필드만 추리고, Aggregate 노드로 전체를 하나의 배열로 묶어줍니다.
그래야 뒷단에서 메일/디스코드 메시지를 만들 때 $json.data로 한 번에 접근할 수 있어요.
6. Gmail + Discord — 두 채널로 동시에
Aggregate 결과가 Gmail과 Discord로 동시에 전송됩니다.
기본 미션이 메일이었는데, 심화 미션으로 디스코드 채널로도 볼 수 있게 추가해뒀습니다.
초기 버전이 가독성이 좋지 못해서 Gmail은 HTML 템플릿으로 카드 형태처럼 예쁘게 꾸미고, Discord는 마크다운 문법으로 가볍게 보냅니다. 채널에 맞는 포맷을 쓰는 게 포인트예요!


만들면서 느낀 점
- 자동화는 작게 시작하는 게 좋아요. 처음부터 욕심을 부리면 완성을 못 했을 거예요. 기본 미션으로 "메일로 받기"까지 먼저 만들고, 잘 돌아가는 걸 확인한 다음 심화 미션으로 살을 붙이니까 훨씬 수월했습니다.
- 병렬 처리를 잘 활용하면 같은 작업도 빨라집니다. 이 워크플로우는 3개 RSS를 동시에 가져오기 때문에 가장 느린 한 개의 시간만 기다리면 돼요.
- 데이터 모양을 단순하게 만들어두면 뒷단이 편해요. Edit Fields와 Aggregate로 깔끔하게 정리해둔 덕분에 메일/디스코드 템플릿이 짧고 읽기 쉬워졌습니다.
마치며
작은 자동화 하나 해놓으니까 뉴스를 더 자주 보게 되더라구요!!ㅎㅎ
여러분도 매일 반복되는 작은 루틴이 있다면, n8n으로 한 번 자동화해보시는 걸 추천드려요. 만드는 재미가 꽤 쏠쏠하답니당? ☕
읽어주셔서 감사합니다!!