n8n 기반, 뉴스 수집 및 AI 자동화 파이프라인 구축 가이드

n8n 기반,  뉴스 수집 및 AI 자동화 파이프라인 구축 가이드

앞서 파이썬 코드로 구현했던 '키워드 수집 → 뉴스 검색 → 본문 추출 → AI 요약' 프로세스는 코드를 계속 유지보수하고 서버를 관리해야 하는 번거로움이 있습니다. n8n을 활용하면 복잡한 파이썬 코드를 최소화하고, 각 단계를 시각적인 노드(Node)로 연결하여 강력한 자동화 워크플로우를 구축할 수 있습니다.


마케팅톡.kr 독자 분들이 이 글을 통해 개발 서버 없이도 매일 자동으로 트렌드 뉴스를 수집하고 콘텐츠를 생산하는 자동화 시스템을 완전히 구축할 수 있도록 핵심 절차를 상세히 안내해 드립니다.

1. 전체 워크플로우 아키텍처 및 준비 사항

n8n에서 구현할 자동화 파이프라인은 다음과 같은 흐름으로 연결됩니다. 파이썬의 for문과 requests 모듈이 했던 역할을 n8n의 기본 노드들이 대신하게 됩니다.

사전 준비 사항::

  • n8n 환경: n8n Cloud 계정 또는 로컬/서버에 설치된 n8n 대시보드

  • 네이버 개발자 센터: Search API 이용을 위한 Client IDClient Secret

  • OpenAI API Key: 수집된 본문을 요약하고 블로그 글로 재구성하기 위한 API 키

2. n8n 노드별 상세 구축 절차

단계 1: 일정 시간마다 실행하기 (Schedule Trigger 노드)

자동화 공장이 매일 정해진 시간에 스스로 작동하도록 시작점을 만듭니다.

  1. n8n 캔버스에서 Schedule Trigger 노드를 추가합니다.

  2. Trigger IntervalDaily 또는 Every Hour 등 원하는 주기로 설정합니다 (예: 매일 오전 8시).

단계 2: 구글 트렌드 RSS 키워드 수집 (HTTP Request 노드)

파이썬의 BeautifulSoup 대신 n8n의 HTTP 요청 노드로 RSS 피드를 가져옵니다.

  1. HTTP Request 노드를 추가하고 아래와 같이 설정합니다.

    • Method: GET

    • URL: https://trends.google.com/trends/trendingsearches/daily/rss?geo=KR

    • Response Format: Text (RSS는 XML 형식이므로 우선 텍스트로 받습니다)

  2. 바로 뒤에 XML 노드를 추가하여 방금 가져온 텍스트 데이터를 n8n이 인식할 수 있는 JSON 객체로 파싱합니다.

  3. Item Lists 노드를 추가하여 RSS의 <item> 태그 내에 있는 급상승 검색어(title)만 상위 5개로 슬라이싱(Split Out)합니다.

단계 3: 네이버 뉴스 검색 API 연동 (HTTP Request 노드)

수집된 키워드를 기반으로 네이버 뉴스를 검색합니다. 이 단계부터는 n8n이 루프(Loop)를 돌며 각 키워드별로 검색을 수행합니다.

  1. 새로운 HTTP Request 노드를 추가합니다.

  2. URL 설정에 이전 노드의 키워드 동적 변수(Expression)를 주입합니다:

    Plaintext
    https://openapi.naver.com/v1/search/news.json?query={{ $json.title }}&display=3&sort=sim
    
  3. Authentication 섹션에서 헤더(Headers)를 추가합니다:

    • X-Naver-Client-Id: 여러분의 네이버 클라이언트 ID

    • X-Naver-Client-Secret: 여러분의 네이버 클라이언트 시크릿

  4. 결과 값으로 나오는 뉴스 아이템 목록을 다시 Item Lists 노드를 활용해 개별 뉴스 링크 단위로 쪼개줍니다.

단계 4: 뉴스 본문 크롤링 (HTTP Request & HTML 노드)

뉴스 원문 링크(Link)에 접속하여 본문 텍스트를 추출하는 핵심 구간입니다.

  1. HTTP Request 노드를 추가하고 URL{{ $json.link }}를 입력합니다.

  2. HeadersUser-Agent: Mozilla/5.0 ...을 입력하여 크롤링 차단을 방지합니다.

  3. 요청 결과로 받은 HTML을 파싱하기 위해 HTML 노드를 연결합니다.

    • Action: Extract Element Values

    • Extraction Values: 일반적인 뉴스 본문 영역을 지정해야 합니다. 네이버 뉴스 원문 레이아웃을 타겟팅할 경우 CSS Selector#dic_area 또는 #articleBodyContents, 일반 웹사이트의 경우 article을 입력합니다.

    • Return Value: Text

단계 5: OpenAI GPT를 통한 콘텐츠 재구성 (OpenAI 노드)

크롤링한 본문 그대로를 사용하면 저작권 문제가 발생하므로, AI를 통해 완벽히 새로운 문서로 변환합니다.

  1. OpenAI 노드를 추가하고 ResourceChat, OperationConverse로 설정합니다.

  2. Modelgpt-4o 또는 생성 비용이 저렴한 모델을 선택합니다.

  3. Prompt 구성에 수집된 뉴스 본문 변수를 넣고 페르소나를 부여합니다:

    System Prompt: "너는 IT 및 비즈니스 전문 블로거야. 입력된 뉴스 본문을 바탕으로 독자에게 유익한 정보성 블로그 글을 작성해줘." 

    User Prompt: "뉴스 본문: {{ $json.extracted_text }}\n\n위 내용을 바탕으로 친근한 어조의 블로그 글을 작성하고 관련 태그 5개를 추가해줘."

단계 6: 데이터 저장 및 자동 발행 (구글 시트 또는 워드프레스 노드)

최종 완성된 원고를 사람이 검수하거나 자동으로 발행할 수 있도록 저장합니다.

  1. Google Sheets 노드를 추가하여 Append 모드로 설정한 뒤, 키워드, 뉴스 링크, AI가 작성한 본문을 열에 맞춰 차곡차곡 누적합니다.

  2. (선택 사항) 검수 없이 바로 발행하고 싶다면 WordPress 노드나 Ghost 노드를 연결하여 즉시 임시글로 등록되도록 세팅할 수 있습니다.

3. n8n 구축 시 필수 고려사항 및 팁

  • 에러 핸들링 (Error Trigger): 특정 뉴스 사이트는 크롤링을 강하게 차단하여 HTTP Request 노드가 실패할 수 있습니다. 노드 설정 내 Node Settings → On Error 옵션을 Continue Regular Workflow로 변경하여, 하나의 뉴스 추출이 실패해도 전체 프로세스가 멈추지 않고 다음 뉴스로 넘어가도록 조치해야 합니다.

  • 데이터 가공용 코드 스니펫 (Code 노드): 네이버 API 결과값에 포함된 태그(<b>, </b>)나 특수문자를 정제하고 싶을 때는, 중간에 Code 노드(JavaScript/Python 선택 가능)를 추가하여 간단한 정규식 스크립트를 실행해 주는 것이 좋습니다.

    JavaScript
    // n8n Code 노드 (JavaScript 예시) - HTML 태그 제거
    for (const item of $input.all()) {
      item.json.title = item.json.title.replace(/<\/?[^>]+(>|$)/g, "");
    }
    return $input.all();
    

결론 및 뉴스레터 구독 안내

n8n을 활용한 자동화 파이프라인 구축은 초기 세팅만 완료해 두면 매일 알아서 트렌드를 분석하고 글감 소재를 발굴하는 최고의 비즈니스 레버리지가 됩니다. 코딩에 대한 부담은 줄이면서도 시스템의 안정성은 극대화할 수 있는 n8n의 매력을 여러분의 업무에 직접 적용해 보세요.

💡 비즈니스 자동화와 SEO 최적화 노하우를 가장 빠르게 받는 방법! 매주 실무에 바로 적용할 수 있는 n8n 워크플로우 템플릿과 AI 프롬프트 엔지니어링 팁을 전해드립니다. 지금 메일침프 뉴스레터를 구독하고 디지털 자동화 공장을 구축하는 전문가로 성장해 보세요!

🔗 함께 읽으면 좋은 글


처음으로