Files
blog-writer/blog-engine-final-masterplan-v2.txt
sinmb79 15eb007b5a Initial commit: 블로그 자동 수익 엔진 v2
- 수집봇: Google Trends, GitHub Trending, HN, Product Hunt, RSS 수집
  + 품질 점수(0-100) 시스템 + 6가지 폐기 규칙
- 발행봇: Blogger API v3 자동 발행 + 안전장치(팩트체크/위험키워드)
- 링크봇: 쿠팡 파트너스 HMAC 서명 + 자동 링크 삽입
- 분석봇: 색인률/CTR/14일성과 등 5대 핵심 지표 + Telegram 리포트
- 이미지봇: manual/request/auto 3가지 모드
  request 모드 — 주기적 프롬프트 전송 → Telegram으로 이미지 수령
- 스케줄러: APScheduler + Telegram 봇 명령 리스너

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 06:54:43 +09:00

1140 lines
54 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
================================================================================
블로그 자동 수익 엔진 — 최종 마스터플랜 v2
리뷰 반영 수정본
================================================================================
작성일: 2026-03-24
버전: v2 (리뷰 5개 항목 수정 반영)
상태: 최종 확정 — Claude Code 전달 가능
이전 문서: 전부 이 문서로 대체됨
- blog-engine-masterplan.txt (초안)
- blog-engine-masterplan-update.txt (서브에이전트 구조)
- blog-engine-final-masterplan.txt (v1)
v1 → v2 수정 내역:
[수정1] 블로그 4개 동시 → 1개 시작 → 단계적 확장
[수정2] 팩트체크 코너 안전장치 강화
[수정3] 만평 코너 → Phase 1에서 주 1회 실험으로 축소
[수정4] 수집봇에 폐기 규칙 + 품질 점수 시스템 추가
[수정5] 구현 지시서 모호 표현 정리
================================================================================
PART 1: 전략 요약
================================================================================
── 1. 핵심 컨셉 ──────────────────────────────────────────
"AI 시대의 1인 미디어"
단순한 AI 글 생성 블로그가 아니라,
고유한 시각과 개성을 가진 독립 미디어를 만든다.
- 트렌드를 다루되, 우리만의 해석과 시각으로
- AI는 글쓰기만, 나머지는 효율적인 봇으로
- 국내 시장 먼저, 안정화 후 글로벌 확장
- 비용 최소화, 수익 극대화
── 2. 전략 원칙 ──────────────────────────────────────────
(1) 국내(한국어) 우선
- 영문 시장은 AI 생성 글이 이미 레드오션
- 한국어는 상대적으로 경쟁 낮음 + 쿠팡 파트너스 활용 가능
- 시스템 검증 후 글로벌 확장
(2) AI는 글쓰기에만 사용
- 트렌드 수집, 발행, 링크 삽입, 분석 → 봇(Python)
- 글 작성 → OpenClaw 서브에이전트 (ChatGPT Pro)
- 봇이 더 빠르고, 안정적이고, 비용 0원
(3) 양보다 질
- 하루 2-3개. 월 60-90개 수준.
- 5대 콘텐츠 코너로 차별화된 시각
- 트렌드 + 개성의 조합
(4) 작게 시작, 데이터로 확장 [수정1]
- Phase 1: 메인 블로그 1개에 집중
- 데이터(색인률, CTR, 체류시간)를 보고 확장 판단
- 처음부터 4개가 아니라 1 → 2 → 4 순서
(5) 비용 최소화
- OpenAI API 비용: 0원 (ChatGPT Pro 구독 활용)
- 호스팅: 0원 (Google Blogger)
- 총 추가 월 비용: ~5,000원
── 3. 비용 구조 ──────────────────────────────────────────
[이미 지불 중 — 변동 없음]
ChatGPT Pro 구독 $200/월 (OpenClaw + 글쓰기용)
[추가 비용]
미니PC 전기세 ~3,000-5,000원/월
커스텀 도메인 ~13,000-20,000원/년 (블로그당)
───────────────────────────────────────────
Phase 1 추가 총액 ~4,000-6,000원/월 (도메인 1개 기준)
── 4. 수익 구조 ──────────────────────────────────────────
[1차 수익] Google AdSense
- 블로그 광고 클릭당 수익
- IT/AI 니치 CPC: 클릭당 300-1,500원
- 현실적 Phase 1 목표: 월 0-5만원
[2차 수익] 쿠팡 파트너스
- 상품 추천 링크 → 구매 시 수수료 3%
- Phase 1에서는 IT 관련 제품만
- 현실적 Phase 1 목표: 월 0-5만원
[3차 수익] 어필리에이트 (Phase 3+)
- 크립토 거래소, SaaS 도구 등
- 블로그 분리 후 추가
[4차 수익] 콘텐츠 확장 (Phase 4+)
- 뉴스레터, 전자책 등
※ Phase 1(Month 1-3)에서는 수익 0원을 기본 가정.
수익이 나면 좋은 거고, 안 나도 정상.
이 시기는 "검색 자산 축적 기간"이라고 봐야 함.
================================================================================
PART 2: 시스템 아키텍처
================================================================================
── 5. 전체 구조도 ────────────────────────────────────────
┌─────────────────────────────────────────────────────┐
│ MINI PC (24시간) │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ 봇 레이어 (Python — AI 없음) │ │
│ │ │ │
│ │ [수집봇] 트렌드/도구/사례 수집 + 품질 필터링 │ │
│ │ [발행봇] Blogger API 자동 발행 │ │
│ │ [링크봇] 쿠팡/어필리에이트 링크 삽입 │ │
│ │ [분석봇] Search Console/AdSense 데이터 수집 │ │
│ │ [이미지봇] 만평 이미지 생성 트리거 │ │
│ │ [스케줄러] cron 기반 시간 관리 │ │
│ └───────────────┬───────────────────────────────┘ │
│ │ 주제+데이터 전달 │
│ ▼ │
│ ┌───────────────────────────────────────────────┐ │
│ │ AI 레이어 (OpenClaw — 글쓰기만) │ │
│ │ │ │
│ │ 메인 에이전트 → 서브에이전트: blog-writer │ │
│ │ Model: GPT-5.4 (ChatGPT Pro) │ │
│ │ │ │
│ │ 입력: 주제 + 수집 데이터 + 페르소나/코너 │ │
│ │ 출력: 완성된 글 (제목+본문+메타) │ │
│ └───────────────┬───────────────────────────────┘ │
│ │ 완성된 글 반환 │
│ ▼ │
│ ┌───────────────────────────────────────────────┐ │
│ │ 봇 레이어 (후처리) │ │
│ │ │ │
│ │ [안전장치] 팩트체크/크립토 글 수동검토 판별 │ │
│ │ HTML 포맷팅 → 링크 삽입 → 발행 → 알림 │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
── 6. 봇 레이어 상세 ────────────────────────────────────
[수집봇] collector_bot.py
역할: 글감이 될 데이터를 자동으로 모아오고,
나쁜 글감을 걸러낸다. [수정4]
수집 소스:
- Google Trends (pytrends): 실시간 트렌딩 키워드 (한국)
- GitHub Trending: 뜨는 오픈소스 프로젝트/도구
- Product Hunt: 신규 출시 도구/앱
- Hacker News API (상위 30개): 기술 커뮤니티 인기 글
- RSS 피드: config/sources.json에 등록된 블로그/뉴스
- X(트위터) 검색: 바이브코딩 사례, AI 이슈 (키워드 기반)
★ 품질 점수 시스템 (0-100점) [수정4]
수집된 글감마다 점수를 자동 계산합니다.
70점 이상만 글감 큐에 들어가고, 나머지는 폐기됩니다.
점수 계산 기준:
+30 한국 독자 관련성 (한국어 키워드, 한국 서비스 관련)
+20 트렌드 신선도 (24시간 이내 = 만점, 7일 초과 = 0점)
+20 검색 수요 (Google Trends 상대 검색량)
+15 출처 신뢰도 (공식 블로그/GitHub = 높음, 개인 SNS = 낮음)
+15 수익 연결 가능성 (관련 제품/서비스 존재 여부)
★ 폐기 규칙 (아래 중 하나라도 해당되면 즉시 폐기) [수정4]
- 한국 독자와 무관한 주제 (해외 로컬 뉴스 등)
- 출처 불명/미확인 사례
- 이미 발행한 주제와 유사도 80% 이상 (제목 기준)
- 7일 이상 지난 트렌드 (에버그린 주제 제외)
- 광고성/홍보성이 명확한 원문
- 클릭베이트성 주제 (자극적이지만 실질 가치 없음)
출력 형태:
{
"corner": "숨은보물",
"topic": "회의록 자동 요약 도구 — 무료 오픈소스",
"source_url": "https://github.com/...",
"quality_score": 85,
"trending_since": "12시간 전",
"related_keywords": ["회의록", "자동화", "무료 도구"],
"coupang_keywords": ["마이크", "웹캠", "사무용품"],
"sources": [
{"url": "...", "title": "...", "date": "..."},
{"url": "...", "title": "...", "date": "..."}
]
}
실행 주기: 매일 07:00
[발행봇] publisher_bot.py
역할: AI가 만든 글을 Blogger에 자동 발행.
하는 일:
1. 마크다운 → HTML 변환 (Python markdown 라이브러리)
2. 목차 자동 생성 (H2, H3 기반)
3. AdSense 플레이스홀더 삽입
- <!-- AD_SLOT_1 --> 두 번째 H2 뒤
- <!-- AD_SLOT_2 --> 결론 섹션 앞
4. Schema.org Article JSON-LD 마크업 추가
5. Blogger API v3로 발행
- POST /blogger/v3/blogs/{blogId}/posts
- OAuth2 인증 (refresh_token 자동 갱신)
6. 발행 후 Google Search Console API로 URL 제출 [수정5]
- 방법: Search Console URL Inspection API 사용
- IndexNow는 Blogger에서 직접 지원하지 않으므로 사용하지 않음
- 대안: sitemap.xml 자동 갱신 (Blogger 내장) +
Search Console API indexing.url.publish 호출
7. 발행 이력 data/published/ 에 JSON으로 로그
8. Telegram 알림 전송
★ 안전장치: 발행 전 검토 판별 [수정2]
아래 조건에 해당하면 자동 발행하지 않고,
"수동 검토 대기" 상태로 전환 → Telegram으로 알림.
사용자가 Telegram에서 "승인" 명령을 보내면 발행.
수동 검토 대기 조건:
- 코너가 "팩트체크"인 글 전체
- 글 본문에 다음 키워드 포함 시:
암호화폐 관련: 스캠, 사기, 폰지, 러그풀, 소송
기업/인물 비판: [특정 기업명], 고소, 피해, 논란
투자 관련: 수익 보장, 확실한, 반드시 오른다
법률 관련: 불법, 위법, 처벌
- 출처(source)가 2개 미만인 글 [수정2]
- 품질 점수가 75점 미만인 글감으로 작성된 글
[링크봇] linker_bot.py
역할: 글 본문에 수익 링크를 자동 삽입.
하는 일:
1. 글감 패키지의 coupang_keywords에서 키워드 추출
2. 쿠팡 파트너스 API로 상품 검색 → 링크 생성
- Access Key + Secret Key로 인증
- HMAC 서명 방식 (쿠팡 API 문서 참조)
3. config/affiliate_links.json에서 추가 링크 매칭
4. 삽입 위치:
- 제품/도구 언급 바로 아래
- 결론/추천 섹션
5. 쿠팡 필수 문구 자동 추가:
"이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다."
[분석봇] analytics_bot.py
역할: 블로그 성과 데이터를 수집하고 리포트 생성.
★ 핵심 지표 (우선순위 순서) [수정5]
1. 색인률: 발행한 글 중 구글에 색인된 비율
- Search Console API → 전체 글 수 대비 색인된 수
- 초반에 가장 중요한 지표. 색인 안 되면 모든 게 의미 없음
2. 검색 CTR: 검색 결과에 노출됐을 때 클릭하는 비율
- Search Console API → 노출수 대비 클릭수
- CTR이 낮으면 제목/메타 설명 개선 필요
3. 발행 후 14일 성과: 글 발행 후 2주간 누적 지표
- 조회수, 검색 유입수, 평균 노출 순위
- "14일 지나도 유입 0이면 해당 주제 유형 축소" 규칙
4. 어필리에이트 클릭률: 글 내 쿠팡/어필 링크 클릭 비율
- 쿠팡 파트너스 대시보드 데이터
- 클릭률 높은 글 유형 → 더 많이 생성
5. 체류시간: 독자가 글에 머무는 평균 시간
- Google Analytics (설치 시) 또는 Blogger 내장 통계
- 체류시간 긴 글 = 양질의 콘텐츠 → 비슷한 주제 확대
리포트 출력:
- 일일: Telegram 알림 (발행 결과 + 기본 지표)
- 주간: 상세 분석 (코너별 성과, 주제 유형별 비교)
- 주간 리포트 결과를 수집봇에 피드백 → 다음 주 글감 조정
[이미지봇] image_bot.py
역할: 만평 코너용 이미지 생성.
하는 일:
1. 만평 코너의 글 주제를 받음
2. 만평 프롬프트를 구성 (시사만평 스타일 지시)
3. OpenAI Images API 호출 [수정5]
- 엔드포인트: POST https://api.openai.com/v1/images/generations
- 모델: dall-e-3
- 인증: OpenAI API Key 사용
- 비용: ChatGPT Pro 구독과 별도임을 인지
→ Phase 1에서는 무료 대안 우선 검토:
(a) ChatGPT 웹에서 수동 생성 후 다운로드
(b) 오픈소스 이미지 생성 (Stable Diffusion 로컬)
(c) Canva 무료 템플릿으로 대체
→ API 비용이 부담되면 (a)로 운영
4. 이미지 다운로드 → data/images/ 저장
실행 빈도: 주 1회 (Phase 1) [수정3]
[스케줄러] scheduler.py
역할: 모든 봇의 실행 시간 관리.
라이브러리: APScheduler (Python, 무료)
Windows 자동 실행: 작업 스케줄러(Task Scheduler)에 등록
※ Windows 작업 스케줄러 등록 방법은 setup.bat에서 자동 처리.
수동 등록 시: 작업 스케줄러 → 작업 만들기 →
트리거: "시작할 때" → 동작: pythonw scheduler.py
── 7. AI 레이어 상세 ────────────────────────────────────
구조:
OpenClaw 메인 에이전트 (기존 설정 유지)
└── blog-writer 서브에이전트 (새로 생성)
blog-writer의 역할:
- 수집봇이 넘긴 "글감 패키지"를 받음
- 지정된 페르소나 + 코너 설정을 적용
- 글 작성 (제목 + 본문 + 메타 설명 + 태그)
- 완성된 글을 반환
blog-writer가 하지 않는 것:
- 트렌드 검색 (수집봇 담당)
- HTML 변환 (발행봇 담당)
- 링크 삽입 (링크봇 담당)
- 이미지 생성 (이미지봇 담당)
- 발행 (발행봇 담당)
- 발행 여부 판단 (안전장치 담당)
비용: 0원 (ChatGPT Pro 구독에 포함)
── 8. 봇 vs AI 역할 분담 요약 ───────────────────────────
작업 담당 이유
─────────────────────────────────────────────────
트렌드 키워드 수집 수집봇 API 호출
GitHub/뉴스 크롤링 수집봇 웹 스크래핑
글감 품질 점수 계산 수집봇 규칙 기반 계산
글감 폐기 판단 수집봇 규칙 기반 필터링
글 작성 AI 창의성 필요
만평 프롬프트 구성 AI 창의성 필요
HTML 변환 발행봇 템플릿 변환
쿠팡 링크 삽입 링크봇 키워드 매칭
안전장치 판별 발행봇 키워드 감지 (규칙)
Blogger API 발행 발행봇 API 호출
Search Console 제출 발행봇 API 호출
성과 데이터 수집 분석봇 API 호출 + 집계
Telegram 알림 스케줄러 메시지 전송
스케줄 관리 스케줄러 시간 체크
================================================================================
PART 3: 콘텐츠 전략
================================================================================
── 9. 5대 콘텐츠 코너 ───────────────────────────────────
★ Phase 1 운영 구분 [수정3]
Phase 1 주력 (Day 1부터):
코너 1: 쉬운 세상
코너 2: 숨은 보물
코너 3: 바이브 리포트
Phase 1 제한 운영:
코너 4: 팩트체크 — 수동 검토 필수, 주 1회 이하 [수정2]
코너 5: 한 컷(만평) — 주 1회 실험 [수정3]
Phase 2 정식 운영 (Month 3+, 시스템 안정화 후):
코너 4, 5를 정식 코너로 확대
┌─────────────────────────────────────────────────┐
│ 코너 1: 쉬운 세상 (Easy Guide) [Phase 1 주력]│
├─────────────────────────────────────────────────┤
│ │
│ 컨셉: "하나에서 열까지, 누구나 따라할 수 있게" │
│ │
│ AI/테크 주제를 비전문가도 이해하고 │
│ 바로 실행할 수 있도록 상세히 풀어쓴다. │
│ │
│ 특징: │
│ - 모든 전문 용어에 괄호 안 쉬운 설명 포함 │
│ - "이것만 따라하세요" 톤 │
│ - 단계별 구체적 절차 포함 │
│ │
│ 예시 글: │
│ "ChatGPT 처음 쓰는 사람을 위한 완전 가이드" │
│ "GitHub 뭔지도 모르는 사람이 코드 실행하는 법" │
│ "AI 자동화, 진짜 나도 할 수 있을까? — 예/아니오│
│ 판단 가이드" │
│ │
│ 발행 빈도: 주 2-3회 │
│ 수익화: AdSense (정보성 글 체류시간 높음) │
│ 검색 자산 가치: ★★★★★ (에버그린) │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ 코너 2: 숨은 보물 (Hidden Gems) [Phase 1 주력]│
├─────────────────────────────────────────────────┤
│ │
│ 컨셉: "세상의 정보격차를 줄여드립니다" │
│ │
│ 일반인은 모르지만 유용한 무료 도구, 프로젝트, │
│ 웹사이트를 발굴해서 쉽게 설명한다. │
│ │
│ 특징: │
│ - 수집봇이 GitHub Trending, Product Hunt에서 │
│ 자동으로 "일반인에게 유용한 무료 도구" 탐지 │
│ - "이런 게 무료라고?!" 반응 유도 │
│ - 설치/사용법까지 상세 가이드 │
│ │
│ 예시 글: │
│ "이 무료 앱 하나면 회의록이 자동 정리됩니다" │
│ "포토샵 대신 쓸 수 있는 무료 도구 5가지" │
│ "당신이 몰랐던 구글의 숨겨진 무료 기능 7가지" │
│ │
│ 발행 빈도: 주 2-3회 │
│ 수익화: AdSense + 쿠팡 (관련 장비/서적) │
│ 검색 자산 가치: ★★★★★ (에버그린) │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ 코너 3: 바이브 리포트 (Vibe Report) [Phase 1 주력]│
├─────────────────────────────────────────────────┤
│ │
│ 컨셉: "비개발자가 AI로 만든 놀라운 것들" │
│ │
│ 코딩 모르는 사람들이 AI를 활용해서 만든 │
│ 실제 사례를 발굴하고 상세히 리포트한다. │
│ │
│ 특징: │
│ - 수집봇이 X, Reddit에서 사례 탐지 │
│ - "이 사람은 어떻게 했나" 분석 + 교훈 │
│ - 따라해볼 수 있는 구체적 단계 포함 │
│ - 커뮤니티적 성격 → 충성 독자 형성 │
│ │
│ 예시 글: │
│ "50대 회사원이 Claude로 사내 앱을 만들었다" │
│ "비개발자의 GitHub Actions 자동화 도전기" │
│ "주부가 만든 가계부 앱 — 어떻게 가능했을까" │
│ │
│ 발행 빈도: 주 1-2회 │
│ 수익화: AdSense + SaaS 어필리에이트 (향후) │
│ 검색 자산 가치: ★★★★ (사례 고유성) │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ 코너 4: 팩트체크 (Fact Check) [Phase 1 제한]│
├─────────────────────────────────────────────────┤
│ │
│ 컨셉: "의심하고, 질문하고, 진실을 찾는다" │
│ │
│ AI/테크/경제 분야의 과대광고, 거짓 주장을 │
│ 팩트 기반으로 검증한다. │
│ │
│ ★★★ 안전장치 (필수) ★★★ [수정2]
│ │
│ 이 코너는 자동화 시스템에서 가장 위험합니다. │
│ 반드시 아래 규칙을 적용합니다. │
│ │
│ 규칙 1: 출처 최소 2개 이상 없으면 글 생성 금지 │
│ - 수집봇이 source 필드에 URL 2개 이상 첨부 │
│ - 출처 없는 글감은 이 코너에 배정 금지 │
│ │
│ 규칙 2: 자동 발행 금지 │
│ - 팩트체크 글은 항상 "수동 검토 대기" 상태 │
│ - Telegram으로 사용자에게 미리보기 전송 │
│ - 사용자가 "승인" 명령 → 발행 │
│ - 사용자가 "거부" 명령 → 폐기 │
│ │
│ 규칙 3: 금지 대상 │
│ - 특정 개인에 대한 인신공격 │
│ - 미확인 정보 기반 기업 비판 │
│ - 크립토 시세 예측 또는 특정 코인 비판 │
│ - 법적 판단이 필요한 주장 (불법, 사기 등) │
│ │
│ 규칙 4: 글 구조 분리 │
│ - AI에게 "사실", "의견", "추정"을 명확히 │
│ 구분해서 쓰도록 지시 │
│ - 본문에 [사실], [의견] 태그를 명시 │
│ │
│ 규칙 5: 필수 면책 문구 │
│ "이 글은 공개된 자료를 기반으로 한 분석이며, │
│ 특정 개인이나 기업을 비방할 의도가 없습니다."│
│ │
│ 예시 글 (안전한 주제): │
│ "AI 자동 수익 월 1000만원? — 현실 팩트체크" │
│ "무료라더니 사실은 — 숨겨진 유료 구조 분석" │
│ "이 앱 리뷰 4.8점인데 진짜일까? — 리뷰 분석" │
│ │
│ 발행 빈도: 주 1회 이하 (Phase 1) │
│ 수익화: AdSense (논쟁적 글 체류시간 높음) │
│ 검색 자산 가치: ★★★ (신뢰 구축에 기여) │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ 코너 5: 한 컷 (One Cut — 만평) [Phase 1 실험]│
├─────────────────────────────────────────────────┤
│ │
│ 컨셉: "한 장의 그림으로 세상을 읽는다" │
│ │
│ AI/테크/사회 이슈를 만평 스타일 │
│ 이미지 + 짧은 해설(300-500자)로 전달. │
│ │
│ Phase 1 운영 방식: [수정3]
│ - 주 1회만 실험적으로 발행 │
│ - 이미지 생성 방식: ChatGPT 웹에서 수동 생성 │
│ (API 비용 발생하지 않도록) │
│ - 독자 반응과 공유율을 관찰 │
│ - Phase 2에서 반응 좋으면 정식 코너로 확대 │
│ │
│ 예시: │
│ [한 컷] AI가 직업을 빼앗는다? — 진짜 빼앗기는건│
│ [한 컷] 무료 앱의 비밀 — 당신이 상품이다 │
│ │
│ 발행 빈도: 주 1회 (Phase 1) │
│ 수익화: AdSense + SNS 유입 효과 │
│ 검색 자산 가치: ★★ (SNS 바이럴에 더 적합) │
└─────────────────────────────────────────────────┘
── 10. 페르소나 설정 ─────────────────────────────────────
★ Phase 1: 메인 페르소나 1개만 운영 [수정1]
★ Phase 2+: 성과에 따라 페르소나 분리/추가
[Phase 1 메인 페르소나]
이름: 테크인사이더
역할: IT/AI/자동화 전문 블로거
운영 코너: 쉬운 세상 + 숨은 보물 + 바이브 리포트
+ 팩트체크(주 1회) + 만평(주 1회)
블로그: Blog 1 (메인, 유일한 블로그)
말투: 전문적이되 쉽게 풀어 설명. 20-40대 직장인 대상.
글 길이: 1,500-2,500 단어 (만평은 300-500자)
수익화:
- Google AdSense
- 쿠팡: IT 장비, 서적, 생산성 도구
※ 모든 코너가 하나의 블로그 안에 카테고리로 들어갑니다.
각 코너가 카테고리/태그로 구분됨.
이렇게 하면 블로그 1개에 글이 집중 → 도메인 신뢰도 빠르게 상승.
[Phase 2에서 분리할 페르소나] (Month 3-4, 성과 보고 판단)
(2) 스마트픽 — 쇼핑/리뷰 블로그 (쿠팡 수익 집중)
분리 조건: 메인 블로그 월 5,000 방문자 돌파 시
[Phase 3에서 분리할 페르소나] (Month 5+)
(3) 머니플래너 — 재테크 블로그
(4) 코인리서치 — 크립토 블로그
분리 조건: AdSense 승인 완료 + 월 10,000 방문자 돌파 시
── 11. 트렌드 감지 + 개성 전략 ───────────────────────────
[트렌드 감지] 수집봇이 매일 07:00 자동 수행
[글감 생성 비율]
- 에버그린 글감 50%: 시간 지나도 유효 (검색 자산 축적 핵심)
- 트렌드 글감 30%: 지금 뜨는 주제
- 개성 글감 20%: 5대 코너 고유 시각
※ v1에서는 트렌드 50%였으나, 초기에는 검색 자산 축적이
더 중요하므로 에버그린 비율을 높임. [수정1]
[개성 적용 — 같은 트렌드도 코너별로 다르게]
트렌드: "OpenAI 새 기능 출시"
쉬운 세상 → "일반인이 당장 써먹을 수 있는 3가지 변화"
숨은 보물 → "새 기능 중 사람들이 모르는 숨은 활용법"
바이브 리포트 → "비개발자가 새 기능으로 만든 첫 사례"
팩트체크 → "정말 10배 빠르다? 실측 데이터 분석" (수동 검토)
만평 → [한 컷] AI가 또 진화했다 — 인간은? (주 1회)
================================================================================
PART 4: 인프라 & 세팅
================================================================================
── 12. 이미 갖고 있는 것 ─────────────────────────────────
✅ 미니PC (Windows, 24시간 가동 가능)
✅ OpenClaw 설치 + 운영 중
✅ ChatGPT Pro 구독 ($200/월)
✅ GPT-5.4 Codex 연결됨
✅ Telegram 봇 (OpenClaw 제어용)
✅ Claude Code (구현 도구)
── 13. 새로 세팅할 것 ────────────────────────────────────
[Phase 1 — 반드시 필요]
□ Python 3.11+ 설치 (미설치 시)
□ Git 설치 (미설치 시)
□ blog-writer 서브에이전트 (OpenClaw에 추가)
□ Python 봇 5개 + 스케줄러
□ Google Blogger 블로그 1개 생성 [수정1]
□ Google Cloud Console → Blogger API OAuth2 인증
□ Google Search Console 등록 + 사이트맵 제출
□ 쿠팡 파트너스 계정 + API 키
□ 커스텀 도메인 1개 (AdSense 승인용)
□ 페르소나 파일 1개 (테크인사이더) + 코너 설정 5개
[Phase 1 — 불필요] [수정5]
× Docker Desktop (OpenClaw가 이미 Docker로 돌고 있으므로
추가 컨테이너 불필요. 봇은 Python으로 직접 실행)
× Node.js (봇 레이어가 전부 Python이므로 불필요)
× GitHub Actions (미니PC 로컬 스케줄러 사용)
[Phase 2에서 추가]
□ 블로그 2번째 (스마트픽 분리 시)
□ 커스텀 도메인 2번째
□ 티스토리 크로스포스팅 (선택) [수정5]
※ 티스토리는 Phase 2 이후 선택 사항.
메인 블로그 안정화가 먼저.
── 14. Google Blogger 세팅 ───────────────────────────────
Phase 1에서는 블로그 1개만 만듭니다. [수정1]
[블로그 생성]
1. https://www.blogger.com 접속 → Google 계정 로그인
2. "새 블로그 만들기" 클릭
3. 이름: "테크인사이더" (또는 원하는 이름)
4. 주소: techinsider-kr.blogspot.com (임시)
[카테고리 설정]
하나의 블로그 안에 5대 코너를 카테고리(라벨)로 구성:
- 라벨: 쉬운세상, 숨은보물, 바이브리포트, 팩트체크, 한컷
[필수 페이지 (AdSense 승인용)]
- About (소개) 페이지
- Contact (연락처) 페이지
- Privacy Policy (개인정보처리방침) 페이지
[커스텀 도메인 연결]
- Namecheap 또는 Porkbun에서 도메인 구매 (연 $10-15)
- Blogger 설정 → 맞춤 도메인 → 연결
[블로그 ID 확인]
- Blogger 대시보드 → 브라우저 주소창에서 blogID=숫자 확인
- 이 숫자를 .env 파일의 BLOG_MAIN_ID에 저장
── 15. Google OAuth2 인증 ────────────────────────────────
(이전 마스터플랜과 동일. 변경 없음.)
요약:
1. Google Cloud Console → 프로젝트 생성 → Blogger API 활성화
2. OAuth 동의 화면 설정 → 테스트 사용자 추가
3. OAuth 클라이언트 ID 생성 (데스크톱 앱)
4. credentials.json 다운로드 → C:\blog-engine\ 에 저장
5. python scripts/get_token.py 실행 → 브라우저 인증
6. 출력된 GOOGLE_REFRESH_TOKEN을 .env에 저장
── 16. 쿠팡 파트너스 세팅 ────────────────────────────────
(이전 마스터플랜과 동일. 변경 없음.)
요약:
1. https://partners.coupang.com 가입
2. 도구 → 링크 생성 API → Access Key/Secret Key 발급
3. .env에 COUPANG_ACCESS_KEY, COUPANG_SECRET_KEY 저장
================================================================================
PART 5: 운영
================================================================================
── 17. 일일 운영 플로우 ──────────────────────────────────
[자동 — 사람 개입 없음 (대부분)]
07:00 수집봇 실행
→ 트렌드/도구/사례 수집
→ 품질 점수 계산 → 70점 미만 폐기 [수정4]
→ 에버그린 50% + 트렌드 30% + 개성 20% 비율로 글감 구성
08:00 AI 글 작성 시작
→ 메인 에이전트가 blog-writer 스폰
→ 글감 + 페르소나(테크인사이더) + 코너 → 글 작성
09:00 첫 번째 글 발행
→ 안전장치 체크:
팩트체크 글? → 수동 검토 대기 → Telegram 알림 [수정2]
위험 키워드? → 수동 검토 대기
그 외? → 자동 발행
→ 발행봇: HTML 변환 → 링크 삽입 → Blogger 발행
→ Search Console URL 제출
→ Telegram 알림
12:00 두 번째 글 발행 (다른 코너)
15:00 세 번째 글 발행 (있을 경우)
22:00 분석봇 실행
→ 일일 리포트 → Telegram 발송
→ 색인률, CTR 등 핵심 지표 보고 [수정5]
[수동 — Telegram 명령]
"글 발행해줘 숨은보물"
"오늘 수집된 글감 보여줘"
"대기 중인 글 승인" / "대기 중인 글 거부" [수정2]
"이번 주 리포트"
"발행 중단" / "발행 재개"
── 18. 발행 스케줄 ───────────────────────────────────────
[Phase 1 스케줄 — 블로그 1개, 하루 2-3개] [수정1]
시간 코너 (순환)
──────────────────────────────────────
09:00 쉬운세상 / 숨은보물 (교대)
12:00 숨은보물 / 바이브리포트 (교대)
15:00 (선택) 트렌드 속보 또는 에버그린 추가
만평: 주 1회 (수요일 or 금요일) [수정3]
팩트체크: 주 1회 이하 (수동 검토 후 발행) [수정2]
주간 총: 12-18개 글
월간 총: 50-75개 글
[Phase 2 스케줄 — 블로그 2개로 확장 시]
Blog 1 (테크인사이더): 하루 2개 유지
Blog 2 (스마트픽): 하루 1개 추가
── 19. 성과 피드백 루프 ──────────────────────────────────
분석봇이 매주 자동으로 계산하는 핵심 지표: [수정5]
┌──────────────────┬───────────────────────────────┐
│ 지표 │ Phase 1 목표 │
├──────────────────┼───────────────────────────────┤
│ 색인률 │ 발행 7일 내 80% 이상 색인 │
│ 검색 CTR │ 3% 이상 │
│ 14일 성과 │ 발행 14일 후 조회수 50+ (글당)│
│ 어필리에이트 클릭│ 글당 3회 이상 클릭 │
│ 체류시간 │ 평균 2분 이상 │
└──────────────────┴───────────────────────────────┘
피드백 적용 규칙:
- 색인률 50% 미만 → 글 구조/Schema 점검
- CTR 1% 미만 → 제목/메타 설명 스타일 변경
- 14일 성과 0인 글 유형 → 해당 주제 유형 축소
- 특정 코너가 타 코너 대비 2배 성과 → 해당 코너 비율 확대
- 쿠팡 클릭률 높은 글 유형 → 비슷한 주제 더 생성
── 20. Phase별 로드맵 ────────────────────────────────────
[Phase 1] Month 1-3: 메인 블로그 1개에 집중 [수정1]
목표: 시스템 검증 + 검색 자산 축적 + AdSense 승인
- 블로그 1개 (테크인사이더) + 커스텀 도메인 1개
- 코너 3개 주력 (쉬운세상 + 숨은보물 + 바이브리포트)
- 팩트체크 주 1회 + 만평 주 1회 (실험)
- 매일 2-3개 글 자동 발행 → 월 50-75개 축적
- 쿠팡 링크 삽입 (IT 관련만)
- AdSense 신청 (20개 이상 축적 후)
- 성과 지표 모니터링 시작
현실적 수익 기대: 0원 ~ 5만원/월
핵심 판단 기준: 색인률 80%+, 검색 유입 시작 여부
[Phase 2] Month 3-5: 안정화 + 첫 분리
조건: 월 5,000 방문자 + AdSense 승인 완료
- 스마트픽 블로그 분리 (Blog 2) + 도메인 추가
- 쿠팡 수익 집중 블로그 운영 시작
- 만평 코너 정식 운영 (주 2-3회)
- 팩트체크 코너 빈도 증가 (안전장치 유지)
- 티스토리 크로스포스팅 검토
- 성과 피드백 루프 본격 가동
현실적 수익 기대: 5-20만원/월
[Phase 3] Month 5-8: 성장 + 추가 분리
조건: 월 10,000 방문자 + 안정적 수익 발생
- 머니플래너 / 코인리서치 블로그 분리 검토
- 거래소/SaaS 어필리에이트 추가
- 뉴스레터 시작 (블로그 독자 → 이메일 구독)
- 내부 링크 전략 강화
현실적 수익 기대: 10-50만원/월
[Phase 4] Month 8+: 확장
- 영문 블로그 추가 (글로벌 진출)
- 전자책 출판 (블로그 글 묶음)
- 추가 니치 테스트
현실적 수익 기대: 30-100만원/월+
================================================================================
PART 6: 구현
================================================================================
── 21. 파일 구조 ─────────────────────────────────────────
C:\blog-engine\
├── bots\
│ ├── collector_bot.py ← 수집봇 (품질 점수 + 폐기 규칙 포함)
│ ├── publisher_bot.py ← 발행봇 (안전장치 포함)
│ ├── linker_bot.py ← 링크봇
│ ├── analytics_bot.py ← 분석봇 (5대 핵심 지표)
│ ├── image_bot.py ← 이미지봇 (Phase 1은 수동 대체 가능)
│ └── scheduler.py ← 스케줄러
├── config\
│ ├── blogs.json ← 블로그 ID/도메인 (Phase 1: 1개만)
│ ├── schedule.json ← 발행 시간표
│ ├── sources.json ← 수집봇 크롤링 소스 목록
│ ├── affiliate_links.json ← 어필리에이트 링크 DB
│ ├── quality_rules.json ← 수집봇 품질/폐기 규칙 [수정4]
│ └── safety_keywords.json ← 안전장치 키워드 목록 [수정2]
├── data\
│ ├── topics\ ← 글감 큐 (수집봇 출력)
│ ├── collected\ ← 수집 원본 데이터
│ ├── discarded\ ← 폐기된 글감 로그 [수정4]
│ ├── pending_review\ ← 수동 검토 대기 글 [수정2]
│ ├── published\ ← 발행 이력
│ ├── analytics\ ← 분석 데이터
│ └── images\ ← 만평 이미지
├── scripts\
│ ├── get_token.py ← Google OAuth 토큰 발급
│ └── setup.bat ← Windows 설치 스크립트 [수정5]
├── requirements.txt
├── .env
├── .env.example
└── README.md
~/.openclaw/
├── agents\
│ ├── main\
│ │ └── AGENTS.md ← 서브에이전트 관리 규칙
│ │
│ └── blog-writer\
│ └── SOUL.md ← 글쓰기 전문가 설정
└── workspace-blog-writer\
├── personas\
│ └── tech_insider.md ← Phase 1은 1개만 [수정1]
├── corners\
│ ├── easy_guide.md
│ ├── hidden_gems.md
│ ├── vibe_report.md
│ ├── fact_check.md ← 안전장치 규칙 포함 [수정2]
│ └── one_cut.md
└── templates\
└── output_format.md ← 출력 포맷 템플릿
── 22. Claude Code 전달용 지시서 ─────────────────────────
아래 내용을 이 마스터플랜 파일과 함께 Claude Code에게 전달.
─────────────────────────────────────────────
지시서
─────────────────────────────────────────────
이 마스터플랜(blog-engine-final-masterplan-v2.txt)을 읽고
아래 순서대로 구현해주세요.
환경:
- OS: Windows
- Python 3.11+
- OpenClaw 설치/운영 중 (GPT-5.4 Codex 연결)
- 작업 폴더: C:\blog-engine
- Docker: 이미 OpenClaw용으로 실행 중 (추가 컨테이너 불필요)
────────────────────────────
1단계: 프로젝트 초기화
────────────────────────────
- 위 파일 구조대로 폴더/파일 생성
- requirements.txt:
pytrends
google-api-python-client
google-auth-oauthlib
google-auth-httplib2
python-dotenv
apscheduler
requests
beautifulsoup4
feedparser
markdown
python-telegram-bot
- .env.example 작성:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REFRESH_TOKEN=
BLOG_MAIN_ID=
COUPANG_ACCESS_KEY=
COUPANG_SECRET_KEY=
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
- setup.bat 작성:
(a) python -m venv venv
(b) venv\Scripts\activate
(c) pip install -r requirements.txt
(d) copy .env.example .env (없을 경우)
(e) echo "Setup complete. Edit .env with your API keys."
(f) Windows 작업 스케줄러에 scheduler.py 등록
방법: schtasks /create /tn "BlogEngine"
/tr "C:\blog-engine\venv\Scripts\pythonw.exe
C:\blog-engine\bots\scheduler.py"
/sc onlogon /rl highest
────────────────────────────
2단계: 수집봇 (collector_bot.py)
────────────────────────────
- Google Trends pytrends 연동 (geo='KR', hl='ko')
trending_searches()로 일간 트렌딩 수집
관심 카테고리: 기술, 비즈니스
- GitHub Trending 크롤링 (requests + BeautifulSoup)
URL: https://github.com/trending?since=daily
프로젝트명, 설명, 스타수 추출
- Product Hunt RSS (feedparser)
- Hacker News API
URL: https://hacker-news.firebaseio.com/v0/topstories.json
상위 30개 스토리 제목/URL 수집
- RSS 피드 리더 (config/sources.json에서 URL 로드)
- 품질 점수 계산 로직 구현 (PART 2 섹션 6 기준)
quality_rules.json에서 점수 기준 로드
- 폐기 규칙 구현 (PART 2 섹션 6 기준)
폐기된 글감은 data/discarded/에 로그 (디버깅용)
- 글감 패키지를 data/topics/에 JSON으로 저장
- 에버그린 50%, 트렌드 30%, 개성 20% 비율 적용
────────────────────────────
3단계: 발행봇 (publisher_bot.py)
────────────────────────────
- 마크다운 → HTML 변환 (markdown 라이브러리 + extensions)
- 목차 자동 생성 (H2, H3 기반, toc extension)
- AdSense 플레이스홀더 삽입 (두 번째 H2 뒤, 결론 앞)
- Schema.org Article JSON-LD 생성 (headline, datePublished, author)
- 안전장치 구현:
config/safety_keywords.json에서 위험 키워드 로드
코너가 "팩트체크"면 무조건 수동 검토 대기
위험 키워드 감지 시 수동 검토 대기
출처 2개 미만이면 수동 검토 대기
대기 글은 data/pending_review/에 저장
Telegram으로 미리보기 + 승인/거부 버튼 전송
- Google Blogger API v3 발행
google-api-python-client 사용
OAuth2 Credentials (refresh_token 기반 자동 갱신)
service.posts().insert(blogId, body, isDraft=False)
- Google Search Console API URL 제출
searchconsole.urlInspection.index.inspect 또는
사이트맵은 Blogger 내장 자동 갱신에 의존
- 발행 이력 data/published/에 JSON 로그
- Telegram 알림 (python-telegram-bot 라이브러리)
────────────────────────────
4단계: 링크봇 (linker_bot.py)
────────────────────────────
- 글감 패키지의 coupang_keywords에서 키워드 추출
- 쿠팡 파트너스 API 연동:
인증: HMAC 서명 (Access Key + Secret Key)
엔드포인트: https://api-gateway.coupang.com/v2/providers/
affiliate_api/apis/openapi/products/search
파라미터: keyword, limit=5, subId (추적용)
- 상품명 + 가격 + 어필리에이트 링크 HTML 생성
- 글 본문 적절한 위치에 삽입
- config/affiliate_links.json에서 추가 매칭
- 쿠팡 필수 문구 자동 추가
────────────────────────────
5단계: 분석봇 (analytics_bot.py)
────────────────────────────
- 5대 핵심 지표 수집:
(1) 색인률: Search Console API → 제출 URL 중 색인된 비율
(2) 검색 CTR: Search Console API → 클릭/노출
(3) 14일 성과: 발행 이력 기반 → 발행 14일 후 조회수
(4) 어필리에이트 클릭: 쿠팡 대시보드 (수동 입력 또는 API)
(5) 체류시간: Blogger 내장 통계 (API 제한적, 추후 GA 연동)
- 일일 리포트 생성 → Telegram 전송
- 주간 리포트 생성 → 코너별/주제유형별 성과 비교
- 피드백 JSON 출력 → 수집봇이 다음 주 글감 조정에 활용
────────────────────────────
6단계: 이미지봇 (image_bot.py)
────────────────────────────
- Phase 1에서는 "수동 모드"를 기본으로 구현:
만평 주제를 받으면 → DALL-E 프롬프트만 생성 → Telegram으로 전송
사용자가 ChatGPT 웹에서 이미지 수동 생성 → 다운로드
이미지를 data/images/에 저장 → 발행봇이 글에 삽입
- "자동 모드"는 별도 플래그로 구현 (기본 OFF):
자동 모드 ON 시 OpenAI Images API 직접 호출
POST https://api.openai.com/v1/images/generations
인증: OpenAI API Key 별도 필요 (ChatGPT Pro와 무관)
비용: 이미지당 $0.04-0.08 발생
이 비용을 감수할 경우에만 자동 모드 활성화
────────────────────────────
7단계: 스케줄러 (scheduler.py)
────────────────────────────
- APScheduler 사용
- config/schedule.json 읽어서 시간별 작업 등록
- 기본 일정:
07:00 collector_bot.run()
08:00 AI 글 작성 트리거 (OpenClaw 서브에이전트 호출)
09:00 publisher_bot.publish(글1)
12:00 publisher_bot.publish(글2)
15:00 publisher_bot.publish(글3) — 있을 경우
22:00 analytics_bot.daily_report()
- Telegram 수동 명령 리스너도 포함
- 로그: logs/scheduler.log (RotatingFileHandler)
────────────────────────────
8단계: OAuth 헬퍼
────────────────────────────
- scripts/get_token.py
InstalledAppFlow.from_client_secrets_file 사용
SCOPES = ['https://www.googleapis.com/auth/blogger',
'https://www.googleapis.com/auth/webmasters']
브라우저 인증 → refresh_token 출력
token.json 저장
────────────────────────────
9단계: OpenClaw 서브에이전트
────────────────────────────
- blog-writer 에이전트 생성
- SOUL.md 작성 (PART 2 섹션 7 + PART 3 코너 규칙 반영)
- 페르소나 파일: workspace-blog-writer/personas/tech_insider.md
(Phase 1은 1개만)
- 코너 설정 파일: workspace-blog-writer/corners/ 에 5개
fact_check.md에 안전장치 규칙 명시
- 메인 에이전트 AGENTS.md 업데이트
- 출력 포맷:
---TITLE---
---META---
---SLUG---
---TAGS---
---CORNER--- (어떤 코너인지)
---BODY---
---COUPANG_KEYWORDS---
---SOURCES--- (출처 URL 목록)
---DISCLAIMER---
────────────────────────────
10단계: 통합 테스트
────────────────────────────
- 수집봇 단독 테스트 → data/topics/에 글감 생성 확인
- 품질 점수 + 폐기 규칙 동작 확인
- AI 글 작성 테스트 (쉬운세상 코너 1개)
- 발행봇 HTML 변환 + 링크 삽입 확인
- 안전장치: 팩트체크 글 → 수동 검토 대기 확인
- Blogger 발행 → 실제 블로그에 글 표시 확인
- Telegram 알림 수신 확인
- 스케줄러 5분 후 테스트 → 자동 실행 확인
─────────────────────────────────────────────
지시서 끝
─────────────────────────────────────────────
================================================================================
v2 수정 내역 요약
================================================================================
[수정1] 블로그 운영 규모
v1: 블로그 4개 동시 시작
v2: Phase 1은 블로그 1개에 집중 → 단계적 확장 (1→2→4)
에버그린 글 비율 30→50%로 상향 (검색 자산 축적 우선)
[수정2] 팩트체크 안전장치
v1: "수집봇이 팩트를 모으고 AI에 전달" (원칙만)
v2: 출처 2개 이상 필수, 자동 발행 금지, 위험 키워드 감지,
수동 검토 대기 시스템, 사실/의견 분리, 금지 대상 명시,
면책 문구 필수
[수정3] 만평 코너 운영
v1: 주 2-3회 (정식 코너)
v2: Phase 1에서 주 1회 실험, 이미지는 수동 생성 우선,
Phase 2에서 반응 보고 정식 확대 판단
[수정4] 수집봇 품질 관리
v1: 수집 소스만 정의 (폐기 규칙 없음)
v2: 품질 점수 시스템(0-100, 70점 미만 폐기),
6가지 폐기 규칙 명시, 폐기 로그 저장
[수정5] 구현 명확성
v1:
- "Search Console 색인 요청 (IndexNow)" → 모호
- "DALL-E API (ChatGPT Pro 포함)" → 비용 혼동
- Docker 불필요하게 환경에 포함
- setup.bat 범위 불명확
- 성과 지표 = 조회수 중심
v2:
- Search Console URL Inspection API 명시, IndexNow 삭제
- DALL-E는 별도 API Key/비용임을 명시, 수동 대안 제공
- Docker 추가 불필요 명시
- setup.bat 구체적 단계 명시 (venv, pip, Task Scheduler)
- 성과 지표 = 색인률/CTR/14일성과/클릭률/체류시간 5개로 구체화
- 티스토리 = Phase 2 선택사항으로 명확화
================================================================================
================================================================================