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
문서 구성
- 아키텍처 — 시스템 구조 + 의사결정 기록 (ADR)
- 데이터 카탈로그 — 수집 데이터 명세, DB 스키마, 품질 기준
- 운영 가이드 — 일상 운영, 트러블슈팅, 소스 추가 절차