1브라우저 · React
Vercel · "언급 뒤에" 탭을 연다
GET /stats/v1/summary
?scope=overall
&horizon=20
&stance=bull
낙관 언급 뒤 20거래일 평균
−2.6%
n 13,609
HTTPS · JSON200 OK · 0.6 KB
2FastAPI · stats
Render · 입력 검증 → 키 조립
key = "bull:overall:20"
select(Summary)
.where(Summary.key == key)
→ {"key": …, "value": {
"n": 13609, "mean": -0.0258,
"win_rate": 0.4227, … }}
Cache-Control: max-age=600
3PostgreSQL · stats
Supabase · 배치가 미리 계산해 둔 요약
SELECT value FROM stats.summaries
WHERE key = 'bull:overall:20';
summaries 8,673행 · event_returns 50,170행
외부 API 는 여기서 부르지 않는다
(07:10 배치가 채워 둔다)