콘텐츠로 이동

trend-collector

실시간 트렌드 데이터를 수집(Scrape) → 파싱(Parse) → 저장(Store) 하는 데이터 파이프라인.

파이프라인 흐름

┌──────────┐    ┌──────────────┐    ┌──────────────┐
│  Step 1   │    │    Step 2     │    │    Step 3     │
│  Scrape   │───▶│  Bronze 저장  │───▶│   DB 저장     │
│  (수집)   │    │   (RustFS)    │    │   (MySQL)     │
└──────────┘    └──────────────┘    └──────────────┘
Step 역할 저장소
Scrape HTTP 요청 + HTML 파싱 메모리
Bronze 원본 HTML + 파싱 JSON 보존 RustFS (S3)
DB 정규화된 트렌드 데이터 적재 MySQL

현재 지원 소스

소스 데이터 수집 주기
다음 (DAUM) 실시간 트렌드 Top 10 60분

기술 스택

분류 기술
언어 Python 3.9+
HTTP/파싱 requests, BeautifulSoup4
ORM SQLAlchemy 2.0
스토리지 boto3 (RustFS/S3)
스케줄러 APScheduler
인프라 Docker, MySQL 8.0, RustFS

빠른 시작

# 로컬 실행
pip install -e ".[dev]"
PYTHONPATH=src python -m trend_collector.main

# Docker 실행 (105번 Dev 서버)
docker build -t trend-collector:dev .
docker compose up -d

문서 구성