본문 바로가기
Project/🚀 AI Finance 2026

#1 Alchemetric 프로젝트 개발 명세서

by 로띠 2026. 2. 3.

DOCUMENT No. 00

Alchemetric 프로젝트 개발 명세서

통합문서 (Master Specification)

프로젝트명Alchemetric — AI 기반 퀀트 트레이딩 플랫폼
문서 버전v3.1
작성일2026-03-13
기술 스택FastAPI · PostgreSQL · Streamlit · scikit-learn · PyTorch · Stable-Baselines3 · KR-FinBert-SC · Docker

AlchemetricAlchemy(연금술)Metric(지표)의 합성어로, 시장 데이터를 가치 있는 투자 시그널로 변환한다는 의미를 담고 있습니다.

한국·미국 주식 시장의 가격 데이터, 재무제표, 거시경제 지표, 뉴스 센티먼트, DART 공시, KRX 수급까지 — 다양한 원재료를 수집하고, 전통 퀀트부터 머신러닝·NLP·딥러닝까지 여러 분석 기법을 거쳐 최종 매매 시그널을 만들어내는 개인 프로젝트입니다.
수집·분석된 데이터와 LLM을 결합한 시장 리포트를 자동 생성하여 구독자에게 발송하며, 모의투자 및 실매매 기능을 지원합니다.
이 문서는 Alchemetric의 전체 설계와 구현 현황을 정리한 통합 명세서입니다.

1. 프로젝트 개요

프로젝트명Alchemetric
목적한국/미국 주식 시장을 대상으로 데이터 수집 → 분석 → 예측 → 매매까지 전 과정을 자동화하는 AI 기반 퀀트 트레이딩 플랫폼 구축
대상 시장KOSPI, KOSDAQ, NYSE, NASDAQ
핵심 전략머신러닝 + 딥러닝 + 강화학습 + 뉴스 센티먼트 복합 전략
배포 방식Docker Compose (4개 서비스: API · DB · User Dashboard · Admin Dashboard)
모듈 수총 10개 모듈 (Module 0 ~ Module 9)

2. 시스템 아키텍처

  ┌───────────────────────────────────────────────────────────────────────────────┐
                          EXTERNAL DATA SOURCES                                
  ├─────────┬────────┬─────────┬─────────┬─────────┬─────────┬─────────┬──────────┤
yfinance   FDR   KIS API DART API   FRED     Naver  KIS API     KRX    
(주가+    (KR3Y (펀더멘털)(재무+공시)(기준금리 News API(수급       (섹터   
 거시7)   국채)                    DXY,CPI)(NLP분석) 데이터)     데이터)  
  └────┬────┴───┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴─────┬────┘
                                                                     
       └────────┴─────────┴─────────┴─────────┴─────────┴─────────┴──────────┘
                                       
                   ┌───────────────────┼───────────────────┐
                                                         
         ┌─────────────────┐ ┌────────────────┐ ┌────────────────┐
            M0: 데이터 수집       M1: 데이터       M2: 피처       
            (원시 데이터)         분석 (NLP)       엔지니어링      
         └────────┬────────┘ └───────┬────────┘ └───────┬────────┘
                  └──────────────────┴──────────────────┘
                                       
                             ┌─────────▼─────────┐
                                PostgreSQL 15    :5432
                                feature_store   
                             └─────────┬─────────┘
                                       
                             ┌─────────▼─────────┐
                               M3: ML / M4: DL+RL 
                                 (학습/예측)      
                             └─────────┬─────────┘
                                       
                             ┌─────────▼─────────┐
                                 M5: 백테스팅*    
                                 (전략 검증)      
                             └─────────┬─────────┘
                                       
                ┌─────────────┬────────┴───────┬─────────────┐
                                                          
      ┌────────────────┐ ┌───────────┐ ┌───────────┐ ┌──────────────┐
         M6: 매매*        M7: User   M8: Admin     M9: 리포트*  
          (모의+실매매)      Dash        Dash        (구독 서비스) 
      └────────────────┘   :8501        :8502    └──────────────┘
                         └───────────┘ └───────────┘

      ■ 완료     ■ 부분     ■ 개발 예정 (*)
      예정 데이터 소스: Google Trends (검색량), Naver 커뮤니티 (토론방)
  

3. 기술 스택

계층 기술 용도
Backend APIFastAPI, UvicornREST API 서버, 비동기 처리
DatabasePostgreSQL 15, SQLite운영 DB(PostgreSQL), 개발용(SQLite)
ORMSQLAlchemy 2.0+DB 추상화, 모델 정의
데이터 수집yfinance, FDR, opendartreader, FRED API, Naver News API주가, 거시지표, 재무제표, 뉴스, 공시, 수급 수집
ML / DLscikit-learn, XGBoost, LightGBM, Optuna, PyTorch분류 모델, 딥러닝 시계열 분류, 하이퍼파라미터 튜닝
DL / RLPyTorch, Stable-Baselines3, GymnasiumLSTM, Transformer 시계열 분류, DQN/PPO 강화학습 매매 에이전트
NLPKR-FinBert-SC, transformers뉴스 센티먼트 분석 (한국어 금융 특화)
스케줄링APSchedulerStep 기반 파이프라인 자동화 (10단계 핸들러 레지스트리)
대시보드Streamlit, Plotly사용자/관리자 UI
매매 API (계획)KIS API, Alpaca API한국/미국 주식 실매매
배포Docker, docker-compose컨테이너 기반 배포

4. 모듈 구성 총괄

No. 모듈명 목적 상태
0데이터 수집주가, 펀더멘털, 거시경제, 뉴스, 공시, 수급 데이터 수집완료
1데이터 분석뉴스 NLP (KR-FinBert-SC), DART 공시 센티먼트, 대안 데이터완료
2피처 엔지니어링7-Phase 피처 생성 (75개, 2-Pass 아키텍처)완료
3머신러닝RF/XGB/LGBM 모델, Optuna 하이퍼파라미터 튜닝완료
4딥러닝LSTM/Transformer 시계열 분류, DQN/PPO 강화학습완료
5백테스팅 및 포트폴리오전략 검증, 포트폴리오 최적화예정
6매매 시스템모의투자 + 실매매 (KIS/Alpaca)예정
7사용자 대시보드시장 현황, 투자 인사이트 시각화완료
8관리자 대시보드시스템 모니터링, ML 관리 (12페이지)완료
9리포트 + 구독시장 리포트 자동 생성, LLM 요약, 3채널 구독 발송예정

5. Module 0 — 데이터 수집

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 한국/미국 주식 데이터, 거시경제, 뉴스, 공시, 수급 자동 수집
상태: 구현 완료

5.1 수집 데이터 범위

카테고리소스항목상태
주가yfinance, FDRKOSPI/KOSDAQ/NYSE/NASDAQ 일별 OHLCV완료
펀더멘털KIS APIPER, PBR, EPS, 시가총액, 외국인비율완료
재무제표DART APIROE, 부채비율, 매출액 (분기)완료
거시경제yfinance, FDR, FRED APIKRW/USD, VIX, KOSPI, S&P500, WTI, Gold, US10Y, KR3Y, 기준금리, 달러인덱스, CPI (11개)완료
뉴스Naver News API종목별 뉴스 수집 + KR-FinBert-SC 센티먼트 분석완료
공시DART API공시 목록 수집, 공시 유형 분류, 센티먼트 분석완료
수급KIS API (KRX)공매도 거래량/비율, 프로그램매매 순매수완료
섹터KRX 등업종 수익률, 업종 내 상대강도완료
Google TrendsGoogle Trends API검색량 트렌드 수집완료
커뮤니티네이버 종목토론방게시글/댓글 활성도 수집완료

5.2 API 엔드포인트

MethodEndpoint설명
POST/stocks/collect데이터 수집 실행
GET/stocks/prices/code/{code}종목별 주가 조회
GET/stocks/prices/sector/{sector}섹터별 주가 조회
POST/macro/collect거시경제 지표 수집
GET/macro/latest최신 거시지표 조회
GET/macro/{indicator_name}개별 거시지표 조회
POST/news/collect뉴스 수집 + 센티먼트 분석
GET/news/sentiment/{market}/{code}종목별 센티먼트 조회
POST/disclosure/collectDART 공시 수집
GET/disclosure/list종목별 공시 목록 조회
POST/disclosure/supply/collectKRX 수급 데이터 수집
GET/disclosure/supply/{market}/{code}종목별 수급 시계열 조회

5.3 데이터 모델

CREATE TABLE stock_price (
    id            SERIAL PRIMARY KEY,
    market        VARCHAR(10) NOT NULL,  -- KOSPI, KOSDAQ, NYSE, NASDAQ
    code          VARCHAR(20) NOT NULL,
    date          DATE NOT NULL,
    open/high/low/close  DECIMAL(15,2),
    volume        BIGINT,
    UNIQUE(market, code, date)
);

CREATE TABLE macro_indicator (
    id              SERIAL PRIMARY KEY,
    date            DATE NOT NULL,
    indicator_name  VARCHAR(50) NOT NULL,  -- krw_usd, vix, fed_rate, dxy, cpi ...
    value           DECIMAL(20,6),
    UNIQUE(date, indicator_name)
);

CREATE TABLE news_article (
    id, market, code, title, description,
    source, published_at, url,
    sentiment_score, sentiment_label,   -- KR-FinBert-SC 분석 결과
    UNIQUE(market, code, url)
);

CREATE TABLE dart_disclosure (
    id, market, code, report_nm, rcept_no,
    rcept_dt, disclosure_type, sentiment,
    UNIQUE(market, code, rcept_no)
);

CREATE TABLE krx_supply_demand (
    id, market, code, date,
    short_selling_volume, short_selling_ratio,
    program_buy_volume, program_sell_volume, program_net_volume,
    UNIQUE(market, code, date)
);

CREATE TABLE alternative_data (
    id, market, code, date,
    source,                       -- google_trends, naver_community
    google_trend_score, google_trend_momentum,
    community_post_volume, community_comment_volume,
    community_engagement_ratio,
    UNIQUE(market, code, date, source)
);

CREATE TABLE job_step (
    id, job_id,                   -- FK → schedule_job
    step_type,                    -- price|fundamental|...|ml (10종)
    step_order,                   -- 1~10 실행 순서
    enabled,                      -- 개별 스텝 활성화
    config,                       -- JSON (ML 설정 등)
    UNIQUE(job_id, step_type)
);
  

5.4 사용 라이브러리

FinanceDataReader yfinance opendartreader fredapi pandas SQLAlchemy APScheduler transformers KR-FinBert-SC

6. Module 1 — 데이터 분석

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 뉴스/공시/대안 데이터 NLP 기반 분석
상태: 구현 완료 — 뉴스 NLP + DART 공시 센티먼트 + 대안 데이터

6.1 분석 대상 데이터

데이터소스분석 방법상태
뉴스 센티먼트Naver News APIKR-FinBert-SC 기반 감성 점수 산출 (긍정/부정/중립)완료
DART 공시 이벤트DART API공시 유형 분류, 센티먼트 분석, 주가 영향 이벤트 탐지완료
대안 데이터Google Trends 등Google Trends 검색량, 네이버 커뮤니티 활성도 수집 + 피처 생성완료

6.2 주요 기능

기능설명상태
뉴스 수집 파이프라인Naver News API 기반 종목별 뉴스 자동 수집 및 저장완료
센티먼트 분석KR-FinBert-SC 한국어 금융 특화 모델 기반 감성 점수 산출완료
공시 이벤트 탐지DART 공시 수집, 유형 분류 및 센티먼트 분석완료
ML 피처 통합Phase 4(뉴스 5개) + Phase 5(공시+수급 10개) 피처를 feature_store에 병합완료
대안 데이터 수집검색 트렌드, 커뮤니티 활성도 수집완료

6.3 사용 라이브러리

requests transformers KR-FinBert-SC opendartreader

7. Module 2 — 피처 엔지니어링

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 수집·분석 데이터를 ML/DL 학습용 피처로 변환
상태: 구현 완료 — Phase 1~7 (75개) 완료, 2-Pass 아키텍처

7.1 기술적 지표

카테고리지표API
이동평균SMA(5,20,60), EMA(12,26)/indicators/sma, /indicators/ema
모멘텀RSI(14), MACD(12,26,9)/indicators/rsi, /indicators/macd
변동성Bollinger Bands(20,2), ATR/indicators/bollinger
거래량OBV, Volume Ratio/indicators/obv

7.2 피처 Phase 구성 (7-Phase, 75개)

Phase수량피처 목록상태
Phase 1
기술적 지표
24개close, return_1d/5d/20d, volatility_20d, volume_ratio, sma_5/20/60, ema_12/26, rsi_14, macd, macd_signal, macd_histogram, bb_upper/middle/lower/width/pctb, obv, price_to_sma20/60, golden_cross, rsi_zone완료
Phase 2
펀더멘털
+9개per, pbr, eps, market_cap, foreign_ratio, inst_net_buy, foreign_net_buy, roe, debt_ratio완료
Phase 3
거시경제
+11개krw_usd, vix, kospi_index, us_10y, kr_3y, sp500, wti, gold, fed_rate, dxy, cpi완료
Phase 4
뉴스 센티먼트
+5개news_sentiment_avg, news_sentiment_std, news_positive_ratio, news_count_7d, news_sentiment_momentum완료
Phase 5
DART 공시 + 수급
+10개disclosure_count_30d, days_since_disclosure, disclosure_sentiment, disclosure_type_score, disclosure_volume_change, short_selling_volume, short_selling_ratio, program_buy_volume, program_sell_volume, program_net_volume완료
Phase 6
섹터/상대강도
+10개sector_return_1d/5d, relative_strength_1d/5d/20d, sector_momentum_rank, sector_breadth, news_relevance_ratio, news_sentiment_filtered, sector_news_sentiment완료
Phase 7
대안 데이터
+6개google_trend_score, google_trend_momentum, community_post_volume, community_comment_volume, community_engagement_ratio, alternative_activity_index완료

7.3 feature_store 데이터 모델

CREATE TABLE feature_store (
    market, code, date,           -- PK: UNIQUE(market, code, date)
    -- Phase 1 (24): close, return_1d, ..., rsi_zone
    -- Phase 2 (+9): per, pbr, eps, market_cap, foreign_ratio, ...
    -- Phase 3 (+11): krw_usd, vix, kospi_index, ..., fed_rate, dxy, cpi
    -- Phase 4 (+5): news_sentiment_avg/std, positive_ratio, count_7d, momentum
    -- Phase 5 (+10): disclosure_count/days/sentiment/type/volume, short_selling, program_*
    -- Phase 6 (+10): sector_return_*, relative_strength_*, sector_momentum_rank, sector_breadth, news_*_filtered/ratio, sector_news_sentiment
    -- Phase 7 (+6): google_trend_*, community_*, alternative_activity_index
    -- Targets: target_class_1d/5d, target_return_1d/5d
    -- 현재 총 75개 피처
);
  

7.4 사용 라이브러리

pandas numpy scipy

8. Module 3 — 머신러닝

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 머신러닝 모델을 활용한 주가 예측 및 시그널 생성
상태: 구현 완료 — 5개 알고리즘 (ML 3종 + DL 2종), Optuna 튜닝

8.1 ML 파이프라인 (10-Step)

1. 가격 수집 2. KIS 수집 3. DART 수집 4. 거시 수집 5. 뉴스 수집 6. 공시 수집 7. 수급 수집 8. 대안 수집 9. 피처 계산 10. 학습/예측

8.2 알고리즘 및 학습 설정

알고리즘주요 하이퍼파라미터최적화
Random Forestn_estimators, max_depth, min_samples_split, class_weightOptuna F1
XGBoostlearning_rate, max_depth, subsample, colsample_bytreeOptuna F1
LightGBMnum_leaves, learning_rate, feature_fraction, bagging_fractionOptuna F1

Train/Val Split: 시계열 분할 (train 85% / val 15%) · Scaler: RobustScaler · Optuna 기본 50 trials

8.3 시그널 생성 로직

# Classification (target_class_1d / target_class_5d)
probability_up >= 0.6  →  BUY
probability_up <= 0.4  →  SELL
0.4 < probability_up < 0.6  →  HOLD

# Confidence = max(prob_up, 1 - prob_up)
  

8.4 API 엔드포인트

MethodEndpoint설명
POST/ml/features/compute피처 계산 (Module 2 연동)
POST/ml/train모델 학습
GET/ml/models모델 목록 조회
POST/ml/predict/{code}종목 예측
GET/ml/predictions예측 결과 목록
GET/ml/feature-importance/{model_id}피처 중요도

8.5 데이터 모델

CREATE TABLE ml_model (
    id, model_name, model_type, algorithm, market,
    target_column, hyperparameters, feature_columns,
    accuracy, precision, recall, f1, auc_roc,
    model_path, is_active, version,
    UNIQUE(model_name, version)
);

CREATE TABLE ml_prediction (
    id, model_id, market, code,
    prediction_date, target_date,
    predicted_class, probability_up, probability_down,
    signal, confidence,                -- BUY/SELL/HOLD
    UNIQUE(model_id, market, code, prediction_date)
);

CREATE TABLE ml_training_log (
    id, model_id, algorithm, status,   -- running/success/failed
    metrics_json, feature_importance_json,
    optuna_trials, best_trial_value
);
  

8.6 사용 라이브러리

scikit-learn XGBoost LightGBM Optuna joblib

9. Module 4 — 딥러닝

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 딥러닝 모델을 활용한 시계열 분류 예측
상태: Phase 8A + 8B 완료 — LSTM + Transformer 시계열 분류, DQN/PPO 강화학습 매매 에이전트, Optuna DL/RL 튜닝

9.1 구현 현황

기능설명상태
Bidirectional LSTM2-layer BiLSTM → FC head → 이진 분류 (상승/하락)완료
Transformer EncoderMulti-head Attention + Positional Encoding → Mean Pooling → 이진 분류완료
Optuna DL 튜닝seq_len, hidden_size, d_model, nhead, lr, dropout 등 아키텍처별 탐색완료
시퀀스 파이프라인FeatureStore → 종목별 슬라이딩 윈도우 → (N, seq_len, 75) 텐서 변환완료
강화학습DQN, PPO 기반 매매 에이전트 (Phase 8B) — Gymnasium 환경, SB3, Optuna RL 튜닝완료
멀티모달 입력가격 시계열 + 뉴스 임베딩 통합예정

9.2 사용 라이브러리

PyTorch Stable-Baselines3 Gymnasium Optuna scikit-learn (Scaler, Imputer)

10. Module 5 — 백테스팅 및 포트폴리오 최적화

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: ML/DL 전략의 과거 성과 검증 및 최적 포트폴리오 구성
상태: 개발 예정

10.1 계획된 주요 기능

기능설명
백테스팅 엔진과거 데이터 기반 전략 시뮬레이션 및 성과 분석
성과 지표수익률, 샤프비율, MDD, 승률 등
포트폴리오 최적화효율적 프론티어, 리스크 패리티
벤치마크 비교KOSPI/S&P500 대비 초과 수익률

10.2 사용 라이브러리 (예정)

backtrader vectorbt scipy cvxpy

11. Module 6 — 매매 시스템

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 모의투자 및 실매매
상태: 개발 예정 — KIS API 인프라(데이터 수집용)만 구축 완료

11.1 계획된 주요 기능

기능설명
모의투자KIS 모의키(KIS_MOCK_*), Alpaca Paper Trading
한국 주식 실매매한국투자증권 KIS API (실전/모의 키 분리 완료)
미국 주식 실매매Alpaca API (Paper/Live Trading)
주문 관리시장가/지정가 주문, 주문 취소/수정
포지션/리스크 관리최대 포지션 비율, 손절/익절 로직
주문 체결 알림Slack 연동 (인프라 구축 완료)

11.2 사용 라이브러리 (예정)

한국투자증권 API pykis Alpaca API

12. Module 7 — 사용자 대시보드

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 실시간 시장 현황 및 투자 인사이트 시각화
상태: 구현 완료 (4페이지)

12.1 페이지 구성 (Port 8501)

페이지기능
Stock Analysis개별 종목 차트, 기술적 지표, 펀더멘털 분석
Market Overview시장 전체 트렌드, 주요 지수 현황
Sector View섹터별 성과 비교, 분석
News Sentiment종목별 뉴스 센티먼트 추이, 긍정/부정 비율, 최근 뉴스 목록

12.2 향후 확장 계획

  • 수익률 레이스 차트 (Bar Chart Race)
  • 추천 종목 및 급등 섹터 표시
  • 포트폴리오 보유 종목, 수익률 추이
  • 금/비트코인/환율 실시간 모니터링

13. Module 8 — 관리자 대시보드

수집 분석 피처 ML DL 백테스트 매매 대시보드
목적: 시스템 설정 관리 및 모니터링
상태: 구현 완료 (12페이지)

13.1 페이지 구성 (Port 8502)

No.페이지기능
1Server Status서버 가동시간, 버전, 헬스체크
2DB Status테이블별 행 수, 날짜 범위, 마켓 커버리지
3Log Viewer파일 선택, 레벨 필터, 텍스트 검색
4Config Viewer설정값 확인 (시크릿 마스킹)
5Scheduler ManagerStep 기반 파이프라인 CRUD, 수동 실행, 프리셋
6Fundamental ManagerKIS/DART 데이터 수집 UI
7Macro Manager거시경제 지표 수집 (yfinance + FRED)
8News Manager뉴스 수집 + NLP 센티먼트 분석 관리
9Disclosure ManagerDART 공시 수집 + KRX 수급 관리
10ML Train Manager알고리즘 선택, 학습 실행, 진행률
11ML Models모델 목록, 성능 지표, 피처 중요도
12ML Predictions예측 결과 조회, 시그널 평가

13.2 향후 확장 계획

  • 수익률 레이스 차트 (Bar Chart Race)
  • 모의투자 성과 모니터링
  • 백테스팅 결과 시각화

13.3 Admin API 엔드포인트

MethodEndpoint설명
GET/admin/health헬스체크 + 가동시간
GET/admin/dbDB 상태 + 테이블 통계
GET/admin/logs로그 조회
POST/admin/scheduler/jobs잡 생성
GET/admin/scheduler/jobs잡 목록
POST/admin/scheduler/jobs/{job_id}/run즉시 실행

14. Module 9 — 리포트 생성 + 구독 서비스

수집 분석 피처 ML DL 백테스트 매매 대시보드 리포트
목적: 시장 리포트 자동 생성 및 구독 서비스 (이메일/카카오톡/Slack)
상태: 개발 예정

14.1 리포트 생성 방식

영역방식상세
구조/레이아웃Jinja2 HTML 템플릿섹션 배치, 표, 인라인 CSS 스타일
차트/그래프matplotlib → PNG이메일 인라인 이미지, 메신저 첨부
핵심 요약/코멘트GPT-4o-mini (LLM)시장 개황, 섹터 분석, 센티먼트 해석, ML 시그널 해석

14.2 시장 리포트 구성

┌─ 시장 개황 요약 (LLM) ─────────────────────────┐
├─ 주요 지수 현황 (표 + 차트) ─────────────────────┤
├─ 거시경제 지표 (표 + 차트) ──────────────────────┤
├─ 상승/하락 TOP 10 (표) ────────────────────────┤
├─ 섹터 퍼포먼스 (차트 + LLM 코멘트) ───────────────┤
├─ 뉴스 센티먼트 (차트 + LLM 코멘트) ───────────────┤
├─ ML 시그널 요약 (파이차트 + 표 + LLM 해석) ───────┤
├─ 종합 전망 (LLM) ─────────────────────────────┤
└─ 면책 조항 / 구독 해지 링크 ─────────────────────┘
  

14.3 구독 발송 채널

채널방식형식
이메일SMTP (stdlib smtplib)HTML multipart/related + CID 인라인 이미지
Slackslack_sdk Block Kit구조화 메시지 + 차트 이미지 업로드
카카오톡나에게 보내기 REST APIFeed 템플릿 (제목 + 요약 + 차트 + 링크)

14.4 데이터 모델

CREATE TABLE report_subscriber (
    id, name, email, slack_user_id,
    kakao_enabled, report_types,       -- ["market"]
    channels, enabled                  -- ["email","slack","kakao"]
);

CREATE TABLE generated_report (
    id, report_type, report_date,
    title, html_content, summary_text,
    data_snapshot, chart_paths, status  -- generated/sent/failed
);

CREATE TABLE report_delivery_log (
    id, report_id, subscriber_id,
    channel, status, error_message,    -- pending/sent/failed
    sent_at
);
  

14.5 파이프라인 흐름

스케줄러 (19:00 KST, 평일)
  │
  ▼
① data_aggregator — 기존 Repo에서 데이터 집계
  ▼
② chart_generator — matplotlib 정적 차트 5종 (PNG)
  ▼
③ llm_summarizer — GPT-4o-mini 시장 요약 (실패 시 템플릿 only)
  ▼
④ template_renderer — Jinja2 HTML 렌더링 (차트 base64 인라인)
  ▼
⑤ DB 저장 (generated_report)
  ▼
⑥ 구독자별 채널 발송 → report_delivery_log
  

14.6 사용 라이브러리 (예정)

jinja2 openai matplotlib smtplib slack_sdk

15. 데이터 흐름도

[ 외부 데이터 소스 ]
 yfinance ──┬─ 주가 (KR/US)
            ├─ 거시지표 7개 (환율,VIX,KOSPI,S&P500,WTI,Gold,US10Y)
 FDR ───────┤─ KR 3Y 국채금리
 FRED API ──┤─ 기준금리, 달러인덱스(DXY), CPI
 KIS API ───┤─ 일별 펀더멘털 (PER,PBR,EPS,외국인비율)
            ├─ KRX 수급 (공매도, 프로그램매매)
 DART API ──┤─ 분기 재무제표 (ROE,부채비율,매출)
            ├─ 공시 목록 + 센티먼트
 Naver ─────┤─ 뉴스 수집 + KR-FinBert-SC NLP 분석
 Google ────┤─ Trends 검색량
 Naver ─────┤─ 종목토론방 활성도
            │
            ▼
[ Module 0: 데이터 수집 ]
 DataPipeline + MacroFetcher + KISFetcher + DARTFetcher
 + NewsFetcher + DisclosureFetcher + KRXFetcher
 + GoogleTrendsFetcher + NaverCommunityFetcher
            │
            ▼
[ PostgreSQL Database ]
 stock_price · stock_info · stock_fundamental
 financial_statement · macro_indicator
 news_article · dart_disclosure · krx_supply_demand · alternative_data
            │
            ▼
[ Module 1: 데이터 분석 ]
 뉴스 NLP (KR-FinBert-SC) · DART 공시 분류 · 대안 데이터*
            │
            ▼
[ Module 2: 피처 엔지니어링 ]
 Phase1~7(75) Features — 2-Pass 아키텍처
            │
            ▼
[ feature_store Table ]
            │
     ┌──────┴──────┐
     ▼             ▼
[ Module 3 ]    [ Module 4 ]
 RF/XGB/LGBM      LSTM/Transformer
 Optuna 튜닝      강화학습*
     │                  │
     └──────┬───────────┘
            ▼
[ ml_prediction: BUY / SELL / HOLD ]
            │
            ▼
[ Module 5: 백테스팅/포트폴리오* ]
 전략 검증 · 포트폴리오 최적화
            │
     ┌──────┼──────┬──────────────┐
     ▼      ▼      ▼              ▼
[ M6* ]  [ M7 ]   [ M8 ]       [ M9* ]
 모의투자  User     Admin        리포트 생성
 실매매    Dash     Dash         구독 발송

* = 개발 예정
  

16. 개발 로드맵 및 진행 현황

Phase 내용 관련 모듈 상태
1 데이터 수집 인프라 + 기술적 지표 + ML 분류 (Phase1 24피처) Module 0, 2, 3 완료
2 펀더멘털 통합 (KIS+DART) + ML Phase2 (33피처) + 관리자 대시보드 Module 0, 2, 3, 8 완료
3 거시경제 지표 11개 (yfinance 8 + FRED 3) + ML Phase3 (44피처) + 영업일 캘린더 Module 0, 2, 3 완료
4 뉴스 센티먼트 수집/분석 (Naver API + KR-FinBert-SC) + ML Phase4 (49피처) Module 0, 1, 2 완료
5 DART 공시 + KRX 수급 (KIS API) + ML Phase5 (69피처) + 어드민 대시보드 확장 Module 0, 1, 2, 8 완료
6 데이터 개선: 섹터/상대강도 + 뉴스 센티먼트 정제 (ML Phase 6 피처 통합) Module 0, 1, 2 완료
7 대안 데이터 (Google Trends, 커뮤니티 활성도) + ML Phase 7 피처 통합 Module 0, 1, 2 완료
8 리포트 생성 + 구독 서비스 (LLM 요약 + 이메일/카카오톡/Slack 발송) Module 9 예정
9 백테스팅 엔진 + 포트폴리오 최적화 Module 5 예정
8A 딥러닝 시계열 분류 (LSTM, Transformer, Optuna DL 튜닝) Module 3, 4 완료
8B 강화학습 매매 에이전트 (DQN, PPO, Gymnasium, SB3, Optuna RL 튜닝) Module 4 완료
11 매매 시스템 (모의투자 + 실매매) + 대시보드 고도화 Module 6, 7, 8 예정