← brudash.com 기업 스크리닝 기획보고서

BruDash 기업 스크리닝 기획보고서

한국 주식시장 ~4,000개 종목을 프로페셔널 투자 전략 기준으로 필터링하고,
장기투자 리포트 종목 발굴 프로세스를 체계화하는 기능 기획

📅 2026-04-09 ✍️ Claude (Opus 4.6) 📊 GitHub 14개 프로젝트 분석 🎯 3단계 로드맵 12주

🚀 Executive Summary

14
GitHub 프로젝트 분석
8
프로페셔널 방법론
6
벤치마크 서비스
12주
전체 개발 기간

프로젝트 목적

BruDash에 "기업 스크리닝" 메뉴를 신설하여, 한국 주식시장(KOSPI/KOSDAQ) 약 4,000개 종목을 다양한 투자 전략 기준으로 필터링하고, 장기투자 리포트의 종목 발굴 프로세스를 체계화합니다.

🌟 핵심 결론 4가지

1. GitHub 오픈소스 14개 분석 완료

xang1234의 80+ 필터 + Minervini/CANSLIM 프리셋 구조가 BruDash에 가장 적합한 레퍼런스

2. 8가지 프로페셔널 방법론 정리

Graham/Greenblatt(밸류), CAN SLIM/Minervini(모멘텀), Piotroski(퀄리티), Fama-French(멀티팩터)

3. 벤치마크 6개 완료

Finviz(70필터), TradingView(500+), Stock Rover(650+), 네이버, 키움, FnGuide

4. 3단계 로드맵 제안

1단계(2주): 기본+프리셋5개, 2단계(4주): 커스텀+알림, 3단계(6주): 백테스트+자동연동

📈 기대 효과

종목 발굴 시간2~3시간 → 10분
스윙/장투 추천 근거팩터 스코어 기반 객관적 근거 확보
유료 구독 가치프리셋 전략 + 개인화 스크린 + 알림

📋 프로젝트 진행 현황

기획 완료구현 대기
기획 보고서1단계2단계3단계
✓ 기획 완료 ● 1단계 대기 ○ 2단계 ○ 3단계

💻 GitHub 오픈소스 스크리너 조사

총 14개 GitHub 오픈소스 프로젝트를 분석했습니다. 테이블 헤더를 클릭하면 정렬됩니다.

# ▲▼ 프로젝트 ▲▼ Stars ▲▼ 언어 ▲▼ 시장 ▲▼ 핵심 기능 참고도 ▲▼
1Screeni-py673Python인도(NSE)브레이크아웃 확률, 차트패턴, CLI3
2PKScreener317Python인도(NSE)45+ 전략, 통합 로테이션, 백테스트4
3xang1234/stock-screener15Python글로벌80+ 필터, AI챗봇, Minervini/CANSLIM, 복합스코어링5
4OpenBB35000Python글로벌100+ 데이터소스, Finviz 연동, 모듈형4
5finvizfinance500Python미국Finviz 래퍼, 스크리너/뉴스/차트3
6stockscreener400Python미국FastAPI 기반 웹 스크리너, 교육용3
7growth-stock-screener80Python미국CAN SLIM 자동화, 성장주 필터4
8pykrx2000Python한국(KRX)KRX/네이버 스크래핑, PER/PBR/EPS5
9hyunyulhenry/quant_py600Python한국퀀트 투자 포트폴리오, 팩터 모델5
10quantylab/rltrader1000Python한국강화학습 트레이딩, 딥러닝3
11awesome-quant17000목록글로벌퀀트 금융 큐레이션 리스트4
12awesome-systematic-trading3000목록글로벌체계적 트레이딩 큐레이션 리스트4
13OpenDartReader400Python한국DART 공시/재무제표 API 래퍼5
14pykrx-mcp0Python한국pykrx MCP 서버 (자연어 쿼리)3

★ 참고도: 1~5 (5=최고). 강조 행 = BruDash 최우선 레퍼런스

🔎 핵심 프로젝트 상세 분석

⭐ xang1234/stock-screener -- BruDash 최우선 레퍼런스

이 프로젝트가 BruDash에 가장 적합한 레퍼런스인 이유:

구조적 강점

  • 80+ 설정 가능 필터 -- 기본적 + 기술적 필터를 동시에 제공
  • 복합 스코어링 -- 여러 필터의 결과를 가중 합산하여 단일 종합 점수 생성
  • 프리셋 전략 -- Minervini Trend Template, CANSLIM, IPO 스캔, Volume Breakthrough 등
  • AI 챗봇 통합 -- Groq/DeepSeek/Gemini 등 LLM과 연동
  • StockBee 스타일 지표 -- 시장 전체의 breadth(폭) 지표

참고해야 할 설계 패턴

  • 스캔(전략)별로 독립 모듈화 → 새 전략 추가가 쉬움
  • 필터마다 가중치 설정 가능 → 멀티팩터 모델 구현
  • 결과를 CSV/JSON/Web UI로 다양하게 출력
📈 pykrx + OpenDartReader -- 한국 시장 데이터 기반

BruDash는 이미 pykrx를 사용 중이며, company_info.db에 14,667개 종목의 기본적 분석 데이터가 있습니다.

pykrx로 수집 가능한 데이터

  • get_market_fundamental: PER, PBR, EPS, BPS, DIV
  • get_market_ohlcv: OHLCV (일봉/주봉/월봉)
  • get_market_cap: 시가총액, 상장주식수
  • get_market_trading_volume_by_investor: 투자자별 매매동향
  • get_market_net_purchases_of_equities: 투자자별 순매수

OpenDartReader로 보강할 데이터

  • 분기별 재무제표 (매출액, 영업이익, 당기순이익, 부채비율)
  • 공시 정보 (유상증자, 전환사채, 주요 계약)
  • 임원 보수, 최대주주 변동
📚 hyunyulhenry/quant_py -- 한국 퀀트 투자 실전

한국 시장에 특화된 팩터 투자 전략을 구현한 코드입니다.

  • 밸류 팩터: PBR, PER, PSR, PCR, EV/EBITDA
  • 퀄리티 팩터: GP/A, ROE, 부채비율
  • 모멘텀 팩터: 12개월 수익률, 상대강도
  • 멀티팩터 조합: Z-Score 합산
  • 마법공식(Greenblatt): 이익수익률 + 자본수익률

BruDash 적용 가치: 팩터별 순위 산출 → 종합 순위 로직을 그대로 차용 가능. 백테스트 프레임워크도 포함.

🌐 OpenBB -- 올인원 금융 분석 플랫폼 (35K+ Stars)

직접 사용하기보다는 아키텍처 참고용입니다.

  • 모듈형 데이터 프로바이더: 데이터 소스별로 독립 모듈
  • 표준화된 데이터 모델: 어떤 소스에서든 동일한 형식으로 정규화
  • 확장 포인트: 커스텀 스크리너를 Finviz 엔진 위에 구축
  • REST API + Python SDK: 프론트엔드 불문 백엔드 API로 제공

📚 프로페셔널 스크리닝 방법론

🛡️
Benjamin Graham
밸류 - 방어적 투자자

《현명한 투자자》 7가지 기준:

적정 규모시총 3,000억원+
재무 건전성유동비율 2:1 이상
이익 안정성5년 연속 흑자
배당 이력10년 연속 배당
이익 성장5년 EPS +20%
PER15배 이하
PBR1.5배 이하
Graham Number = sqrt(22.5 x EPS x BPS) 22.5 = PER 15배 x PBR 1.5배 현재가 < Graham Number → 저평가

⚠️ 한국은 코리아 디스카운트로 PBR < 1.0이 60%+. 기준 조정 필요.

🪄
Joel Greenblatt
밸류 - 마법공식

두 가지 팩터를 결합:

1. 이익수익률 = EBIT / EV (높을수록 "싸게 살 수 있는" 기업) 2. 자본수익률 = EBIT / (순운전자본 + 순고정자산) (높을수록 "돈을 잘 버는" 기업) 순위 합산: 두 순위의 합이 가장 낮은 30~50개 → 추천

데이터: DART 재무제표 영업이익, company_info.db 시총

🚀
CAN SLIM
성장 - William O'Neil
CCurrent Earnings분기 EPS +25%↑
AAnnual Earnings연간 EPS 3년 +25%↑
NNew Product신제품/신고가
SSupply/Demand유통주식 적음 + 거래량↑
LLeader업종 내 RS 상위
IInstitutional기관/외인 보유↑
MMarket시장 상승 추세

한국: 외국인 보유비율 변화 + 연기금 매수가 핵심 시그널

📈
Mark Minervini
모멘텀 - Trend Template

Stage 2 상승 추세 진입 시점 8가지 기준:

1. 현재가 > MA150 & MA200 2. MA150 > MA200 3. MA200 1개월+ 상승 4. MA50 > MA150 > MA200 5. 현재가 > MA50 6. 현재가 > 52주 저가 + 25% 7. 현재가 > 52주 고가 x 75%

보조: 분기 EPS +20%, 매출 +15%, ROE > 17%

💎
Piotroski F-Score
퀄리티 - 재무 건전성 9점

9가지 이진(0/1) 기준으로 재무 건전성 측정:

수익성 (4점)
ROA > 0
영업CF > 0
ROA 개선
영업CF > 순이익
안전성 (3점)
장기부채 감소
유동비율 개선
유상증자 없음
효율성 (2점)
매출총이익률↑
자산회전율↑

F-Score 8~9: 연 13.4% 초과수익 (Piotroski 연구). F-Score 0~2: 밸류 트랩.

💰
Peter Lynch PEG
GARP - 합리적 성장주
PEG = PER / 연간 EPS 성장률(%) PEG < 1.0 → 성장 대비 저평가 (매수 후보) PEG = 1.0 → 적정 PEG > 2.0 → 성장 대비 고평가 배당 조정 PEG = PER / (EPS성장률 + 배당수익률)
⚠️
Altman Z-Score
퀄리티 - 부도 위험 예측
Z = 1.2xA + 1.4xB + 3.3xC + 0.6xD + 1.0xE A = 운전자본 / 총자산 B = 이익잉여금 / 총자산 C = EBIT / 총자산 D = 자기자본 시장가 / 총부채 장부가 E = 매출 / 총자산
Z > 2.99: 안전 1.81~2.99: 주의 Z < 1.81: 위험
⚖️
BruDash 멀티팩터
맞춤 - 한국 시장 특화
BruDash Score = w1x밸류 + w2x퀄리티 + w3x모멘텀 + w4x수급 + w5x테마 밸류(20%): PER + PBR + EV/EBITDA + PEG 순위 퀄리티(20%): F-Score + ROE + 부채비율 + Z-Score 모멘텀(20%): 6M수익률 + RS Rank + 이평선 정배열 수급(20%): 외인5일 + 기관5일 + 외인비율변화 + 공매도 테마(20%): theme_confidence + 5일avg + 대장순위 + 생명주기

★ 수급 + 테마는 BruDash만의 한국 시장 특화 팩터

📊 벤치마크 (국내외 상용 스크리너)

Finviz
70
필터 수 (미국 기준선)
TradingView
500+
필터 수 (글로벌 고급)
Stock Rover
650+
메트릭 수 (심층)
네이버
~15
종목발굴기 (대중적)
키움
~100
HTS 조건검색
FnGuide
~50
기관급 스크리너
🎯 Finviz -- 미국 기준선 (70개 필터)
카테고리필터 수주요 필터
Descriptive~20시총, 섹터, 국가, 거래소, IPO일
Fundamental~25PER, PBR, PEG, EPS성장률, ROE, 배당
Technical~25SMA20/50/200, RSI, 52주고저, 갭, 차트패턴

UI 특징: 히트맵 시각화, 차트 패턴 자동 인식(33가지), 3탭(D/F/T) 구조

BruDash 시사점: 히트맵 → 테마별 시각화 적용 가능. 3탭 구조 깔끔.

📊 TradingView Screener -- 500+ 필터

핵심 특징: 필터 바 축소/확장(Shift+H), 스크린 저장/공유, Popular Screens, Pine Script 연동, 실시간 자동 갱신

BruDash 시사점: "저장된 스크린" = 유료 가치 핵심. Popular Screens = "프리셋 전략". 자동 갱신은 3단계에서 WebSocket.

📈 Stock Rover -- 650+ 메트릭

핵심 특징: 14개 빌트인 스크린, 사용자 정의 수식 빌더, 리서치 리포트, 비교 테이블, 포트폴리오 통합

BruDash 시사점: 수식 빌더는 2단계 파워유저용. "스크리닝 → 분석 → 포트폴리오" 흐름이 장투 리포트와 연결.

🇰🇷 네이버 / 키움 / FnGuide -- 한국 서비스

네이버: 매우 단순한 슬라이더 UI. 저장/알림 없음. BruDash가 훨씬 깊은 분석 제공.

키움: HTS 전용, 실시간 조건검색, 조건식 공유. 웹 불가 → BruDash의 웹 접근이 차별점.

FnGuide: 수급 종목검색이 핵심. BruDash도 반드시 포함해야 할 기능.

🏆 BruDash 경쟁 우위

경쟁 서비스BruDash 차별점
Finviz / TradingView한국 시장 특화 (테마, 수급, 외인 데이터)
네이버 종목발굴기8개 전문 프리셋 + 멀티팩터 스코어 + 알림
키움 조건검색웹 기반(HTS 불필요) + AI 분석 연동
FnGuide개인투자자 친화적 UI + 테마 데이터 통합

🏗️ 시스템 아키텍처

💻 사용자 (브라우저)

brudash.com/screener

↓ HTTP / WebSocket

⚙️ Flask 웹서버 (Waitress)

/api/screener/run · /presets · /save · /alert · /backtest

↓

⚙️ Screener Engine (Python)

Filter Engine
조건 필터링
Scorer Engine
팩터 점수
Backtester
성과 검증
↓

🗃️ Data Aggregator (데이터 통합)

company_info.db kiwoom_data.db sector_cache.db screener_data.db (신규)
↑ cron 수집

pykrx

시세 데이터

DART API

재무제표

LS증권 API

실시간 시세

🔌 기존 인프라 연동

기존 DB스크리너 활용연동
company_info.db (14,667종목)PER, PBR, EPS, BPS, 배당, 시총직접 JOIN
kiwoom_data.db (4,558종목)실시간 가격, 등락률, 거래량, 수급직접 JOIN
sector_cache.db테마 소속, confidence, 대장주직접 JOIN
outlook_feedback.db추천 적중률, 스윙 picks참조
telegram_data.db핫멘션, 뉴스 빈도참조

★ 핵심: screener_data.db 1개만 추가, 기존 DB는 JOIN으로 활용. 데이터 중복 최소화.

🕑 데이터 수집 주기

주기데이터소스
실시간 10초현재가, 등락률, 거래량LS증권 API
일 1회OHLCV, 이평선, 기술지표, 투자자별 매매pykrx / LS
주 1회PER, PBR, 시총, 배당pykrx / 네이버
분기 1회재무제표, F-Score, Z-ScoreDART API
3개월 1회전종목 기본정보 갱신네이버 API

🗃️ DB 스키마 설계 -- screener_data.db

📈 technical_indicators
code, dateTEXT
ma5, ma10, ma20, ma50...REAL
price_vs_ma5/20/50/200REAL
ma_alignedBOOLEAN
rsi_14, rsi_9REAL
bb_upper/middle/lowerREAL
return_1w/1m/3m/6m/12mREAL
rs_rankREAL (0~100)
volume_ratio_20dREAL
💰 supply_demand
code, dateTEXT
foreign_net_1d/5d/20dINTEGER
foreign_ratioREAL
foreign_ratio_change_5d/20dREAL
inst_net_1d/5d/20dINTEGER
pension_net_1d/5dINTEGER
short_volume/ratio/balanceINTEGER/REAL
📑 financial_metrics
code, quarterTEXT
revenue, operating_incomeINTEGER
net_income, ebit, ebitdaINTEGER
total_assets/equity/debtINTEGER
operating_cf, free_cfINTEGER
roe, roa, gross_marginREAL
ev_ebitda, peg, pcr, psrREAL
debt_ratio, current_ratioREAL
🎯 factor_scores
code, dateTEXT
value_scoreREAL (0~100)
quality_scoreREAL (0~100)
momentum_scoreREAL (0~100)
supply_demand_scoreREAL (0~100)
theme_scoreREAL (0~100)
f_score, z_scoreINT / REAL
graham_number/discountREAL
brudash_scoreREAL (0~100)
💾 saved_screens
idINTEGER PK
user_id, nameTEXT
filtersJSON
scorer, sort_byTEXT
alert_enabledBOOLEAN
🔔 screen_alerts
idINTEGER PK
screen_idFK → saved_screens
stock_code, stock_nameTEXT
trigger_reason, scoreTEXT / REAL
notifiedBOOLEAN
📅 screen_history
idINTEGER PK
screen_name, run_dateTEXT
result_codesJSON
avg_return_1w/1m/3mREAL

🎨 UI/UX 설계안 -- 3가지 대안

대안 A: 프리셋 중심형 초보 친화

brudash.com/screener 투자 전략을 선택하세요 🛡 Graham 🪄 마법공식 🚀 CANSLIM 📈 Minervini 12종목 30종목 8종목 15종목 💎 F-Score 🌐 외인매수 🔥 테마모멘텀 ⚖ 멀티팩터 10종목 20종목 25종목 50종목 ---- 또는 직접 필터 설정 ---- [커스텀 스크리너 만들기 →] (프리셋 클릭 시) 결과 테이블 표시
장점: 초보도 바로 사용 단점: 파워유저 자유도 부족

대안 B: 필터 빌더형 Finviz 스타일

brudash.com/screener 필터: [+추가] ┌ PER < 15 ┐ ┌ PBR < 1.0 ┐ ┌ 시총>3000억 ┐ └ [x] ┘ └ [x] ┘ └ [x] ┘ ┌ 외인순매수↑┐ ┌ RS>70 ┐ └ [x] ┘ └ [x] ┘ 프리셋: [Graham] [마법공식] [CANSLIM] [저장] 결과: 23개 종목 (전체 3,974개 중) [테이블 뷰] [카드 뷰] [히트맵 뷰]
장점: 유연한 필터 조합 단점: 초보 허들 높음

대안 C: 하이브리드형 추천

brudash.com/screener ┌ 전략 선택 ─────────────────────────┐ │ 🛡 Graham 🪄 마법공식 🚀 CANSLIM 📈 Trend │ │ 💎 F-Score 🌐 외인매수 🔥 테마 ⚖ 멀티 │ │ [+ 내 전략] │ └─────────────────────────────────────┘ ┌ 활성 필터 (수정 가능) ─────────────┐ │ PER: [1]~[15] PBR: [0]~[1.5] │ │ 시총: [3,000]억+ 배당: [2.0]%+ │ │ [+ 필터 추가] [초기화] [내 전략으로 저장] │ └─────────────────────────────────────┘ #1 삼성전자 (005930) BruDash 85점 반도체 | PER 12.3 | PBR 1.2 | 외인+320억 [상세] [관심종목] [비교 추가]
초보: 프리셋 클릭 → 바로 결과 중급: 프리셋 기반 필터 수정 고급: 빈 상태에서 직접 구성

⭐ 모든 수준의 사용자를 커버하는 하이브리드가 최적

📅 3단계 로드맵 (총 12주)

기획 완료1단계 (2주)2단계 (4주)3단계 (6주)
PHASE 1 2주
기본 스크리너 + 프리셋 5개
프리셋 전략 카드 + 기본 필터 + 결과 테이블. 최소 기능으로 빠르게 런칭.
  • 1~2일: screener_data.db 생성 + 스키마
  • 3~4일: 기술지표 수집기 (pykrx) -- collector.py --daily
  • 5~6일: FilterEngine + 5개 프리셋
  • 7~8일: 프론트엔드 UI (프리셋 카드 + 결과 테이블)
  • 9~10일: Flask API 엔드포인트
  • 11~12일: 모바일 반응형 + 테스트
  • 13~14일: 서버 배포 + cron 설정
Graham 방어적 Greenblatt 마법공식 외인 순매수 전환 고배당 + 저PBR BruDash 테마 모멘텀
PHASE 2 4주
고급 기능 (커스텀 + 알림 + 퀄리티)
커스텀 필터 빌더 + 텔레그램 알림 + F-Score/Z-Score + 비교 모드
  • 1주: DART 재무제표 수집기 + F-Score/Z-Score
  • 2주: MultiFactorScorer + BruDash Score
  • 3주: 커스텀 필터 빌더 UI + 저장 기능
  • 4주: 알림 시스템 (텔레그램) + 비교 모드
+CAN SLIM +Minervini Trend +Piotroski F-Score +BruDash 멀티팩터
PHASE 3 6주
프리미엄 (백테스트 + 자동 연동 + 자기학습)
과거 성과 시뮬레이션 + 장투 리포트 자동 생성 + 팩터 가중치 자동 조정
  • 1~2주: 백테스트 엔진 (과거 N개월 성과 시뮬)
  • 3주: 장투 리포트 자동 연동 (스크리너 → Claude → HTML)
  • 4주: 팩터 가중치 자동 조정 (적중률 피드백 기반)
  • 5주: 히트맵 시각화 + 레이더차트
  • 6주: 종합 테스트 + 최적화 + 문서화

💰 데이터 소스 우선순위 & 비용

우선순위소스데이터비용
1pykrxOHLCV, PER/PBR, 투자자별무료
2company_info.db14,667종목 기본분석보유중
3kiwoom_data.db실시간 가격, 수급, 테마보유중
4sector_cache.db테마, confidence보유중
5DART OpenAPI재무제표, 공시무료
6LS증권 API실시간 시세무료(계좌)
7네이버 금융컨센서스, 목표가무료

✅ 추가 비용 없이 기존 인프라 + 무료 API만으로 구현 가능

🎯 BruDash Score 인터랙티브 계산기

각 팩터의 가중치를 조절해서 BruDash Score 계산 방식을 직접 체험해보세요.

가중치 합계: 100%
ⓘ 합계가 100%가 아니어도 정규화됩니다
72
BruDash Score (예시)
밸류
퀄리티
모멘텀
수급
테마

현재 수식

BruDash Score = 0.20 x 밸류(65) + 0.20 x 퀄리티(80) + 0.20 x 모멘텀(70) + 0.20 x 수급(85) + 0.20 x 테마(60) = 13.0 + 16.0 + 14.0 + 17.0 + 12.0 = 72.0