🤖AI

4년치 블로그 196개를 AI로 하룻밤에 리뉴얼한 이야기

AdSense 심사를 통과하기 위해 4년치 티스토리 글 196개를 Gemini Flash-Lite로 자동 리뉴얼했다. 비용은 약 ₩300, 시간은 35분. 그 과정에서 발견한 함정과 의사결정을 정리한다.

📅 2026년 5월 10일·📖 5분 읽기·👁 48

왜 리뉴얼이 필요했나

aicoreutility.com 을 AdSense 에 신청하면서 명확한 거절 사유를 받았다. "콘텐츠 품질 불충분". 사이트에 4년 동안 티스토리에 쓴 글 196개를 그대로 옮겨놓았는데, 짧고(1500자 미만), 시기적으로 오래된(2020-2023) 글이 절반 이상이었다.

옵션은 두 가지였다.

  • 티스토리 폐쇄 — 원본 검색 결과 잃고, 백링크 끊기고, 도박
  • 전체 리뉴얼 — 196개를 하나씩 다시 쓰기. 손으로는 불가능

나는 1인 개발자다. 가족 챙기면서 글 196개를 다시 쓸 시간이 없다. 그래서 Gemini Flash-Lite 로 자동 리뉴얼 파이프라인을 짰다.

1단계: 무자비한 정리(cull)

모든 글을 살리는 게 정답이 아니다. 가치 없는 글은 SEO 에 마이너스다. 두 가지 기준으로 31개를 archived 처리했다.

-- 매우 짧고 조회수도 거의 없는 글
UPDATE blog_posts SET status='archived'
WHERE length(content_original) < 1500 AND view_count <= 3;

-- 어중간한 길이 + 낮은 가치 + 오래된 글 UPDATE blog_posts SET status='archived' WHERE length(content_original) < 2500 AND view_count <= 2 AND ai_score < 7 AND original_published_at < '2024-01-01';

199개 → 168개. 31개를 잃었지만 평균 품질이 올라갔다.

2단계: 5-stage 리뉴얼 체인

단순히 "이 글을 다시 써줘" 라는 프롬프트는 환각을 부른다. 5단계로 분해했다.

  1. extract_facts — 원본에서 검증 가능한 사실만 추출
  2. seo_research — 제목/키워드 후보 생성
  3. write_body — 사실 기반 본문 작성
  4. validate — 사실 누락/추가 여부 검증
  5. seo_meta — title/description/excerpt 생성

모델은 gemini-2.5-flash-lite. 한 글당 약 ₩2 수준.

함정 1: 연도 환각

첫 배치 결과를 봤더니 본문에 "2024년 N가지" 같은 표기가 나왔다. 지금은 2026년이다. Gemini 학습 시점의 옛 연도를 그대로 써버린 것이다.

모든 stage 프롬프트 맨 앞에 현재 KST 시간을 박아넣었다.

def _now_context() -> str:
    now = datetime.now(KST)
    return (
        f"[현재 시점 — 반드시 준수]\n"
        f"오늘은 {now.strftime('%Y년 %m월 %d일')} (KST) 입니다.\n"
        f"연도/시기 표기 시 반드시 {now.year}년 기준으로 작성하세요. "
        f"학습 시점의 옛 연도(2023, 2024 등)를 임의로 넣지 마세요.\n"
    )

해결.

함정 2: 멱등성(idempotent)

130개를 한 번에 돌리는데 중간에 Gemini API rate limit 으로 끊겼다. 49개에서 멈춰버렸다. 다시 돌리면 처음부터?

각 글 마지막에 HTML 마커를 박았다.

<!-- renewed-2026 -->

스크립트는 이 마커가 있는 글을 skip 한다. 끊겨도 다시 돌리면 남은 것만 처리한다. 결국 두 번 더 돌려서 143개 완료.

함정 3: 한국어 슬러그

일부 원본 글의 slug 가 한글이었다. /blog/리액트-훅-정리 같은. 브라우저 주소창에선 작동하지만 SEO 와 SNS 공유에서 문제가 생긴다.

모든 slug 를 ASCII 화 + sha1 해시 fallback 으로 정규화했다.

3단계: 시점 표기

리뉴얼 글에는 두 개 섹션을 강제로 추가했다.

  • 🕒 이 글의 시점 — 원본 작성년도 명시 ("2022년에 처음 썼고, 2026년 5월 기준으로 검토했습니다")
  • 📌 2026년의 코멘트 — 지금 시점에서 추가할 한 단락

독자가 "이게 옛날 글인가?" 헷갈리지 않게 하기 위함이고, AdSense 가 "신선한 콘텐츠" 로 인식하게 하기 위함이다.

최종 결과

지표
리뉴얼 비용약 ₩300 (Gemini Flash-Lite, 143개)
총 소요 시간약 35분 (스크립트 실행 시간)
발행 글 수146개 (143 리뉴얼 + 3 native)
archive 처리53개
일관성100% (모든 글 2026 시점 명시)

배운 것

  • 전체 자동화는 가능하지만 프롬프트에 시간 컨텍스트 주입은 필수다
  • 멱등성이 없으면 중간에 한 번만 끊겨도 손해가 크다
  • 가치 없는 글은 살리지 말아야 한다. 평균 품질이 SEO를 결정한다
  • 1인 개발자에게 LLM 파이프라인은 시간을 만드는 도구다 — ₩300 으로 35분 만에 끝났다

📌 다음에 할 일

AdSense 재신청은 했고 결과 대기 중이다. 통과되면 본문 가독성 해치지 않는 위치 한 곳에만 광고 단위를 두기로 했다. 자동광고는 안 켤 생각이다.

태그

#블로그#Gemini#자동화#AdSense#운영회고

📨 박주니에게 한마디

스팸·악성 메시지 방지를 위해 구글 로그인 후 메시지를 보낼 수 있어요. 비공개로 전달되며, 운영자 외에는 볼 수 없습니다.

Google 로그인 후 메시지 남기기