개발 환경 설정 가이드

프로젝트: 블로그 홈판 노출 및 수익 극대화 자동화
버전: v3.0
최후 업데이트: 2026-05-12
개발 시작: 2026-05-20


1. 환경 준비

1.1 Python 설치

# Python 3.11+ 확인
python --version
# 또는
python3 --version

macOS/Linux 사용자: python3 사용 권장
Windows 사용자: PowerShell에서 python 사용

1.2 프로젝트 디렉토리 구조

20-Personal/projects/블로그-홈판-노출-수익화-자동화-프로젝트/
├── README.md                      (프로젝트 개요)
├── requirements.txt               (의존성)
├── DEV_SETUP.md                   (이 파일)
├── .env.example                   (환경 변수 템플릿)
├── .env                           (실제 API 키 - gitignore 필수)
│
├── src/
│   ├── __init__.py
│   ├── main.py                    (메인 엔트리포인트)
│   │
│   ├── modules/
│   │   ├── __init__.py
│   │   ├── module_1_subject.py    (주제 선정)
│   │   ├── module_2_title.py      (제목 생성)
│   │   ├── module_3_content.py    (본문 생성)
│   │   ├── module_4_image.py      (이미지 URL 추천)
│   │   ├── module_5_hashtag.py    (해시태그)
│   │   └── module_6_link.py       (제휴 링크)
│   │
│   ├── utils/
│   │   ├── __init__.py
│   │   ├── claude_api.py          (Claude API 래퍼)
│   │   ├── web_crawler.py         (Selenium 크롤러)
│   │   ├── image_search.py        (Unsplash/Pexels API)
│   │   ├── quality_filter.py      (품질 검증)
│   │   └── logger.py              (로깅)
│   │
│   └── config/
│       ├── __init__.py
│       ├── settings.py            (설정 파일)
│       └── prompts.py             (Claude 프롬프트 템플릿)
│
├── data/
│   ├── cache/                     (로컬 캐시, gitignore)
│   └── logs/                      (실행 로그)
│
├── tests/
│   ├── __init__.py
│   ├── test_modules.py
│   └── test_utils.py
│
└── docs/
    ├── API_SETUP.md               (API 키 설정 가이드)
    ├── TECH_STACK_VALIDATION.md   (기술 스택 검증 결과)
    └── WORKFLOW.md                (일일 워크플로우 가이드)

1.3 가상 환경 설정

# 가상 환경 생성
python -m venv venv
 
# 활성화
# Windows:
venv\Scripts\activate
 
# macOS/Linux:
source venv/bin/activate
 
# 의존성 설치
pip install -r requirements.txt

2. API 키 설정

2.1 환경 변수 파일 생성

# .env.example 복사
cp .env.example .env

2.2 필수 API 키

# Anthropic Claude API
ANTHROPIC_API_KEY=sk-ant-...
 
# Unsplash API (이미지 검색)
UNSPLASH_ACCESS_KEY=your-access-key
UNSPLASH_SECRET_KEY=your-secret-key
 
# Pexels API (이미지 검색)
PEXELS_API_KEY=your-api-key
 
# Google API (선택: Trends, Custom Search)
GOOGLE_API_KEY=your-api-key
GOOGLE_SEARCH_ENGINE_ID=your-engine-id
 
# Naver API (선택: 상품 검색)
NAVER_CLIENT_ID=your-client-id
NAVER_CLIENT_SECRET=your-secret
 
# Coupang API (선택: 제휴)
COUPANG_API_KEY=your-api-key
COUPANG_SECRET_KEY=your-secret
 
# 개발/배포 모드
ENVIRONMENT=development  # development | production
DEBUG=true

2.3 API 승인 신청 (Immediate - 2026-05-20)

API서비스상태일정
Anthropic ClaudeLLM✅ 기존 사용-
Unsplash이미지 검색⏳ 신청 필요2026-05-15
Pexels이미지 검색⏳ 신청 필요2026-05-15
Google Trends트렌드⏳ 신청 필요2026-05-18
Naver API상품 검색⏳ 신청 필요2026-05-18

3. 기술 스택 검증 (2026-05-20 ~ 2026-05-25)

3.1 검증 항목

[ ] Anthropic Claude API 호출 속도 (1000자 생성 시간)
[ ] Unsplash API 응답 속도 (100회 요청)
[ ] Pexels API 응답 속도 (100회 요청)
[ ] Selenium 크롤링 안정성 (네이버 홈판 10회)
[ ] 이미지 라이선스 검증 정확도 (50개 샘플)
[ ] Claude Vision 이미지 평가 속도 (선택)
[ ] 데이터베이스 성능 (SQLite 읽기/쓰기 1000회)
[ ] 메모리 사용량 (월 50편 시뮬레이션)

3.2 검증 스크립트

경로: src/validation/tech_stack_test.py

# 구현 일정: 2026-05-20 ~ 2026-05-22
# 테스트 실행: python -m tests.test_modules

테스트 항목:

  1. Claude API 비용 계산
  2. 이미지 검색 응답 속도 (평균, 최대, 최소)
  3. 크롤링 안정성 (성공률)
  4. 라이선스 검증 정확도
  5. 데이터베이스 쿼리 성능

4. 개발 환경 체크리스트

Phase 0: 초기 설정 (2026-05-12 ~ 2026-05-19)

  • Python 3.11+ 설치
  • 가상 환경 구성
  • requirements.txt 의존성 설치
  • .env 파일 생성 및 API 키 입력
  • Git 레포지토리 초기화
  • .gitignore 설정 (.env, venv/, data/, __pycache__)

Phase 1: 기술 스택 검증 (2026-05-20 ~ 2026-05-25)

  • API 승인 완료 (Unsplash, Pexels, Google Trends)
  • Claude API 호출 테스트
  • 이미지 API 테스트 (Unsplash + Pexels)
  • Selenium 크롤링 테스트
  • 성능 측정 및 문서화
  • 비용 예측 산출

Phase 2: 개발 환경 구성 (2026-05-26 ~ 2026-05-31)

  • 디렉토리 구조 생성
  • 모듈별 스켈레톤 코드 작성
  • 설정 파일 (config.py, prompts.py)
  • 유틸리티 함수 작성 (Claude API, 크롤러)
  • 로깅 설정
  • 데이터베이스 스키마 정의 (SQLite)

Phase 3: 테스트 환경 (2026-06-01 ~ 2026-06-07)

  • 단위 테스트 작성 (각 모듈)
  • 통합 테스트 작성 (Module 1 → 2 → 3 순차)
  • Mock 데이터 준비
  • CI/CD 설정 (GitHub Actions)

5. 실행 방법

5.1 개발 모드 실행

# 가상 환경 활성화
source venv/bin/activate  # macOS/Linux
# 또는
venv\Scripts\activate     # Windows
 
# 메인 스크립트 실행
python -m src.main --mode=dev --module=1
 
# 특정 모듈만 테스트
python -m pytest tests/test_modules.py::TestModule1 -v

5.2 자동화 스케줄 실행 (프로덕션)

# 프로덕션 모드
python -m src.main --mode=prod --schedule=daily
 
# 로그 확인
tail -f data/logs/$(date +%Y-%m-%d).log

6. 트러블슈팅

6.1 API 관련 이슈

문제원인해결
401 UnauthorizedAPI 키 만료.env 파일 확인 및 갱신
429 Too Many Requests요청 초과요청 간격 증가 (1초 → 2초)
400 Bad Request잘못된 파라미터프롬프트/검색어 인코딩 확인

6.2 크롤링 관련 이슈

문제원인해결
Selenium 타임아웃네트워크 지연timeout 값 증가 (10초 → 30초)
이미지 라이선스 검증 실패API 응답 지연재시도 로직 추가

6.3 메모리/성능 이슈

문제원인해결
메모리 누수캐시 미정리data/cache/ 정기 정리
느린 쿼리데이터베이스 인덱스 부족SQLite 인덱스 생성

7. 다음 단계

2026-05-20 (개발 시작)

  1. 기술 스택 검증

    • API 속도/비용 측정
    • 성능 임계값 설정
    • 문서화: docs/TECH_STACK_VALIDATION.md
  2. API 키 설정 완료

    • Unsplash, Pexels 승인 확인
    • .env 파일 완성
  3. 개발 환경 구성

    • Python 프로젝트 디렉토리 생성
    • 모듈별 스켈레톤 작성

2026-06-01 (Module 1-2 개발)

  • Module 1: 주제 선정 자동화
  • Module 2: 제목 자동 생성
  • A/B 테스트 프레임워크

참고: 모든 개발 진행 상황은 20-Personal/log.md에 기록합니다.