System Overview

S&P 500 투자 분석 허브
구조 & 동작 원리

12-에이전트 파이프라인으로 종목을 분석하고, Netlify에 정적 리포트로 배포하는 풀스택 시스템의 전체 구조를 설명합니다.

🤖 12-Agent Pipeline 📊 8 Reports Live 🚀 Netlify Deployed 📡 Telegram Webhook
목차
Section 01
시스템 전체 구조
세 레이어가 분리된 구조 — 분석 엔진(Claude), 배포 레이어(Netlify), 사용자 인터페이스(HTML)
500+
S&P 500 종목
11
GICS 섹터
12
분석 에이전트
8
완성 리포트
ANALYSIS ENGINE
🤖
Claude AI
12-에이전트 파이프라인
웹 검색 → 분석 → HTML 생성
STATIC FILES
📄
HTML 리포트
종목별 단일 HTML
CSS+Chart.js 내장
DEPLOYMENT
🌐
Netlify CDN
정적 호스팅 + 서버리스 함수
글로벌 엣지 배포
분석 요청 흐름 — 미분석 종목 요청 시
👤
사용자
허브에서
"분석 요청" 클릭
Netlify Function
request-analysis.js
서버리스 실행
📡
Telegram API
티커·섹터·시각
알림 전송
🤖
Claude 실행
12-에이전트
파이프라인 시작
🚀
Netlify 배포
HTML 생성 후
netlify deploy

Section 02
프론트엔드 허브 — index.html
단일 HTML 파일로 구성된 대시보드. 외부 API 의존 없이 정적 데이터만으로 동작.
① 분석 완료 리포트 섹션
REPORTS 객체에 등록된 종목 자동 표시
BUY / HOLD / SELL 컬러 코딩 카드
분석 날짜 최신순 정렬
클릭 → 해당 리포트 HTML로 직접 이동
const REPORTS = {
  'MU': { verdict:'BUY', date:..., file:... },
  'INTC': { verdict:'SELL', date:..., file:... },
};
② 섹터 탐색 패널
11개 GICS 섹터 카드 그리드
분석 완료 종목 수 배지 표시
클릭 → 해당 섹터 종목 패널 펼침
전체 / 분석완료 / 미분석 필터
S&P 500 전 종목 하드코딩
REPORTS 매니페스트와 교차 → 분석완료 여부 판단
미분석 종목 → 분석 요청 버튼 표시
③ 전체 검색
티커 또는 종목명 실시간 검색
드롭다운 — 섹터 + 분석 여부 표시
분석 완료 → 리포트 바로 열기
미분석 → 해당 섹터 패널로 이동
④ 분석 요청 (서버리스)
미분석 종목의 "요청" 버튼 클릭
POST /api/request-analysis 호출
Netlify Function → Telegram Bot 전송
API 키는 환경변수 — 소스 비노출

Section 03
12-에이전트 분석 파이프라인
종목 입력부터 HTML 생성까지 순차 실행. Validator는 블로킹 체크포인트 역할.
Ticker Router
거래소·통화·섹터·회계연도 결정. 특수 플래그(no_profit, cyclical, earnings_inflection) 설정. 피어 유니버스 구성.
ROUTING
Data Agent
웹 검색으로 실제 수치 수집. 계산·추정 금지 — 찾지 못하면 null. 시장가·손익 3년·현금흐름·대차대조표·컨센서스·피어 데이터.
WEB SEARCH
Data Validator
CRITICAL: 시총 = 주가×주식수 ±5%, 순부채 = 부채−현금 ±1%, FCF ≤ 영업이익×2. 실패 시 ② 최대 2회 재실행.
VALIDATOR · BLOCKING
Financial Agent
Revenue CAGR, EPS CAGR, 영업마진, FCF마진, FCF Conversion, Net Debt/EBITDA, ROE, EV, 정규화 FCF 계산. 성장률 티어 분류(HIGH/MID/LOW).
CALCULATION
Financial Validator
CAGR 공식 재계산, EV 재계산, 마진 범위 체크. 재시도 초과 시 WARNING 플래그만 달고 진행.
VALIDATOR · BLOCKING
Valuation Agent
DCF (5년 + TV), 선행 PER, EV/EBITDA, PEG 4가지 방법으로 Bear/Base/Bull 산출. 역DCF로 현재가 내재 성장률 계산. 가중평균 Fair Value 도출.
VALUATION
⑥B
Growth Scenario Agent
FY+2 기준 Bull×25% / Base×50% / Bear×25% 시나리오 생성. 확률가중 기댓값(GS-WEV) 계산. earnings_inflection 시 P/S 방식 사용.
GS-WEV
Valuation Validator
DCF PV, Terminal Value, 가중평균 FV, GS-WEV 산술 재검증 (±$1 허용). 이상치 탐지. 실패 시 ⑥ 재실행 + 수정 방향 전달.
VALIDATOR · BLOCKING
Scenario Agent
Bull(20~25%) / Base(45~55%) / Bear(20~30%) 확률 배분. 각 시나리오별 목표가 + 촉매/리스크 서술.
SCENARIO
Risk Agent
5~6개 리스크 선정 (매크로/산업/실행/밸류에이션/지정학). 각 리스크: severity, downside%, 트리거, 모니터링 시그널.
RISK
PM Agent
모든 결과 통합 → BUY/HOLD/SELL 최종 판단. 확신도 1~5 부여. 진입존·목표가·손절선 설정. earnings_inflection 조정 규칙 적용.
DECISION
Final Validator
블로킹 없음 — HTML 경고 플래그만. BUY인데 Bear확률>50%, 목표가 시나리오 범위 이탈, ⑥-B 미포함 등 모순 탐지.
VALIDATOR · NON-BLOCKING
HTML Renderer
1,000+ 줄 단일 HTML 생성. Chart.js 6개 차트, CSS Football Field, 5개 Zone 완성. {TICKER}_investment_report_2026.html 저장.
HTML OUTPUT

Section 04
리포트 구조 — 5개 Zone
각 HTML 리포트는 동일한 5개 Zone 구조로 구성. 위에서 아래로 읽으면 투자 판단 근거가 층층이 쌓임.
Zone I
Overview
Hero
투자의견 배지 + 확신도 (1~5)
가격
현재가 / FV / GS-WEV 비교
요약
핵심 투자 테제 2~3줄
검증
12 에이전트 통과 현황 표
배너
earnings_inflection 경고 (해당 시)
Zone II
Fundamentals
Football Field
4가지 방법 Bear~Bull 시각화
가중 FV
방법별 Base × 가중치 합산
DCF
5년 FCF + Terminal Value 세부
피어
P/E · EV/EBITDA · PEG 비교표
역DCF
현재가 내재 CAGR vs 컨센서스
재무
3개년 매출·마진·FCF 추이
Zone III
Growth Scenario
시나리오
FY+2 Bull / Base / Bear 테이블
GS-WEV
확률가중 기댓값 계산식 명시
포지션 바
현재가가 Bear~Bull 어디 위치
성장 프리미엄
시장이 FV 대비 몇 % 추가 부여
듀얼 뷰
펀더멘털 FV + 성장 GS-WEV 카드
Zone IV
Risk
3대 시나리오
Bull / Base / Bear 서술
리스크 매트릭스
5~6개 리스크 severity 시각화
트리거
각 리스크 발현 조건
모니터링
핵심 모니터링 시그널
Zone V
Verdict
최종 의견
BUY / HOLD / SELL + 확신도
진입존
매수 고려 가격 범위
목표가
GS-WEV 기반 수익실현 목표
손절선
테제 훼손 시 재검토 기준
핵심 변수
가장 중요한 모니터링 지표 1개
📊 Football Field 시각화 원리 — CSS 퍼센트 포지셔닝 (Chart.js 미사용)
각 막대의 left% = (Bear − 최소) / 스케일 범위, width% = (Bull − Bear) / 스케일 범위, Base 점 = (Base − 최소) / 스케일 범위
예시: MU (Micron) — 스케일 $0 ~ $1,400
DCF (25%)$377 ~ $776
$567
PER (30%)$458 ~ $940
$699
EV/EBITDA (25%)$453 ~ $1,027
$739
현재가 $540
FV $699
$0$350$700$1,050$1,400
막대 범위 = Bear~Bull
점 = Base (가중평균 FV 산정에 사용)
현재가
가중 Fair Value

Section 05
밸류에이션 4대 방법론
Tech/Semiconductor 섹터 기준. 각 방법의 Base 값에 가중치를 곱해 최종 Fair Value 도출.
가중치 배분 (Tech/Semiconductor)
DCF 25% PER 30% EV/EBITDA 25% PEG 20%
DCF
현금흐름할인법
가중치 25% · 장기 현금창출력 측정
FCF_t = FCF₀ × Π(1+g)
TV = FCF₅ × 1.03 / (WACC − 0.03)
EPS = (ΣPV_t + PV_TV − 순부채) / 주식수

Bear: WACC+2%, 성장률 각 -3%p
Bull: WACC-1%, 성장률 각 +3%p

⚠ TV > 75% 시 경고 배지 표시
PER
선행 주가수익비율
가중치 30% · 이익 기반 시장 가격
프리미엄 = min(회사CAGR / 섹터CAGR, 1.5)
Base = 섹터P/E × 프리미엄 × ForwardEPS
Bear = 섹터P/E × 0.90 × ForwardEPS
Bull = min(Justified×1.30, 섹터P/E×1.60) × EPS

적용 기업: 흑자 또는 FY+1 흑자 전환 예상 기업
EV/E
EV/EBITDA
가중치 25% · 부채 포함 기업가치
Justified = 피어평균(이상치 제외) × 프리미엄
FV = (Justified × EBITDA − 순부채) / 주식수
Bear = Base × 0.85
Bull = Base × 1.35

EV = 시총 + 순부채
이상치: P/E < 0 또는 > 100x 제외
PEG
PEG 비율
가중치 20% · 성장 조정 밸류
티어: 대형기술 1.2~1.6x
      성장기술 1.0~1.4x
      일반성장 0.8~1.2x

Bear/Base/Bull = 범위 하/중/상 × CAGR% × EPS

현재PEG = (현재가/EPS) / EPS_CAGR(%)
역DCF — 현재가 내재 성장률 역산
현재 주가가 이미 몇 % 성장률을 반영하고 있는지 역으로 계산. 내재 CAGR vs 컨센서스 갭으로 고평가/저평가 판단.
스캔 범위: [8, 10, 12, 15, 18, 20, 22, 25, 28, 30]%
현재가와 가장 근접한 CAGR → 내재 성장률
갭 = 내재 CAGR − Forward EPS CAGR 컨센서스
갭 > +10%p → SELL 재검토 트리거
30% 초과 시 "스캔 범위 이탈" — INTC 사례: 추정 ~50%

Section 06
특수 플래그 — earnings_inflection
표준 PER·DCF 방법론이 왜곡되는 상황을 감지해 대체 방법론으로 자동 전환.
earnings_inflection = true
최근 3년 FCF·EPS 음수이나 FY+1~FY+2 컨센서스 흑자 전환 예상 — 또는 역DCF 내재 성장률이 스캔 범위(30%) 완전 이탈.
발동 시 변경사항
· GS-WEV: PER → P/S 방식으로 전환
· Hero에 "수익 전환 초입" 경고 배너 표시
· FCF₀: 3년 평균 대신 FY+1~FY+2 midpoint 사용
· PM Agent: 현재가 ≤ GS-WEV Base → SELL→HOLD 상향 검토
INTC 실제 적용 사례
· FY2024 순손실 $18.76B → FY2026E 흑자 전환
· 역DCF 내재 CAGR ~50% (스캔 범위 이탈)
· FCF₀ = ($3B + $9B) / 2 = $6B (midpoint)
· GS-WEV: P/S 방식 → Bull $118 / Base $59 / Bear $27 = $66
WACC 티어
시가총액 규모에 따라 자본비용을 차등 적용. 대형주일수록 안정적이므로 낮은 WACC 적용.
시총 > $500B → WACC 9% (GOOGL, NVDA 등)
시총 $50B ~ $500B → WACC 10% (AMD, MU 등)
시총 < $50B → WACC 11% (AXTI, LITE 등)
성장률 티어
Revenue CAGR 기준으로 DCF 성장 스케줄 자동 결정.
HIGH (>20%): [25, 20, 18, 15, 12]%
MID (10~20%): [15, 13, 11, 9, 7]%
LOW (<10%): [8, 7, 6, 5, 4]%

Section 07
투자의견 결정 로직
PM Agent가 가중평균 FV와 현재가를 비교해 3단계 의견 결정. 특수 조정 규칙으로 earnings_inflection 케이스를 별도 처리.
BUY
가중평균 FV > 현재가 × 1.15
즉, FV가 현재가 대비 +15% 이상
HOLD
가중평균 FV와 현재가의 괴리 ±15% 이내
또는 earnings_inflection 조정 적용 후
SELL
현재가 > 가중평균 FV × 1.15
즉, 현재가가 FV 대비 +15% 이상 고평가
PM Agent 조정 규칙
Valuation WARNING ≥ 3개 → 확신도 -1
역DCF 갭 > +10%p → SELL 재검토 (GOOGL: +8%p → HOLD 유지)
GS-WEV > 현재가 +10% → BUY 재검토
earnings_inflection=true & 현재가 ≤ GS-WEV Base → SELL → HOLD 상향 검토
현재가 > GS-WEV Bull → BUY → HOLD 하향 검토
현재 배포된 리포트 요약
티커 의견 현재가 FV GS-WEV 확신도 날짜
MU BUY $540 $699 $873 3/5 2026-05-03
SNDK BUY 2026-05-02
AMD HOLD 2026-05-02
GOOGL HOLD $383 $310 $416 3/5 2026-05-05
VRT HOLD $329 $860 3/5 2026-05-01
LITE HOLD $955 $871 $860 3/5 2026-05-02
AXTI SELL 2026-05-02
INTC SELL $95.78 $33 $66 3/5 2026-05-05

Section 08
기술 스택 & 배포
외부 데이터베이스 없음. 정적 파일 + 서버리스 함수만으로 완전한 서비스 구성.
🌐
Netlify CDN
호스팅 & 배포
정적 파일 글로벌 CDN 배포
netlify deploy --prod 단일 커맨드
Serverless Functions (Node.js)
환경변수로 API 키 보호
무료 플랜 (빌드 분 300/월)
📄
순수 HTML/CSS/JS
리포트 렌더링
프레임워크 없음 — 단일 HTML 파일
Chart.js (CDN) — 6개 차트/리포트
IBM Plex Sans + Libre Baskerville
CSS 변수 — 다크 테마 전체 적용
Football Field: CSS % 포지셔닝
📡
Telegram Bot API
분석 요청 알림
TG_BOT_TOKEN — 환경변수
TG_CHAT_ID — 환경변수
request-analysis.js → sendMessage
티커·종목명·섹터·요청 시각 포함
소스코드에 API 키 일절 노출 없음
파일 구조
stock_report/
├── index.html               ← 대시보드 허브 (REPORTS 매니페스트 포함)
├── mu_investment_report_2026.html ← 종목별 분석 리포트
├── intc_investment_report_2026.html
├── googl_investment_report_2026.html
├── ... (총 8개)
├── system_overview.html       ← 이 문서
├── netlify.toml               ← 배포 설정 (publish=".", functions="netlify/functions")
└── netlify/functions/
    └── request-analysis.js   ← 서버리스 Telegram 프록시
배포 커맨드
netlify deploy --prod
index.html에 신규 리포트 등록 후 실행 → 2~5초 내 라이브