[IT/기술] [AI 블로그 자동화 가이드] 4편 — 프롬프트 & 기술 구현

관리자 Lv.1
02-21 23:46 · 조회 7 · 추천 0

Part 4: 프롬프트 & 템플릿

/prompts 디렉토리에 프로덕션 레벨 템플릿 20개가 있다.

이건 일반적인 "블로그 포스트 써줘" 프롬프트가 아니다. 각각 특정 워크플로우 단계와 콘텐츠 타입에 맞춰져 있다.

템플릿 카테고리:

  1. 수집 프롬프트 (4개) - 소스에서 구조화된 데이터 추출
  2. 분석 프롬프트 (4개) - 주제 스코어링, 앵글 식별
  3. 리서치 프롬프트 (4개) - 딥다이브, 소스 검증
  4. 작성 프롬프트 (6개) - 다양한 틈새와 포맷
  5. 편집 프롬프트 (2개) - 탈-쓰레기화, SEO 최적화

사용법:

  • 프롬프트 템플릿 복사
  • [VARIABLES]를 특정 데이터로 교체
  • 출력 품질 기반 반복
  • 성공적 변형 저장

커스터마이징: 이 프롬프트들은 Claude(Sonnet/Opus)와 작동한다. GPT-4는 지시 장황함 줄여. Gemini는 더 많은 예시 추가.


Part 5: 기술 구현

첫 워크플로우 설정

전제 조건:

  • Claude Code (또는 동등한 AI 코딩 도구)
  • Python 3.9+
  • 버전 컨트롤용 Git
  • 기본 터미널/커맨드라인 지식

Step 1: 워크플로우 디렉토리 생성

mkdir tech-blog-workflow
cd tech-blog-workflow
mkdir .claude/commands data output

Step 2: 의존성 설치

pip install feedparser praw yfinance selenium undetected-chromedriver requests beautifulsoup4

Step 3: 슬래시 커맨드 설정

.claude/commands/collect.md 생성:

# /collect - 테크 뉴스 수집

설정된 소스에서 최신 테크 뉴스 수집 후 `data/raw/YYYY-MM-DD.json`에 저장.

소스:
- TechCrunch RSS
- Hacker News 상위 30
- Reddit r/technology rising (최근 4시간)

출력 형식: {title, url, source, published_at, score} JSON 배열

Step 4: 수집 스크립트 생성

이 스크립트 생성 프롬프트는 /prompts/01-collection-techcrunch.md 참조.

Step 5: 먼저 수동으로 실행

python collect.py
# data/raw/YYYY-MM-DD.json 생성됐는지 확인

Step 6: 후속 커맨드 추가

/analyze, /select, /research, /outline, /write도 같은 패턴으로.

Step 7: 커맨드 체인

run_workflow.sh 생성:

#!/bin/bash
claude /collect
claude /analyze
claude /select  # 여기서 사람 개입
claude /research
claude /outline
claude /write
python publish.py  # 발행 스크립트

Step 8: cron으로 자동화

# 매일 오전 9시 실행
0 9 * * * /path/to/tech-blog-workflow/run_workflow.sh

Docker 설정 (선택, 프로덕션용)

왜 Docker? 의존성 격리, 환경 변수 처리, 쉬운 배포.

Dockerfile 예시:

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "workflow_runner.py"]

docker-compose.yml (데이터베이스 있는 주식 워크플로우용):

version: "3.8"
services:
  collector:
    build: .
    environment:
      - REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID}
      - DATABASE_URL=postgresql://user:pass@db:5432/stocks
    depends_on:
      - db
  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  postgres_data:

모니터링 & 디버깅

모든 것 로그:

import logging
logging.basicConfig(
    filename="workflow.log",
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s"
)
logging.info(f"Collected {len(articles)} articles")

메트릭 추적:

  • 실행당 수집된 기사
  • 선택된 주제
  • 발행 성공률
  • 발행된 포스트 트래픽 (주간 리뷰)

흔한 문제:

  1. Rate limiting: 딜레이 추가, API 키 사용
  2. 인코딩 에러: 모든 곳에 utf-8, 대비책으로 errors="ignore"
  3. 오래된 콘텐츠: published_at 타임스탬프 확인, 오래된 기사 필터
  4. API 변경: 의존성 버전 고정, 소스 사이트 모니터
💬 0 로그인 후 댓글 작성
첫 댓글을 남겨보세요!