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

관리자 Lv.1
02-22 00:27 · 조회 19 · 추천 0

Part 4: 프롬프트 & 템플릿

/prompts 디렉토리에서 프로덕션용 템플릿 20개 전체를 확인하세요.

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

템플릿 카테고리:

  1. 수집 프롬프트 (4개) - 소스에서 구조화된 데이터 추출
  2. 분석 프롬프트 (4개) - 토픽 점수, 앵글 식별
  3. 리서치 프롬프트 (4개) - 심층 조사, 소스 검증
  4. 작성 프롬프트 (6개) - 다양한 틈새와 형식
  5. 편집 프롬프트 (2개) - De-slop, SEO 최적화

아래는 프로덕션 품질 프롬프트 엔지니어링이 어떻게 생겼는지 보여주는 3개 대표 프롬프트다:

예시 1: 수집 프롬프트 (TechCrunch RSS)

사용 사례: 테크 뉴스 자동화된 일일 수집

데이터 수집 에이전트로서 작업:

작업: TechCrunch RSS 피드 가져와서 파싱, 구조화된 JSON 출력

RSS URL: https://techcrunch.com/feed/

필수 필드:
- title: 기사 헤드라인
- url: 전체 기사 URL
- published_at: ISO 8601 타임스탬프
- summary: 설명의 첫 200자
- source: "TechCrunch"
- category: RSS 카테고리 태그에서 추출

필터링 규칙:
1. 최근 24시간 내 퍼블리시된 기사만
2. 스폰서/파트너 콘텐츠 제외 (제목에 "Sponsored" 체크)
3. 팟캐스트 에피소드와 이벤트 공지 제외
4. 최소 제목 길이: 20자

출력 형식: JSON
data/raw/techcrunch-YYYY-MM-DD-HHMM.json에 저장

코드 요구사항:
- Python feedparser 라이브러리 사용
- 네트워크 에러 우아하게 처리 (지수 백오프로 3회 재시도)
- User-Agent 헤더 추가: "BlogBot/1.0 (Educational)"
- 파싱 에러를 collection.log에 로깅

예상 출력: 최근 24시간의 테크 뉴스 기사 15-25개, 구조화되어 분석 준비 완료.

예시 2: 작성 프롬프트 (Tech 분석)

사용 사례: 리서치 데이터로부터 퍼블리싱 준비된 테크 기사 생성

전문 테크 라이터로서 테크 블로그용 분석 기사 작성

토픽: [TOPIC_NAME]
앵글: [SELECTED_ANGLE]
리서치 데이터: [RESEARCH_JSON]
목표 길이: 1,200-1,500단어
독자: 테크 전문가, 기업가, 애호가
가독성: Grade 9-10 (Hemingway 기준)

구조:
1. 훅 (100-150단어)
   - 구체적인 예시나 놀라운 사실로 시작
   - 일반적인 오프닝 금지 ("In today's digital landscape...")
   - 지금 왜 중요한지 독자 끌어당기기

2. 맥락 (200-250단어)
   - 무슨 일이 일어나고 있나? (뉴스/이벤트)
   - 누가 관련돼 있나? (핵심 플레이어)
   - 왜 지금? (타이밍/촉매)
   - 역사적 선례 (간단한 비교)

3. 분석 (600-800단어) - 핵심
   - 네 독특한 앵글 (이 기사가 존재하는 이유)
   - 데이터, 인용, 예시로 뒷받침
   - 반론 다루기
   - 가독성 위해 H3 헤더로 부섹션

4. 영향 (200-300단어)
   - 그래서 뭐? 독자가 왜 신경써야 하나?
   - 누가 이기고 지나?
   - 다음엔 무슨 일?
   - 더 넓은 업계 영향

5. 결론 (100-150단어)
   - 미래 지향적 관점 (요약 아님)
   - 도발적인 엔딩이나 질문
   - "In conclusion..." 금지

음성 & 스타일:
✅ 해야 할 것:
- 능동태 ("Apple launched" not "was launched by Apple")
- 짧은 단락 (최대 2-4문장)
- 다양한 문장 길이
- 일반화보다 구체적 예시
- 가끔 축약형 (it's, doesn't)
- 직접적인 진술

❌ 피해야 할 것:
- AI 클리셰: "delve", "landscape", "robust", "leverage"
- 모호함: "might", "could", "possibly" (진짜 불확실할 때만)
- 수동태
- 일반적인 전환: "Furthermore", "Moreover"
- 사과하는 언어: "It's important to note"

톤: 권위 있지만 거만하지 않게. 분석적이지만 건조하지 않게.

예시 3: 편집 프롬프트 (De-slop AI 콘텐츠)

사용 사례: 초안 기사에서 AI 작성 패턴 제거

AI 생성 콘텐츠 정제 전문 편집자로 작업

작업: 제공된 기사를 편집해 AI 표식 제거하고 가독성 향상

편집 체크리스트:

1. AI 클리셰 제거
- "delve into" → "examine", "explore"
- "landscape" → "industry", "market"
- "robust" → "strong", "effective"
- "leverage" → "use"
- "seamlessly" → 삭제

2. 모호한 언어 제거
- "might be" → "is" (증거 있으면)
- "could potentially" → "could"
- "it appears that" → "data shows"
- "seems to suggest" → "suggests"

3. 수동태 활성화
찾기: "[thing] was [verb]ed by [actor]"
고치기: "[actor] [verb]ed [thing]"

4. 단락 짧게
규칙: 단락당 최대 2-4문장
자연스러운 중단점에서 긴 단락 분할

5. 문장 길이 다양화
리듬 만들기: 짧음(4-8단어), 중간(10-20), 길게(20-30), 짧음

6. 일반적인 것을 구체적으로
- "many users" → "1,247명의 설문 응답자"
- "recently" → "2월 15일"
- "significant increase" → "23% 증가"

7. 중복 제거
같은 요점 반복하는 문장 삭제

8. 단어 선택 개선
- "utilize" → "use"
- "commence" → "start"
- "in order to" → "to"

9. 일반적인 오프닝 고치기
삭제/재작성:
- "In today's digital landscape..."
- "In recent years..."
- "It's no secret that..."

대신: 구체적 예시, 놀라운 사실, 또는 직접 진술

10. 결론 강화
피하기: "In conclusion...", 요약
대신: 도발적 질문, 예측, 영향

가독성 테스트:
- Hemingway Editor: Grade 9 이하 목표
- 소리 내어 읽기: 대화체처럼 들리나?
- 클리셰 카운트: 편집 후 0이어야 함

Part 5: 기술 구현

첫 워크플로우 설정하기

사전 요구사항:

  • Claude Code (또는 동급 AI 코딩 도구)
  • Python 3.9+
  • 버전 관리용 Git
  • 기본적인 터미널/커맨드 라인 지식

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

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

2단계: 의존성 설치

pip install feedparser praw yfinance selenium undetected-chromedriver beautifulsoup4

3단계: 슬래시 커맨드 설정

.claude/commands/collect.md 생성:

# /collect - Collect Tech News

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

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

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

Alternative AI 도구

이 가이드는 예시로 Claude Code를 사용하지만, 아키텍처는 어떤 AI 도구든 작동한다. 적응하는 방법:

GPT-4 (OpenAI API)

강점:

  • 훌륭한 지시 따르기와 추론
  • 빠른 API 응답
  • 모든 언어용 SDK가 있는 잘 문서화된 API
  • 함수 호출 지원 (구조화된 데이터 추출에 유용)

약점:

  • 긴 컨텍스트엔 Claude보다 비쌈 ($10/1M 입력 토큰 vs $3/1M)
  • 더 짧은 컨텍스트 윈도우 (128K vs Claude의 200K)
  • 약간 더 장황한 출력 (de-slopping 더 필요)

구현 팁:

  • gpt-4-turbo나 gpt-4o 모델 사용
  • 프롬프트 간결하게—GPT-4는 짧은 지시 선호
  • 형식화된 텍스트 요청 대신 JSON 출력엔 함수 호출 사용
  • 장황함 줄이려면 프롬프트에 "Be concise" 추가

비용 비교 (기사당):

  • 수집/분석: ~$0.05-0.10
  • 작성: ~$0.15-0.25
  • 총: ~$0.20-0.35/기사 (Claude의 ~$0.10-0.20 대비)

코드 예시:

from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY")

response = client.chat.completions.create(
    model="gpt-4-turbo",
    messages=[
        {"role": "system", "content": "You are a tech news analyst."},
        {"role": "user", "content": prompt}
    ],
    temperature=0.7
)

Gemini (Google AI)

강점:

  • 엄청난 컨텍스트 윈도우 (Gemini 1.5 Pro에서 1M 토큰)
  • 단일 프롬프트에 전체 리서치 데이터셋 처리 가능
  • 좋은 다국어 지원
  • 무료 티어 (60 요청/분)

약점:

  • Claude/GPT-4보다 일관성 떨어지는 지시 따르기
  • 프롬프트에 더 많은 예시 필요 (few-shot learning)
  • 출력 품질 변동 큼 (재시도 로직 필요)
  • AI 클리셰 피하기 약함

구현 팁:

  • 거대 컨텍스트 윈도우 활용—모든 리서치 데이터를 프롬프트에 직접 덤프
  • 원하는 출력 형식 2-3개 예시 제공 (few-shot prompting)
  • 더 창의적인 작성엔 temperature 0.8-0.9 설정
  • 항상 de-slop 편집 패스 실행 (Claude보다 AI 표식 많음)
  • 최고 품질엔 Gemini 1.5 Pro 사용 (Flash는 너무 불일치)

최적 사용 사례: 리서치 단계—50개 기사 + 전체 텍스트를 먹이고 합성 요청

Local LLM (Ollama, LM Studio)

강점:

  • 제로 API 비용 (하드웨어 투자 후)
  • 완전한 데이터 프라이버시 (아무것도 머신 밖으로 안 나감)
  • Rate limit 없음
  • 작성 스타일로 파인튜닝 가능

약점:

  • GPT-4/Claude 대비 상당한 품질 갭 (특히 분석)
  • 강력한 GPU 필요 (좋은 모델엔 24GB+ VRAM)
  • 느린 추론 (기사당 30-60초)
  • 더 많은 프롬프트 엔지니어링 필요

추천 모델:

  • Llama 3.1 70B: 최고 오픈소스, 48GB VRAM 필요
  • Mixtral 8x7B: 품질/속도 균형 좋음, 24GB VRAM
  • Llama 3.1 8B: 가장 빠름, 소비자 GPU 작동, 품질은 떨어짐

품질 기대치:

  • 수집/분석: GPT-4의 80% (수용 가능)
  • 작성: 60-70% (많은 편집 필요)
  • 리서치 합성: 50% (복잡한 추론에서 어려움)

하이브리드 접근 (추천):

  • 수집/분석엔 로컬 LLM (API 비용 60% 절약)
  • 작성엔 Claude/GPT-4 (여기서 품질 중요)
  • 편집엔 로컬 LLM (규칙 기반 작업, 잘 작동)

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"]

모니터링 & 디버깅

모든 것 로깅:

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 로그인 후 댓글 작성
첫 댓글을 남겨보세요!