n8n

주식 뉴스 수집봇 만들기

limshk 2026. 5. 13. 11:39

● Schedule Trigger

정의한 일정에 따라 트리거 실행.  

트리거가 매일 아침 8시에 실행되도록 설정.  


● RSS Read

RSS(Really Simple Syndication)는 웹사이트의 최신 콘텐츠를 자동으로 받아볼 수 있음.

ex. https://news.google.com/rss/search?q=검색어&hl=ko&gl=KR&ceid=KR:ko (검색어에 원하는 키워드입력)

    URL에 한글을 포함시켜 붙여넣기하면 URL인코딩되는데 그대로 사용.


● Limit

RSS로 받아온 여러 개의 콘텐츠를 제한.

콘텐츠 5개로 제한. 


● Edit Fields

받아온 콘텐츠를 원하는대로 수정. 

받아온 콘텐츠의 정보는 title, link, pubDate, content, contentSnippet... 여러가지 정보가 담겨있음.

그 중 사용자가 원하는 정보만 가져올 수 있도록 수정. (위 사진은 title, link만 가져오도록 Fields를 drag/drop)


● Aggregate

각각 개별로 지정된 콘텐츠를 하나로 합침. 

모든 콘텐츠(뉴스 5개)를 새로운 data 필드에 합침.


● Send a message

가공된 콘텐츠를 gmail로 발송. 

Credential로 발신인 지정. (우측 편집을 눌러 gmail 로그인) 

To로 수신인 지정.

Subject에 메일 제목 작성.

Message에 본문내용 작성.

└ 좌측 콘텐츠의 data 필드를 Message에 drag/drop하면 에러발생.(아래 오류 원인 AI로 요약)

1. {{ $json.data }} (오류가 발생하는 이유)

이 코드는 $json.data 안에 있는 원본 데이터(배열 또는 객체)를 있는 그대로 출력하려고 시도합니다.

  • 데이터 형태: 배열(Array) 또는 객체(Object) 형태입니다. (예: [ { title: "제목1", link: "링크1" }, { title: "제목2", link: "링크2" } ])
  • 오류 원인: 텔레그램 메시지 전송, 이메일 본문 작성, 슬랙 메시지 등 대부분의 '텍스트'를 요구하는 노드에서는 배열이나 객체 형태의 데이터를 그대로 받아들이지 못합니다. 텍스트(String)가 아닌 복잡한 데이터 구조가 들어오면 시스템이 이를 어떻게 문자로 표현해야 할지 몰라 에러를 발생시킵니다.

2. {{ $json.data.map(...).join('\n\n') }} (정상 작동하는 이유)

이 코드는 원본 데이터(배열)를 가공하여 하나의 깔끔한 '텍스트(문자열)'로 변환했기 때문에 정상적으로 작동합니다.

  • 데이터 형태: 문자열(String / Text)
  • 작동 원리: 텍스트를 요구하는 입력 칸에 완벽하게 텍스트 형태로 데이터를 전달했기 때문에 에러 없이 처리됩니다.

● 전체 Workflow

 

Execute workflow가 성공했다면 우측 상단의 publish로 발행하면 설정한 스케줄대로 메일 발송.   

 

'n8n' 카테고리의 다른 글

날씨 알리미 만들기  (0) 2026.05.18