๐Ÿš€ n8n์œผ๋กœ VSCODE / Claude Code ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ๋ฒˆ์—ญ ํŒŒ์ดํ”„๋ผ์ธ ๋งŒ๋“ค๊ธฐ

๐Ÿš€ n8n์œผ๋กœ VSCODE / Claude Code ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ๋ฒˆ์—ญ ํŒŒ์ดํ”„๋ผ์ธ ๋งŒ๋“ค๊ธฐ

๐Ÿ“Œ ํ•œ ์ค„ ์š”์•ฝ: VS Code์™€ Claude Code ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ์ž๋™์œผ๋กœ ํ•œ๊ตญ์–ด ๋ฒˆ์—ญํ•˜์—ฌ Ghost ๋ธ”๋กœ๊ทธ์— ๋ฐœํ–‰ํ•˜๋Š” n8n ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋งŒ๋“  ๊ณผ์ •๊ณผ, ๊ทธ ๊ณผ์ •์—์„œ ๋งˆ์ฃผ์นœ ์‹ค์ „ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


๊ฐœ๋ฐœ ๋„๊ตฌ์˜ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋Š” ๋Œ€๋ถ€๋ถ„ ์˜์–ด๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋งค์ฃผ ์—…๋ฐ์ดํŠธ๋˜๋Š” VS Code ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์™€ ๊ฑฐ์˜ ๋งค์ผ ๋‚˜์˜ค๋Š” Claude Code ๋ณ€๊ฒฝ ๋กœ๊ทธ(Changelog)๋ฅผ ๋งค๋ฒˆ ์ง์ ‘ ์ฝ๊ณ  ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ์€ ๋ฒˆ๊ฑฐ๋กœ์šด ๋ฐ˜๋ณต ์ž‘์—…์ž…๋‹ˆ๋‹ค.

**"๋ฐ˜๋ณต ์ž‘์—…์ด ๋ณด์ด๋ฉด ์ž๋™ํ™”ํ•˜๋ผ"**๋Š” ์›์น™์— ๋”ฐ๋ผ, RSS ํ”ผ๋“œ๋ฅผ ๊ฐ์‹œํ•˜๊ณ , AI ๋ชจ๋ธ๋กœ ๋ฒˆ์—ญํ•œ ๋’ค, Ghost CMS์— ์ž๋™์œผ๋กœ ๋ฐœํ–‰ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ n8n์„ ํ™œ์šฉํ•ด ๊ตฌ์ถ•ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.


๐Ÿ’ก ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ํ•ต์‹ฌ ํฌ์ธํŠธ

1. ์†Œ์Šค๋ณ„ ํŠน์„ฑ์— ๋งž์ถ˜ ๋…๋ฆฝ์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ ์„ค๊ณ„

์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์ „, ํ”ผ๋“œ ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. VS Code์™€ Claude Code ๋ชจ๋‘ Atom ํ”ผ๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ๋‹ด๊ณ  ์žˆ๋Š” ์ •๋ณด์˜ ๊นŠ์ด๊ฐ€ ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค.

  • VS Code (code.visualstudio.com/feed.xml): ์š”์•ฝ๋œ ํ•œ ์ค„๊ณผ ๋งํฌ๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ์ „๋ฌธ์„ ์–ป์œผ๋ ค๋ฉด HTTP ์š”์ฒญ์œผ๋กœ code.visualstudio.com/updates/v1_xxx ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์™€ <main> ํƒœ๊ทธ์—์„œ ๋ณธ๋ฌธ์„ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  rel="related" ๋งํฌ์— ๋ฆด๋ฆฌ์Šค ํ•˜์ด๋ผ์ดํŠธ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์–ด Ghost์˜ feature_image๋กœ ๋ฐ”๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Claude Code (raw.githubusercontent.com/anthropics/claude-code/main/feed.xml): ํ”ผ๋“œ ์ž์ฒด์— ๋ณ€๊ฒฝ ๋กœ๊ทธ HTML์ด ํ†ต์งธ๋กœ ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํŽ˜์ด์ง€ Fetch๊ฐ€ ํ•„์š” ์—†์–ด ์›Œํฌํ”Œ๋กœ์šฐ ๋…ธ๋“œ๋ฅผ 2๊ฐœ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฆด๋ฆฌ์Šค ๋นˆ๋„๊ฐ€ ๋†’์•„ ์ค‘๋ณต ๋ฐœํ–‰ ๋ฐฉ์ง€๊ฐ€ ํ›จ์”ฌ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ฐจ์ด์  ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ํ†ตํ•ฉ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์•„๋‹Œ ์†Œ์Šค๋ณ„ ๋…๋ฆฝ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•œ์ชฝ ํ”ผ๋“œ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋‹ค๋ฅธ ์ชฝ์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2. ๋ฏธ๋ž˜ ๋‚ ์งœ(Insiders ๋นŒ๋“œ) ํ•„ํ„ฐ๋ง ํ•จ์ •

VS Code ํ”ผ๋“œ์—๋Š” ์ข…์ข… Insiders(ํ”„๋ฆฌ ๋ฆด๋ฆฌ์Šค) ๋นŒ๋“œ๊ฐ€ ์„ž์—ฌ ๋“ค์–ด์˜ค๋ฉฐ, ์ด ํ•ญ๋ชฉ์—๋Š” ๋ฏธ๋ž˜ ๋‚ ์งœ๊ฐ€ ์ฐํ˜€ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: ์˜ค๋Š˜์ด 9์›” 11์ผ์ธ๋ฐ v1.138 (Insiders)์˜ <updated>๊ฐ€ 9์›” 16์ผ๋กœ ์„ค์ •๋จ)

์ œ๋ชฉ์— "(Insiders)"๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ํ•„ํ„ฐ ๋…ธ๋“œ์—์„œ 1์ฐจ์ ์œผ๋กœ ๊ฑธ๋Ÿฌ๋‚ด์ง€๋งŒ, ํƒœ๊ทธ ์—†์ด ์‚ฌ์ „ ๋“ฑ๋ก๋˜๋Š” ์ด๋ก ์  ์˜ˆ์™ธ ์ƒํ™ฉ์„ ๋ฐฉ์–ดํ•˜๊ธฐ ์œ„ํ•ด ๋‚ ์งœ ๊ธฐ๋ฐ˜ ๊ฒ€์ฆ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

// ๋ฏธ๋ž˜ ๋‚ ์งœ ํ•ญ๋ชฉ์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ์•ˆ์ „์žฅ์น˜
const updatedAt = item.json.isoDate || item.json.pubDate || '';
if (updatedAt && new Date(updatedAt) > new Date()) continue;

์ด๋Ÿฌํ•œ ์˜ˆ๋ฐฉ ์ฐจ์›์˜ ๋กœ์ง ๋•๋ถ„์— ๋ฏธ๋ž˜ ๋‚ ์งœ ํ•ญ๋ชฉ์€ ๋‹ค์Œ ํด๋ง(Polling) ์‹œ๊ธฐ์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

3. Supabase๋ฅผ ํ™œ์šฉํ•œ ์ค‘๋ณต ๋ฐœํ–‰ ์™„๋ฒฝ ์ฐจ๋‹จ

n8n ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ 6์‹œ๊ฐ„๋งˆ๋‹ค ์‹คํ–‰ํ•˜๋ฉด, ๊ฐ™์€ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ตœ์‹  ํ•ญ๋ชฉ์œผ๋กœ ์žกํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RSS Read ๋…ธ๋“œ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๋ณธ ํ•ญ๋ชฉ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋กํ•˜๊ธด ํ•˜์ง€๋งŒ, ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ n8n์ด ์žฌ์‹œ์ž‘๋˜๋ฉด ์ด ๋ฐ์ดํ„ฐ๋Š” ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํ•œ **๋ฐœํ–‰ ์ด๋ ฅ์˜ ์›์žฅ(Single Source of Truth)**์ด ํ•„์š”ํ–ˆ๊ธฐ์—, Supabase์— published_releases ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์—ฌ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

CREATE TABLE published_releases (
  id              BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  slug            TEXT UNIQUE NOT NULL,
  source          TEXT NOT NULL CHECK (source IN ('vscode', 'claude-code')),
  version         TEXT NOT NULL,
  title           TEXT NOT NULL,
  original_url    TEXT NOT NULL,
  release_date    TIMESTAMPTZ NOT NULL,
  change_count    INT,
  content_length  INT,
  ghost_post_id   TEXT,
  ghost_url       TEXT,
  status          TEXT NOT NULL DEFAULT 'published',
  feature_image   TEXT,
  published_at    TIMESTAMPTZ DEFAULT NOW(),
  created_at      TIMESTAMPTZ DEFAULT NOW()
);

ํ•ต์‹ฌ ํ๋ฆ„:

  1. RSS ํ”ผ๋“œ ํด๋ง ๋ฐ ํ•„ํ„ฐ๋ง
  2. Supabase์—์„œ slug ์กฐํšŒ (์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ์ฆ‰์‹œ ์ข…๋ฃŒ)
  3. ํ†ต๊ณผ๋œ ํ•ญ๋ชฉ๋งŒ Gemini ๋ฒˆ์—ญ ๋ฐ Ghost ๋ฐœํ–‰
  4. Supabase์— ๋ฐœํ–‰ ์ด๋ ฅ(INSERT) ๊ธฐ๋ก

์ด ๊ตฌ์กฐ์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋น„์šฉ ์ ˆ๊ฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฐœํ–‰๋œ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ™•์ธํ•˜์—ฌ Gemini API ํ˜ธ์ถœ ์ „์— ์ฐจ๋‹จํ•˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ํ† ํฐ ๋‚ญ๋น„๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ slug์— UNIQUE ์ œ์•ฝ์„ ๊ฑธ์–ด๋‘์–ด, ๋ ˆ์ด์Šค ์ปจ๋””์…˜(Race Condition)์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ DB ๋‹จ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

4. Gemini ๋ชจ๋ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™”

์ดˆ๊ธฐ์—๋Š” gemini-2.5-flash ๋ชจ๋ธ๋กœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์„ฑํ–ˆ์œผ๋‚˜, API ์ •์ฑ… ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์—๋Ÿฌ๋ฅผ ๋งˆ์ฃผํ–ˆ์Šต๋‹ˆ๋‹ค.

"This model models/gemini-2.5-flash is no longer available to new users. Please update your code to use models/gemini-3.6-flash."

์ด์— gemini-3.7-flash๋กœ ๊ต์ฒดํ–ˆ๋”๋‹ˆ ์ด๋ฒˆ์—๋Š” ๊ณผ๋ถ€ํ•˜(high demand) ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ **gemini-3.6-flash**๋กœ ์ •์ฐฉํ•˜๊ณ , n8n ๋…ธ๋“œ ์„ค์ •์—์„œ ์ž๋™ ์žฌ์‹œ๋„(Retry On Fail, 3ํšŒ, 10์ดˆ ๊ฐ„๊ฒฉ)๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ผ์‹œ์  API ์žฅ์• ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Gemini 3.6+ ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

// ๋ณ€๊ฒฝ ์ „ (2.5 ๋ฒ„์ „)
"generationConfig": { 
  "temperature": 0.3, 
  "topP": 0.95, 
  "maxOutputTokens": 32768 
}

// ๋ณ€๊ฒฝ ํ›„ (3.6+ ๋ฒ„์ „) - thinkingConfig ํ™œ์šฉ
"generationConfig": { 
  "maxOutputTokens": 32768, 
  "thinkingConfig": { "thinkingLevel": "low" } 
}

๋ฒˆ์—ญ ์ž‘์—…์€ ๋†’์€ ์ฐฝ์˜์„ฑ์„ ์š”๊ตฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ thinkingLevel: "low"๋กœ ์„ค์ •ํ•˜์—ฌ ํ† ํฐ ์†Œ๋ชจ์™€ ์‘๋‹ต ์†๋„๋ฅผ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

5. n8n ํ‘œํ˜„์‹ ํŒŒ์„œ์™€ JSON ์ค‘์ฒฉ(Mobiledoc) ์ด์Šˆ ํ•ด๊ฒฐ

Ghost Admin API์— ๊ฒŒ์‹œ๋ฌผ์„ ๋“ฑ๋กํ•  ๋•Œ ๋ณธ๋ฌธ์€ mobiledoc ํ˜•์‹์˜ JSON ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ HTTP Request ๋ฐ”๋””(JSON) ์•ˆ์— ๋˜ ๋‹ค๋ฅธ JSON ๊ตฌ์กฐ(mobiledoc)๊ฐ€ ๋ฌธ์ž์—ด๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

JSON.stringify ์•ˆ์— ๋˜ JSON.stringify๊ฐ€ ์ค‘์ฒฉ๋˜๋ฉด n8n์˜ ํ‘œํ˜„์‹ ํŒŒ์„œ๊ฐ€ invalid syntax ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” IIFE(์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

={{ (function() {
  var md = $json.markdownContent || '';
  var mobiledoc = '{"version":"0.3.1","markups":[],"atoms":[],' +
    '"cards":[["markdown",{"markdown":' + JSON.stringify(md) + '}]],' +
    '"sections":[[10,0]]}';
  
  return JSON.stringify({
    posts: [{ title: $json.title, mobiledoc: mobiledoc }]
  });
})() }}

JavaScript ์ฝ”๋“œ ๋ธ”๋ก ์•ˆ์—์„œ mobiledoc ๋ฌธ์ž์—ด์„ ๋ฏธ๋ฆฌ ์•ˆ์ „ํ•˜๊ฒŒ ์กฐ๋ฆฝํ•œ ๋’ค, ์ตœ์ข… ๊ฐ์ฒด๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•˜๋ฉด ํŒŒ์„œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ ์ตœ์ข… ์›Œํฌํ”Œ๋กœ์šฐ ์•„ํ‚คํ…์ฒ˜

๋‘ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ „์ฒด์ ์ธ ๋…ธ๋“œ ํ๋ฆ„์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

VS Code ์›Œํฌํ”Œ๋กœ์šฐ - ์ด 11๋…ธ๋“œ

Claude Code ์›Œํฌํ”Œ๋กœ์šฐ - ์ด 9๋…ธ๋“œ

Claude Code์˜ ๋…ธ๋“œ ์ˆ˜๊ฐ€ 2๊ฐœ ๋” ์ ์€ ์ด์œ ๋Š” ํ”ผ๋“œ ์ž์ฒด์— ์ „์ฒด ๋ณ€๊ฒฝ ๋กœ๊ทธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด, ๋ณธ๋ฌธ์„ ๊ฐ€์ ธ์˜ค๋Š” Fetch ์ž‘์—…๊ณผ ์ถ”์ถœ ๊ณผ์ •์ด ์ƒ๋žต๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋œ ํ•„์ˆ˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (4๊ฐœ)

GEMINI_API_KEY=...
GHOST_ADMIN_API_KEY={id}:{secret}
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=...

๐Ÿ’ก ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

์ด ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœ์ ํŠธ์˜ ์ง„์ •ํ•œ ๊ฐ€์น˜๋Š” ๋‹จ์ˆœํ•œ '์ž๋™ํ™”'๋ฅผ ๋„˜์–ด์„  **'๊ตฌ์กฐํ™”'**์— ์žˆ์Šต๋‹ˆ๋‹ค.
Supabase์— ์ฒด๊ณ„์ ์œผ๋กœ ๋ฐœํ–‰ ์ด๋ ฅ์ด ์ ์žฌ๋˜๋ฉด์„œ, ๊ฐ ์†Œ์Šค๋ณ„ ๋ฐœํ–‰ ๋นˆ๋„, ๋ฒˆ์—ญ๋œ ์ฝ˜ํ…์ธ ์˜ ๊ธธ์ด ์ถ”์ด, API ์‹คํŒจ์œจ ๋“ฑ์„ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์ƒˆ๋กœ์šด RSS ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋”๋ผ๋„ ๊ธฐ์กด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋ณต์ œํ•œ ํ›„ ํ”ผ๋“œ URL๊ณผ ํ•„ํ„ฐ ๋กœ์ง๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๋ฏ€๋กœ ํ™•์žฅ์„ฑ๋„ ๋งค์šฐ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋กœ๋Š” ๊ณต์‹ RSS๊ฐ€ ์—†๋Š” Anthropic ๋‰ด์Šค ํ”ผ๋“œ ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ๋ฆด๋ฆฌ์Šค ๊ฐ„ Diff๋ฅผ ๋น„๊ตํ•˜์—ฌ **"์ด๋ฒˆ ๋ฒ„์ „์—์„œ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ํ•ต์‹ฌ ๋ณ€ํ™”"**๋งŒ ์งš์–ด์ฃผ๋Š” ์Šค๋งˆํŠธ ์š”์•ฝ ๋ชจ๋“œ๋ฅผ ๋„์ž…ํ•ด ๋ณผ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

"๋ฐ˜๋ณต ์ž‘์—…์ด ๋ณด์ด๋ฉด ์ž๋™ํ™”ํ•˜๋ผ. ๋‹จ, ํ”ผ๋“œ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ผผ๊ผผํžˆ ์—ด์–ด๋ณด๊ณ  ๋‚˜์„œ."