Spark
🗡️ AI 레전드
🏡 내집마련 찐친

로컬 n8n에 OAuth API 설정 후 뉴스레터 자동화 (1부)

소개

지난 스터디 발표 때, 청강생 사례 발표 선물로 멍멍(스터디장)님께 로컬 n8n 계정을 선물 받았습니다 🐶🎁

이전 스터디에서는 Google Cloud Platform(GCP) OAuth 설정에서 막혀 실습을 중단했던 아쉬움이 있었는데요, 이번에는 브루스올마이티님의 GCP API 가이드를 참고하여 성공적으로 인증을 마치고 다시 뉴스레터 자동화에 도전하게 되었습니다 💪

목표는 간단했습니다. “BIM” 키워드로 매일 아침 최신 뉴스들을 모아 요약하고, 이메일로 자동 발송하기!

진행 방법

✅ OAuth 인증 및 GCP 연동

  • 브루스올마이티님의 가이드에 따라 GCP OAuth 설정 진행

https://www.notion.so/GCC-API-20d31dc652718035b2cbfd1074812efa

  • n8n Credential 탭에서 OAuth2 API 구성 성공 🎉

한국어 텍스트가있는 앱의 스크린 샷

🧠 자동화 워크플로우 구성

소셜 네트워크의 다른 부분을 보여주는 다이어그램

  1. 스케줄 트리거 노드

    • 매일 오전 9시에 자동 실행되도록 설정

  2. RSS Feed Read 노드

    • Google 뉴스 RSS를 이용해 "BIM" 키워드 뉴스 검색

    • 기본 100개 결과에서 최신순으로 정렬하기 위해 다음 노드 추가:

  3. Sort + Limit 노드

    • Sort: 게시 시간 기준 내림차순 정렬

    • Limit: 최신 10개 뉴스만 추출

  4. Basic LLM Chain 노드

    • Gemini API(무료), ChatGPT API(유료)를 번갈아 연결하며 테스트

    • 각 뉴스 콘텐츠 요약문 생성

  5. HTML 노드

    • 개별 요약 결과를 하나의 문서로 병합

    • 요약된 기사들을 HTML 형식 문서로 정리

  6. Code 노드

    • 불필요한 <th>text</th> 태그 제거 (자동 생성된 text 문자열 제거)

    한국 뉴스 웹 사이트의 스크린 샷
    // HTML 노드에서 온 table 문자열 가져오기
    const tableHtml = $input.first().json.table;
    
    // '<th>text</th>'를 제거
    const cleaned = tableHtml.replace('<th>text</th>', '');
    
    // 결과 반환
    return [
      {
        json: {
          table: cleaned
        }
      }
    ];
  7. Gmail Send a message 노드

    • 메일 제목/본문 포함하여 정리된 뉴스 요약 HTML을 발송 ✉️

    • 제목에 일시 표기방식 변경, 대한민국 표준시 적용

💻 사용 도구

  • n8n (로컬 인스턴스)

  • GCP + OAuth 인증

  • Gemini API, ChatGPT API

  • 여러 노드들: Sort, Limit, Aggregate, HTML, Code, Gmail 등

결과와 배운 점

🎯 성공적으로 동작하는 자동 뉴스레터 시스템 완성!

  • 매일 아침 9시에 “BIM 관련 뉴스 요약” 메일이 자동 발송됨

게시물 목록을 보여주는 WordPress 페이지의 스크린 샷

📚 배운 점

  • OAuth 설정을 통해 GCP 구성을 좀 더 많이 이해하게 됨

  • n8n의 다양한 노드 기능을 하나씩 조합하며 실전 감각 익힘

  • 특히 Aggregate, Set, Edit Fields 노드의 쓰임새를 직접 겪어보며 익힘

무엇보다도, "직접 삽질하며 해보는 것만큼 좋은 교재는 없다"는 걸 또다시 느꼈습니다 😅

도움 주신 분

  • n8n 로컬 계정을 "하사"하신 멍멍님~!

  • GCP OAuth 설정 가이드를 제공해주신 "친절"한 브루스올마이티님 🙇‍♂️

  • AI 부동산 뉴스레터를 보내주신 "고마운" 케빈님~! (뉴스 폼 만드는데 양식 참고했습니다 ㅎ)

👉 이 사례와 이어지는 2부 사례도 준비되어 있습니다! 다음 글 보러가기 🔗

2
3개의 답글

👉 이 게시글도 읽어보세요