들어가며

주식 정보를 보려면 선택지가 몇 가지 있다. 증권사 HTS, 네이버 증권, 각종 스크리너 사이트.

그런데 하나같이 불만이 있었다.

HTS는 기능이 많긴 한데, 익숙해지는 데 시간이 너무 오래 걸린다. 메뉴가 수백 개고, 로그인 절차도 번거롭다. 기능이 많다는 건 장점이지만, 내가 원하는 정보 하나 찾으려면 클릭을 다섯 번은 해야 한다.

네이버 증권은 간편하지만 정보가 부족하다. PBR, ROE 같은 기본적인 밸류에이션 지표를 한 화면에서 비교하기 어렵고, 종목 스크리닝도 제한적이다.

스크리너 사이트들은 나름 괜찮지만, 필터 설정하고 결과 보고 다시 조건 바꾸고... 단계가 많아서 답답했다.

결국 내가 원하는 건 단순했다.

 

"한 화면에서 시장 전체를 훑어보고, 관심 종목을 빠르게 찾고 싶다."

 

그래서 직접 만들기로 했다. AI의 도움을 받아서. 

전체적인 기획과 UI 테스트는 내가 하고 프로그래밍 관련된 모든 작업은 AI Agent가 진행한다. 


바이브 코딩, 해볼까?

2025년부터 "바이브 코딩(Vibe Coding)"이라는 말이 유행하기 시작했다. AI에게 자연어로 지시하면 코드를 짜주는 방식인데, 나는 이게 얼마나 실용적인지 직접 확인해보고 싶었다.

본업은 QA 엔지니어다. Python으로 테스트 자동화를 하고 있어서 코드를 아예 모르는 건 아니지만, 웹 풀스택 개발은 처음이었다. FastAPI? React? 이름만 들어본 수준이었다.

"진짜 AI만으로 쓸만한 걸 만들 수 있을까?"

호기심 반, 의심 반으로 시작했는데 — 결론부터 말하면, 2주 만에 3,970종목 실시간 대시보드가 완성됐다.

재미있어서 거기서 멈추지 못했다. 한국 주식에 이어 미국 주식까지, 지금은 10,000종목 이상의 데이터를 다루는 시스템이 되었다.

아직 주력은 한국 주식 사이트고 미국 주식은 데이터만 업데이트 하고 있다. 

KOSPI/KOSDAQ 지수, 환율, 원자재, 수급, 테마 — 한 화면에서 시장 전체를 파악할 수 있다.


내 투자 이력, 그리고 왜 데이터가 필요한가

주식은 2012년에 처음 시작했다. 1년 정도 하다가 한동안 쉬었고, 코로나 때 복귀했다. 그런데 2021년 고점에 물렸다. 존버하면서 배운 게 하나 있다.

"감으로는 안 된다."

2025년부터 다시 조금씩 투자를 시작하면서, 이번에는 데이터 기반으로 접근하기로 했다. 저평가된 고성장 종목을 체계적으로 찾고, 자금 흐름을 추적하고, 패턴을 백테스팅하는 — 소위 퀀트 전략을 만들어보고 싶었다.

문제는 퀀트 전략이 만들기도 어렵고, 검증하기는 더 어렵다는 것. 그래서 항상 상상만 하고 손을 대지 못했는데 몇 개월 전부터 엄청난 성능의 AI가 나오기 시작했고 가능성이 보였다.


그래서 뭘 만들었나

최종적으로 완성된 시스템의 구조를 간단히 소개하면 이렇다. 

주식 정보 DB가 있고 DB를 토대로 풀스택으로 정보 사이트를 만들었다. 그리고 DB에 있는 데이터를 통해 퀀트 투자 전략을 만들고 백테스팅을 한다. 퀀트 전략에는 나름대로 엄격한 기준이 있고 그 기준을 통과하는 경우에 웹 사이트 등록해서 성과를 검증하려고 한다. 

데이터 수집 파이프라인

한국투자증권 API ──┐
키움증권 REST API ──┼──→ SQLite DB ──→ FastAPI 서버 ──→ 웹 대시보드
공개 웹 데이터 크롤링 ──┘     (1.8GB)

SEC EDGAR API ─────────→ SQLite DB ──→ Express 서버 ──→ 웹 대시보드 (US)
                          (1.1GB)

매일 NXT 장까지 마감되는 오후 8시 이후에 데이터를 수집한다.

  • 한국: 3,970종목의 주가, 재무제표, 외국인/기관 수급, 증권사 추천, ETF 분배금
  • 미국: Russell 3000 + ETF 500, SEC 공시 재무제표, 배당 데이터

웹 대시보드

한 화면에서 시장 전체를 파악할 수 있는 대시보드를 만들었다.

시장 요약: KOSPI/KOSDAQ 지수, 시가총액, PER/PBR, 거래대금, 상승/하락 종목 수
수급 현황: 외국인, 기관, 연기금 순매수 상위 종목
시그널: 52주 신고가, 골든크로스, 거래량 급증, 연속 상승 종목

종목 분석

개별 종목 페이지에서는 TradingView 차트에 12가지 보조지표를 올릴 수 있다. 사실 보조지표는 잘 모르지만 붙여봤다.

삼성전자 1년 차트. TradingView 캔들스틱 + 이동평균선, 오른쪽에 시세 정보와 최근 거래일 테이블.

  • 볼린저 밴드, 일목균형표, MACD, RSI, 스토캐스틱 등 12종
  • 6탭 구성: 주가 / 재무제표 / 구성종목(ETF) / 수급 추이 / 공시 / 뉴스

종목 스크리너

PBR, ROE, PER, 시가총액 등 15개 조건을 조합해서 종목을 필터링한다.

PER, PBR, ROE, 시총, 수급 등 다양한 조건으로 3,970종목을 필터링. 프리셋 버튼으로 원클릭 스크리닝.

프리셋도 만들어뒀다: "저평가 우량주", "고배당주", "성장주", "소형 가치주" 등 7종.

퀀트 추천

AI가 매일 종목을 추천해주는 퀀트 엔진도 만들었다. 3가지 전략 — 안정형(LVQ), 최대수익형(섹터VQ), 중수익형(모멘텀가드) — 을 백테스트로 검증하고, 매일 추천 종목을 갱신한다.

퀀트 전략별 추천 종목 카드. 종합점수, 밸류/퀄리티/모멘텀 세부 점수, 백테스트 수익률까지 한눈에.

 

매일 장 마감 후 자동으로 전략별 추천 종목 TOP 10을 산출한다. 단순히 추천만 하는 게 아니라, 전날 추천한 종목의 수익률을 추적해서 "이 전략이 진짜 돈이 되는지" 매일 검증한다. 월말에는 한 달치 성과를 확정하고, 월별 이력으로 누적 관리한다. 백테스트 수익률과 실제 수익률을 비교할 수 있어서, 전략이 과적합(overfitting)인지 아닌지도 판단할 수 있다. 전략은 이후 글에서 자세히 설명한다.

시장지도 (트리맵)

시가총액 기준으로 전 종목을 한눈에 볼 수 있는 트리맵도 있다.

시총/등락률/거래대금 6가지 조합으로 시장 전체를 시각화. 어떤 섹터가 강한지 직관적으로 파악할 수 있다.

ETF 분석

1,037개 ETF를 카테고리별로 분류하고, 수익률 랭킹, 분배금, 총보수까지 비교할 수 있다.

ETF 대시보드 — 카테고리별 분류, 수익률 랭킹, 분배금 비교.

미국 주식

같은 구조를 미국 시장에도 적용했다. S&P 500, 다우, 나스닥, 러셀 2000 지수와 함께 3,000종목 + ETF 500개를 분석할 수 있다.

아직 시간 상 미국 주식까지 구현하기는 어려워서 초안만 잡아놨다. 한국 주식이 어느 정도 완성되면 미국 주식에도 집중해보려고 한다. 

미국 시장 대시보드. S&P 500, 다우, 나스닥, 러셀 2000 지수와 섹터별 등락률, 상승/하락 TOP10. 


기술 스택 한눈에 보기

영역  한국 미국
데이터 수집 Python (KIS API, 키움 REST, Naver) Python (SEC EDGAR, yfinance)
DB SQLite 1.8GB SQLite 1.1GB
백엔드 FastAPI (Python) Express (TypeScript)
프론트엔드 Vanilla JS + TradingView Charts React + TypeScript + Vite
차트 TradingView Lightweight Charts v4 TradingView Lightweight Charts v4


왜 한국과 미국의 기술 스택이 다른지 궁금할 수 있다. 사실, 한국 버전을 먼저 만들면서 배운 것을 바탕으로 미국 버전은 좀 더 현대적인 스택을 선택한 것이다. 두 가지 스택을 모두 경험하면서 차이점을 보려고 했다.


다음 편 예고

이 시리즈에서는 이 시스템을 처음부터 끝까지 어떻게 만들었는지 풀어보려 한다.

  • 2편: 증권사 API로 주식 데이터 자동 수집하기 - 한국투자증권, 키움 REST API 실전 사용기
  • 3편: SQLite로 3,970종목 재무 DB 설계하기
  • 4편: FastAPI로 주식 API 서버 만들기
  • 5편: 대시보드 - 시장요약, 수급, 시그널을 한 화면에
  • 6편: 종목 상세 페이지 (주가, 차트, 수급, 재무, 공시, 뉴스) 만들기
  • 7편: 퀀트 투자 전략 만들어서 추가하기

개발 경험이 없어도, AI와 함께라면 이 정도 시스템을 만들 수 있다. 다음 편에서 본격적으로 시작해보자.


이 시리즈의 모든 코드는 Claude Code(AI 에이전트)의 도움을 받아 작성되었습니다.

+ Recent posts