Skip to content

파이프라인 변환 베이스라인과 문서 추가#9

Draft
SakJaeLim wants to merge 1 commit into
developfrom
codex/pipeline-transforms-docs
Draft

파이프라인 변환 베이스라인과 문서 추가#9
SakJaeLim wants to merge 1 commit into
developfrom
codex/pipeline-transforms-docs

Conversation

@SakJaeLim

@SakJaeLim SakJaeLim commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator

개요

이번 PR은 기존 yfinance 수집기와 OhlcvRecord 이후 단계에서 바로 사용할 수 있는 파이프라인 변환 계층과 설계 문서를 추가합니다.

변경 사항

  • pipeline/transforms/finance_metrics.py 추가

    • 수집된 OHLCV 데이터에서 일간 수익률, 장중 변동성, 거래량 변화율, 5일/20일 이동평균을 계산합니다.
    • 급등/급락성 움직임을 리서치 후보 라벨로 분류합니다.
    • 이 라벨은 투자 추천이 아니라 분석 후보 분류 용도입니다.
  • pipeline/transforms/nlp_rules.py 추가

    • 뉴스 제목/본문을 기반으로 감성 라벨, 토픽, 이벤트 후보를 추출하는 규칙 기반 베이스라인을 제공합니다.
    • 향후 News API, Reddit, LLM 기반 추출기로 교체하거나 보강할 수 있는 초기 기준입니다.
  • data/seed/news_seed.csv 추가

    • 뉴스/감성/토픽 변환 흐름을 로컬에서 검증할 수 있는 시드 데이터를 추가했습니다.
  • docs/data_pipeline_design.md, docs/data_contract.md 추가

    • 현재 저장소 구조에 맞춘 데이터 파이프라인 흐름과 데이터 계약을 정리했습니다.
    • 기존 candles 모델과 OhlcvRecord를 기준으로 설계했습니다.
  • README에 개발 문서 링크 추가

  • 신규 단위 테스트 추가

    • 금융 지표 변환 테스트
    • 뉴스 감성/토픽/이벤트 후보 추출 테스트

반영 이유

현재 저장소에는 yfinance 기반 OHLCV 수집기와 Candle 저장소 구조가 이미 있으므로, 같은 수집기를 다시 만드는 것보다 수집 이후 단계인 변환 계층을 먼저 추가하는 것이 더 안전합니다.

이번 변경은 DB 연결이나 외부 API 호출 없이 동작하는 순수 함수 중심이라, 이후 Kafka consumer, Spark job, API service, Neo4j graph loader 어디에서도 재사용하기 쉽습니다.

검증

  • .\.venv\Scripts\python.exe -m pytest tests

    • 결과: 15개 테스트 통과
  • .\.venv\Scripts\python.exe -m ruff check pipeline\transforms tests\unit\test_finance_metrics.py tests\unit\test_nlp_rules.py

    • 결과: 통과
  • .\.venv\Scripts\python.exe -m compileall pipeline tests

    • 결과: 통과

참고 사항

전체 ruff check .는 이번 PR 범위 밖의 기존 파일에서 import 정렬과 긴 줄 이슈가 있어 실패합니다. 해당 파일들은 기존 코드이므로 이번 PR에서는 수정하지 않았습니다.

대상 파일 예시:

  • app/core/config.py
  • app/core/database.py
  • pipeline/collectors/stock_data_collector.py
  • 기존 stock collector 테스트 파일

@SakJaeLim SakJaeLim changed the title [codex] Add pipeline transform baselines and docs 파이프라인 변환 베이스라인과 문서 추가 Jul 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant