데이터 수집 개발

개발자·2025년 10월 18일

AI 주가 예측

목록 보기
3/7

모델 학습 데이터 수집

https://stockman.fly.dev 대시보드 개발에 사용된 학습 데이터 수집 과정을 설명합니다.

📊 수집하는 데이터의 종류

1. KRX 시장 지수 데이터

KOSPI, KOSDAQ 같은 주요 시장 지수의 일별 데이터를 pykrx 를 활용해 수집합니다.

2. 주가(OHLCV) 데이터

개별 종목의 주가 데이터를 pykrx 를 활용해 수집합니다.

  • 시가(Open): 장 시작 가격
  • 고가(High): 당일 최고가
  • 저가(Low): 당일 최저가
  • 종가(Close): 장 마감 가격
  • 거래량(Volume): 거래된 주식 수

이 데이터는 한국거래소(KRX)에서 제공하는 공식 데이터로 2015년부터 현재까지의 과거 데이터를 수집했습니다.

3. 투자자별 매매 동향

투자자별 매매 동향 데이터를 pykrx 를 활용해 수집합니다.

  • 외국인 순매수/순매도 금액
  • 기관 순매수/순매도 금액
  • 투자주체별 거래량

4. 기업 기본 지표(Fundamental)

기업 기본 지표를 pykrx 를 활용해 수집합니다.

  • PER(주가수익비율): 주가가 수익 대비 얼마나 비싼지 판단
  • PBR(주가순자산비율): 주가가 자산 대비 얼마나 비싼지 판단
  • EPS(주당순이익): 한 주당 벌어들이는 이익
  • DIV(배당수익률): 투자금 대비 배당금 비율

5. 거시경제 지표 (ECOS)

한국은행 경제통계시스템(ECOS)에서 제공하는 거시경제 지표를 ECOS Open API 를 활용해 수집합니다.

  • 기준금리: 금리가 오르면 주식 시장에 부정적 영향
  • 환율(USD/KRW): 원달러 환율 변동
  • 물가상승률(CPI): 인플레이션 지표
  • 수출액/수입액: 대외 무역 동향
  • 무역수지: 수출액 - 수입액

6. 기업 재무제표 (DART)

금융감독원 전자공시시스템(DART)에서 기업들이 공시하는 정식 재무제표 데이터를 DART Open API 를 활용해 수집합니다.

  • 매출액: 기업이 벌어들인 총 수익
  • 영업이익: 본업으로 벌어들인 이익
  • 당기순이익: 최종적으로 남은 순이익
  • 총자산: 기업이 보유한 모든 자산
  • 자기자본: 부채를 제외한 순수 자본
  • 부채총계: 기업이 갚아야 할 부채

그리고 이를 기반으로 계산되는 재무 비율들:

  • 부채비율: 자본 대비 부채 비율
  • ROE(자기자본이익률): 자본 대비 수익성
  • ROA(총자산이익률): 자산 대비 수익성
  • 영업이익률, 순이익률: 매출 대비 이익률

7. 네이버 증권 정보

네이버 금융에서 제공하는 증권사 애널리스트들의 종합 의견과 시장 정보입니다. Playwright 로 수집/파싱 합니다.

  • 투자의견 점수: 증권사들의 매수/보유/매도 의견 종합
  • 목표주가: 증권사들이 제시한 목표 주가의 평균
  • 52주 최고가/최저가: 지난 1년간의 주가 범위
  • 예상 PER/EPS: 향후 실적 전망치
  • 동종업종 PER: 같은 업종의 평균 PER
  • 외국인 보유비율: 외국인이 보유한 주식 비중
  • 상장주식수: 전체 발행 주식 수

🔄 데이터 수집 프로세스

자동화된 데이터 파이프라인

모든 데이터는 자동화된 프로세스를 통해 매일 수집됩니다.

  1. 증분 수집 방식: 데이터베이스에서 마지막으로 수집된 날짜를 확인하고, 그 이후의 데이터만 수집합니다. 이를 통해 중복 수집을 방지하고 효율성을 높입니다.

  2. 기간 분할 처리: 장기간의 데이터를 한 번에 수집하면 API 제한에 걸리거나 메모리 문제가 발생할 수 있으므로, 1년 단위로 나누어 수집합니다.

  3. API 호출 제한 준수: 각 API마다 호출 횟수 제한이 있으므로, 요청 사이에 적절한 대기 시간(5~10초)을 두어 안정적으로 데이터를 수집합니다.

  4. 에러 처리: 네트워크 오류나 데이터 품질 문제 등이 발생해도 전체 프로세스가 중단되지 않도록 예외 처리를 구현했습니다.

  5. 데이터 검증: 수집된 데이터의 품질을 검증하여 이상 데이터는 걸러내고, 정상 데이터만 저장합니다.

💾 데이터 저장 방식

모든 데이터는 PostgreSQL 데이터베이스에 저장하고 있습니다.

데이터베이스에 저장함으로써:

  • 대용량 데이터를 효율적으로 관리
  • 여러 모델에서 동일한 데이터를 재사용
  • SQL 쿼리로 복잡한 데이터 분석 가능
  • 데이터 백업과 복구가 용이

📈 수집 대상 종목

현재 KOSPI와 KOSDAQ의 주요 종목 약 200개를 대상으로 데이터를 수집하고 있습니다.

profile
서두르지 말고, 멈추지도 말고

0개의 댓글