μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

πŸš€ n8n으둜 RSS λ‰΄μŠ€ μžλ™ μˆ˜μ§‘, AI 가곡 ν›„ μ›Œλ“œν”„λ ˆμŠ€ μžλ™ ν¬μŠ€νŒ…ν•˜λŠ” μ™„λ²½ κ°€μ΄λ“œ


μ•ˆλ…•ν•˜μ„Έμš”! λΈ”λ‘œκ·Έ μš΄μ˜μ„ μžλ™ν™”ν•˜κ³  싢은 λͺ¨λ“  뢄듀을 μœ„ν•œ κΏ€νŒμ„ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€. λ°˜λ³΅λ˜λŠ” λ‰΄μŠ€ μˆ˜μ§‘κ³Ό κΈ€μ“°κΈ°, ν¬μŠ€νŒ… μž‘μ—…μ„ n8n μ›Œν¬ν”Œλ‘œμš° ν•˜λ‚˜λ‘œ λͺ¨λ‘ μžλ™ν™”ν•˜λŠ” 방법을 μ•Œλ €λ“œλ¦΄κ²Œμš”.

이 νŠœν† λ¦¬μ–Όμ—μ„œλŠ” νŠΉμ • RSS ν”Όλ“œμ—μ„œ μ΅œμ‹  λ‰΄μŠ€λ₯Ό 가져와, Gemini AI λͺ¨λΈμ΄ μž¬λ―ΈμžˆλŠ” ν† λ‘  ν˜•μ‹μ˜ μ½˜ν…μΈ λ‘œ κ°€κ³΅ν•˜κ³ , μ΅œμ’…μ μœΌλ‘œ μ›Œλ“œν”„λ ˆμŠ€ λΈ”λ‘œκ·Έμ— μžλ™μœΌλ‘œ κ²Œμ‹œν•˜λŠ” 과정을 λ‹¨κ³„λ³„λ‘œ μžμ„Ένžˆ μ„€λͺ…ν•΄ λ“œλ¦½λ‹ˆλ‹€.

1. μ›Œν¬ν”Œλ‘œμš° 전체 ꡬ쑰 μ΄ν•΄ν•˜κΈ°

이번 μ›Œν¬ν”Œλ‘œμš°λŠ” 총 5λ‹¨κ³„λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€. λ‰΄μŠ€κ°€ λ°œν–‰λ  λ•Œλ§ˆλ‹€ μžλ™μœΌλ‘œ λ‹€μŒ 단계λ₯Ό 거치게 λ©λ‹ˆλ‹€.

  1. RSS Feed Trigger: μ„€μ •ν•œ 주기둜 μƒˆ λ‰΄μŠ€ 확인 및 μ›Œν¬ν”Œλ‘œμš° μ‹œμž‘.
  2. HTTP Request: λ‰΄μŠ€ 링크둜 접속해 기사 λ³Έλ¬Έ 전체λ₯Ό κ°€μ Έμ˜΄.
  3. Message a model (AI): κ°€μ Έμ˜¨ 기사λ₯Ό μ§€μ •λœ ν˜•μ‹(ν† λ‘  ν˜•μ‹, 주식/전망 포함)으둜 가곡.
  4. Edit Fields: AIκ°€ λ§Œλ“  κ²°κ³Όλ¬Όμ—μ„œ 제λͺ©, λ³Έλ¬Έ, 링크λ₯Ό μΆ”μΆœν•˜κ³  정리.
  5. Create a post (WordPress): μ •λ¦¬λœ μ½˜ν…μΈ λ₯Ό μ›Œλ“œν”„λ ˆμŠ€μ— μžλ™ λ°œν–‰.

2. 단계별 λ…Έλ“œ μ„€μ • 상세 κ°€μ΄λ“œ

각 λ…Έλ“œλ³„λ‘œ μ–΄λ–»κ²Œ μ„€μ •ν•΄μ•Ό ν•˜λŠ”μ§€ μžμ„Ένžˆ μ•Œμ•„λ΄…μ‹œλ‹€.

1단계: RSS Feed Trigger (μ‹œμž‘ λ…Έλ“œ μ„€μ •)

  • μ—­ν• : μ›Œν¬ν”Œλ‘œμš°λ₯Ό 주기적으둜 μ‹€ν–‰μ‹œν‚€λŠ” μ‹œμž‘μ μž…λ‹ˆλ‹€. μ„€μ •ν•œ RSS μ£Όμ†Œμ—μ„œ μƒˆλ‘œμš΄ ν•­λͺ©μ΄ 생길 λ•Œλ§Œ λ‹€μŒ λ…Έλ“œλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
  • λ…Έλ“œ 이름: RSS Feed Trigger
  • μ„€μ • λ‚΄μš©:
    • Poll Times: X 간격 λͺ¨λ“œ (Every X mode)λ₯Ό μ„ νƒν•˜μ„Έμš”.
      • Value: 17
      • Unit: minutes (17λΆ„λ§ˆλ‹€ μƒˆ λ‰΄μŠ€λ₯Ό ν™•μΈν•˜λ„λ‘ μ„€μ •ν•©λ‹ˆλ‹€.)
    • Feed URL: λ‰΄μŠ€λ₯Ό κ°€μ Έμ˜¬ RSS ν”Όλ“œ μ£Όμ†Œλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€. (예: https://www.mk.co.kr/rss/30100041/)

2단계: HTTP Request (기사 λ³Έλ¬Έ 크둀링)

  • μ—­ν• : RSS ν”Όλ“œμ—μ„œ κ°€μ Έμ˜¨ λ‹¨μˆœν•œ 제λͺ©/μš”μ•½ 정보 λŒ€μ‹ , κΈ°μ‚¬μ˜ μ‹€μ œ λ³Έλ¬Έ λ‚΄μš© 전체λ₯Ό ν¬λ‘€λ§ν•˜μ—¬ κ°€μ Έμ˜΅λ‹ˆλ‹€. Diffbot 을 μ΄μš©ν–ˆκ³  사전에 diffbot.com에 νšŒμ›κ°€μž…ν•΄μ„œ api ν‚€λ₯Ό λ°›μ•„μ•Ό ν•©λ‹ˆλ‹€.
  • λ…Έλ“œ 이름: HTTP Request1
  • μ„€μ • λ‚΄μš©:
    • URL: https://api.diffbot.com/v3/article (μ‚¬μš©ν•˜λŠ” Article API μ£Όμ†Œ)
    • Query Parameters (쿼리 λ§€κ°œλ³€μˆ˜):
      • token: API ν‚€λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.
      • url: μ•ž λ…Έλ“œ(RSS)μ—μ„œ κ°€μ Έμ˜¨ 기사 링크λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.
        • κ°’: ={{ $json.link }} (ν‘œν˜„μ‹(Expression)을 μ‚¬μš©ν•˜μ—¬ λ™μ μœΌλ‘œ 링크 μ£Όμ†Œλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.)

3단계: Message a model (AI μ½˜ν…μΈ  생성 및 가곡)

  • μ—­ν• : 기사 원문을 λ°”νƒ•μœΌλ‘œ, IT 에디터 μ—­ν• μ˜ Gemini λͺ¨λΈμ΄ μš”μ²­ν•œ ν˜•μ‹λŒ€λ‘œ μ½˜ν…μΈ λ₯Ό μ°½μž‘ν•˜κ³  κ°€κ³΅ν•©λ‹ˆλ‹€.
  • λ…Έλ“œ 이름: Message a model
  • μ„€μ • λ‚΄μš©:
    • Credentials: 미리 λ“±λ‘ν•œ Google Gemini(PaLM) API 인증 정보λ₯Ό μ—°κ²°ν•©λ‹ˆλ‹€.
    • Model ID: models/gemini-2.5-flash-lite (μ‚¬μš©ν•˜λ €λŠ” AI λͺ¨λΈ 선택)
    • Messages (ν”„λ‘¬ν”„νŠΈ): AIμ—κ²Œ 쀄 ꡬ체적인 μ§€μ‹œμ‚¬ν•­μ„ μž…λ ₯ν•©λ‹ˆλ‹€.
      • System Prompt: AI의 μ—­ν• (IT λ‰΄μŠ€ μ „λ¬Έ 에디터), μ›ν•˜λŠ” 좜λ ₯ ν˜•μ‹(ν† λ‘  ν˜•μ‹, μ‰¬μš΄ μ„€λͺ…, 주식/가상화폐/ν…Œλ§ˆμ£Ό 정보 포함), λ‹΅λ³€ ν˜•μ‹ κ·œμΉ™(제λͺ©μ€ ##둜 μ‹œμž‘/끝, 큰 λ”°μ˜΄ν‘œ μ‚¬μš© κΈˆμ§€) 등을 μžμ„Ένžˆ μž‘μ„±ν•©λ‹ˆλ‹€.
      • User Message: HTTP Request λ…Έλ“œμ—μ„œ κ°€μ Έμ˜¨ 기사 제λͺ©κ³Ό 본문을 λ³€μˆ˜λ‘œ λ„£μ–΄ AIμ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.
      • 제λͺ© λ³€μˆ˜: {{ $json.objects[0].title }}
      • λ³Έλ¬Έ λ³€μˆ˜: {{ $json.objects[0].text }}
      • 원본 링크 λ³€μˆ˜: {{ $json.request.pageUrl }}
λ„ˆλŠ” IT λ‰΄μŠ€ μ „λ¬Έ 에디터야. μ•„λž˜ 기사 λ‚΄μš©μ„ 전문가와 μ§„ν–‰κ°€κ°€ λŒ€ν™”ν•˜λŠ” ν† λ‘  ν˜•μ‹μœΌλ‘œ λ°”κΏ”μ€˜. λ‚΄μš©μ€ 쉽고 재밌게 ν’€μ–΄μ“°κ³ , μ•„λž˜ ν˜•μ‹μ— λ§žμΆ°μ„œ λ‹΅λ³€ν•΄μ€˜. 그리고 λ‚΄μš©κ³Ό κ΄€λ ¨μžˆλŠ” νšŒμ‚¬λ“€μ˜ 주식 근황도 μ•ˆλ‚΄ν•˜κ³  μ•žμœΌλ‘œμ˜ 전망도 λͺ‡κ°€μ§€ μ˜ˆμΈ‘ν•΄. 직접 κ΄€λ ¨μžˆλŠ” νšŒμ‚¬ 외에 2차둜 μ—°κ²°λ˜μ–΄ μžˆλŠ” νšŒμ‚¬λ“€μ— λŒ€ν•œ μ†Œκ°œμ™€ 전망도 μ†Œκ°œν•΄. 주식 뿐만 μ•„λ‹ˆλΌ κ΄€λ ¨μžˆλŠ” 가상화폐도 μ†Œκ°œν•΄μ€˜. 그리고 κ΄€λ ¨μžˆλŠ” κ΅­λ‚΄ μ™Έ ν…Œλ§ˆ 주식도 μ†Œκ°œν•΄μ€˜. 

---
제λͺ©:
{{ $json.objects[0].title }}

λ³Έλ¬Έ:
{{ $json.objects[0].text }}
---
μš”μ²­ ν˜•μ‹:

- 제λͺ©μ€ '##'둜 μ‹œμž‘ν•˜λŠ” 첫 μ€„λ‘œ λ§Œλ“€μ–΄μ„œ '##'둜 λλ‚˜μ•Όν•΄.

- 큰 λ”°μ˜΄ν‘œλŠ” μ ˆλŒ€λ‘œ μ“°λ©΄ μ•ˆλœλ‹€.

- 토둠이 λλ‚œ ν›„μ—λŠ” '원본 기사 링크: [λ§ν¬μ£Όμ†Œ]'λ₯Ό ν•œ μ€„λ‘œ λ„£κ³ , 링크 μ£Όμ†ŒλŠ” μ•„λž˜λ₯Ό μ°Έκ³ ν•΄μ€˜.

 {{ $json.request.pageUrl }}

4단계: Edit Fields (κ²°κ³Όλ¬Ό 정리 및 ν•„λ“œ 뢄리)

  • μ—­ν• : AIκ°€ λ§Œλ“  ν•˜λ‚˜μ˜ ν…μŠ€νŠΈ λ©μ–΄λ¦¬μ—μ„œ 제λͺ©, λ³Έλ¬Έ, 링크λ₯Ό 각각 μΆ”μΆœν•˜κ³ , μ›Œλ“œν”„λ ˆμŠ€μ— λ§žλŠ” HTML ν˜•μ‹μœΌλ‘œ μ€„λ°”κΏˆμ΄λ‚˜ λ³Όλ“œμ²΄ 등을 μ •λ¦¬ν•©λ‹ˆλ‹€.
  • λ…Έλ“œ 이름: Edit Fields
  • μ„€μ • λ‚΄μš© (Assignments):
    • title (제λͺ© μΆ”μΆœ):
      • κ°’: ={{ $json.content.parts[0].text.replace('##', '').split('##')[0].trim() }}
    • body (λ³Έλ¬Έ 가곡):
      • κ°’: ={{ $json.content.parts[0].text.replace(/\\*\\*(.*?)\\*\\*/g, '<b>$1</b>').replace(/\\n/g, \"<br>\") }} (μ€„λ°”κΏˆ(\n)을 HTML μ€„λ°”κΏˆ νƒœκ·Έ(<br>)둜, λ§ˆν¬λ‹€μš΄ λ³Όλ“œμ²΄(**)λ₯Ό HTML λ³Όλ“œμ²΄ νƒœκ·Έ(<b>)둜 λ³€κ²½)
    • original_link (링크 μΆ”μΆœ):
      • κ°’: ={{ ($json.content.parts[0].text.match(/(https?:\\/\\/[^\\s]+)/) || [''])[0] }} (ν…μŠ€νŠΈ λ‚΄μ—μ„œ http λ˜λŠ” https둜 μ‹œμž‘ν•˜λŠ” URL을 μ°Ύμ•„μ„œ μΆ”μΆœ)

5단계: Create a post (μ›Œλ“œν”„λ ˆμŠ€ μ΅œμ’… ν¬μŠ€νŒ…)

  • μ—­ν• : μ •λ¦¬λœ 제λͺ©κ³Ό κ°€κ³΅λœ 본문을 μ§€μ •λœ μ›Œλ“œν”„λ ˆμŠ€ λΈ”λ‘œκ·Έμ— κ²Œμ‹œν•©λ‹ˆλ‹€.
  • λ…Έλ“œ 이름: Create a post
  • μ„€μ • λ‚΄μš©:
    • Credentials: 미리 λ“±λ‘ν•œ μ›Œλ“œν”„λ ˆμŠ€ API 인증 정보λ₯Ό μ—°κ²°ν•©λ‹ˆλ‹€.
    • Title: ={{ $json.title }} (Edit Fieldsμ—μ„œ μΆ”μΆœν•œ 제λͺ© μ‚¬μš©)
    • Additional Fields (μΆ”κ°€ ν•„λ“œ):
      • Content: ={{ $json.body }} (Edit Fieldsμ—μ„œ κ°€κ³΅λœ λ³Έλ¬Έ μ‚¬μš©)
      • Status: publish (글을 μ¦‰μ‹œ λ°œν–‰ν•˜λ„λ‘ μ„€μ •. κ²€ν† λ₯Ό μ›ν•˜λ©΄ draft둜 μ„€μ •ν•˜μ„Έμš”.)
      • Categories: 3 (λ°œν–‰μ„ μ›ν•˜λŠ” μ›Œλ“œν”„λ ˆμŠ€ μΉ΄ν…Œκ³ λ¦¬μ˜ IDλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.)

3. μ›Œν¬ν”Œλ‘œμš° μ‹€ν–‰ 및 ν…ŒμŠ€νŠΈ

  1. λͺ¨λ“  λ…Έλ“œμ˜ 섀정이 μ™„λ£Œλ˜μ—ˆλŠ”μ§€ μ΅œμ’…μ μœΌλ‘œ ν™•μΈν•˜μ„Έμš”.
  2. μ›Œν¬ν”Œλ‘œμš° μƒλ‹¨μ˜ “Save (μ €μž₯)” λ²„νŠΌμ„ 눌러 λ³€κ²½ 사항을 μ €μž₯ν•©λ‹ˆλ‹€.
  3. ν™”λ©΄ μ™Όμͺ½ μƒλ‹¨μ˜ “Toggle (ν™œμ„±ν™”)” λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μ›Œν¬ν”Œλ‘œμš°λ₯Ό Active μƒνƒœλ‘œ μ „ν™˜ν•©λ‹ˆλ‹€.
  4. 이제 μ„€μ •λœ μ£ΌκΈ°(17λΆ„)λ§ˆλ‹€ n8n이 μžλ™μœΌλ‘œ λ‰΄μŠ€λ₯Ό ν™•μΈν•˜κ³ , AIκ°€ 글을 μž‘μ„±ν•˜μ—¬ μ›Œλ“œν”„λ ˆμŠ€μ— ν¬μŠ€νŒ…ν•  κ²ƒμž…λ‹ˆλ‹€!

이 μžλ™ν™”λ‘œ μ—¬λŸ¬λΆ„μ˜ λΈ”λ‘œκ·Έ 운영 μ‹œκ°„μ΄ 획기적으둜 쀄어듀기λ₯Ό λ°”λžλ‹ˆλ‹€! κΆκΈˆν•œ 점이 μžˆλ‹€λ©΄ μ–Έμ œλ“ μ§€ λŒ“κΈ€λ‘œ μ•Œλ €μ£Όμ„Έμš”.

λ‹΅κΈ€ 남기기

이메일 μ£Όμ†ŒλŠ” κ³΅κ°œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ ν•„λ“œλŠ” *둜 ν‘œμ‹œλ©λ‹ˆλ‹€