소개
일본 화장품 회사의 최신 뉴스를 누구보다 빠르게 확인하고 싶었어요. 특히 일본어 웹사이트는 영어 버전보다 더 자주, 더 빠르게 업데이트되지만, RSS 피드가 없는 경우도 많고 수동으로 찾아보기에는 번거로움이 컸습니다.
그래서 n8n을 이용해 자동화된 뉴스 수집 흐름을 만들고, 간단한 요약 및 번역은 Google Gemini API를 활용했어요. 아직까지는 API 사용이 무료라는 점도 선택에 한몫했죠 😄
RSS 피드가 있든 없든 모두 처리할 수 있도록 설계한 것이 포인트예요
진행 방법
🛠 사용한 도구들
n8n: 전체 워크플로우 자동화
HTTP Request + HTML Extract: RSS 없는 웹사이트 뉴스 크롤링
RSS Read: 피드 기반 기사 수집
Google Gemini 기반 ChatGPT: 기사 요약
Gmail: 요약 내용을 메일로 발송
🔁 자동화 워크플로우
아래는 전체 흐름을 시각적으로 보여주는 n8n 워크플로우입니다.
클릭하면 시작하도록 설정하였습니다.
(만약 클라우드에서 n8n 사용하시면, 스케쥴 설정해서 자동으로 돌리면 될 것 같아요.)
앞부분 좀 더 세부적으로 설명드리면,
1️⃣ RSS 피드 기반 뉴스 수집 (로토 제약)
RSS Read
: 로토 제약의 공식 뉴스 RSS를 읽어 뉴스 항목 수집Code
: 각 뉴스 항목의 제목, 날짜, 요약을 정리하여 JSON 형태로 가공AI Agent
: Google Gemini API를 통해 요약 + 번역 처리Code3
: 번역 결과를 HTML 이메일 콘텐츠로 가공
2️⃣ RSS 없는 사이트 뉴스 수집 (시세이도)
HTTP Request3
: 시세이도 일본어 뉴스 목록 페이지 요청HTML2
: 뉴스 링크 리스트 추출Code4
: 상대경로를 절대경로로 바꿔 뉴스 상세 URL 생성HTTP Request6
: 각 뉴스 상세 페이지 HTML 요청HTML3
: 기사 본문, 날짜, 제목 등 추출Code5
: JSON 구조 정제AI Agent1
: 각 뉴스 요약 + 번역 처리 (Gemini 기반)Code6
: 번역된 뉴스들을 HTML 이메일 형태로 가공
🔀 뉴스 통합 및 메일 전송
Merge
: 두 경로의 결과를 통합Gmail
: 지정된 메일 주소로 뉴스 클리핑 전송
전체적으로 Gemini API는 단순 번역 + 요약 및 자연스러운 문장 생성 역할로 활용
💬 사용된 프롬프트
다음 일본어 텍스트를 한국어로 번역하십시오. 입력 데이터는 배열 형태로 제공되며, 각 항목에 대해 아래 필드를 번역합니다:
- 링크: {{ $input.item.json.link }}
- 제목: {{ $input.item.json.title }}
- 날짜: {{ $input.item.json.pubDate }}
- 본문 요약: {{ $input.item.json.contentSnippet }}
번역된 결과는 각 항목마다 다음json 형식으로 반환하십시오:
{
"Link": "<원본 링크 유지>",
"Title": "<번역된 제목>",
"Date": "<번역된 날짜>",
"Content": "<번역된 본문 요약>"
}
입력 데이터가 배열이므로, 모든 항목을 순차적으로 처리하여 번역된 결과 배열을 반환하십시오.
결과와 배운 점
✅ 실제 기사 vs RSS 피드 비교 결과, RSS만으로는 최신 소식이 빠지는 경우가 많았어요.
: 추후 RSS 피드 보다는 직접 크롤링 하는 방향으로 변경 예정.
✅ 일본 사이트는 영어 사이트보다 업데이트 속도가 빠르고 내용도 훨씬 풍부!
✅ AI 요약 품질은 적절한 프롬프트와 모델 설정으로 꽤 높은 수준 가능