
๐ค StockAI: OpenAI, Claude, DeepSeek ๋ฐ ๋ก์ปฌ LLM์ ์ง์ํ๋ AI ๊ธฐ๋ฐ StockAI ๋ด์ค ๋ถ์๊ธฐ๋ฅผ ๋ง๋ค์์ต๋๋ค
์์ฝ
Tauri 2์ React 19๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ StockAI๋ ์ค์๊ฐ ์ฃผ์ ๋ด์ค๋ฅผ ์คํฌ๋ํํ์ฌ LLM์ผ๋ก ๋ถ์ํ๋ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. OpenAI, Anthropic, DeepSeek ๋ฐ Olllama๋ฅผ ํตํ ๋ก์ปฌ ๋ชจ๋ธ ์ฐ๋์ ์ง์ํ๋ฉฐ, ๊ฐ์ฑ ๋ถ์ ๋์๋ณด๋์ ์ธํฐ๋ํฐ๋ธ ์ฐจํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํต์ฌ ํฌ์ธํธ
- OpenAI, Anthropic, DeepSeek ๋ฐ Ollama ๋ฑ ๋ค์ํ AI ๋ชจ๋ธ ์ง์
- Playwright๋ฅผ ํ์ฉํ ์ค์๊ฐ ๋ฏธ๊ตญ ๋ฐ ์ค๊ตญ ์ฃผ์ ๋ด์ค ์คํฌ๋ํ
- Lightweight Charts ๊ธฐ๋ฐ์ ๊ณ ๋ํ๋ K-line ์ฐจํธ ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ์ ํ์ ๋ฐ๋ฅธ ๋ช ์์ ๋ถ์ ํธ๋ฆฌ๊ฑฐ๋ก ํ ํฐ ์๋ชจ ๋ฐฉ์ง
StockAI๋ ๋ฌด์์ธ๊ฐ์?
StockAI๋ Tauri 2, React 19, Bun, ๊ทธ๋ฆฌ๊ณ Playwright๋ก ๊ตฌ์ถ๋ ํฌ๋ก์ค ํ๋ซํผ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์ค์๊ฐ ์ฃผ์ ๋ด์ค(๋ฏธ๊ตญ ์ฃผ์ + ์ค๊ตญ A์ฃผ)๋ฅผ ์คํฌ๋ํํ๊ณ , ์ฌ์ฉ์๊ฐ ์ ํํ LLM(๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ)์ ํตํด ๊ธฐ์ฌ๋ฅผ ๋ถ์ํ๋ฉฐ, ์ธํฐ๋ํฐ๋ธํ K-line(์บ๋ค์คํฑ) ์ฐจํธ์ ํจ๊ป ๊น๋ํ ๊ฐ์ฑ ๋ถ์(Sentiment Analysis) ๋์๋ณด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ตฌ๋ ๋ฃ๋ ์๊ณ ๋ฐ์ดํฐ ์ ์ถ๋ ์๋, 100% ๋ก์ปฌ์์ ์คํ๋๋ ๊ฐ์ธ์ฉ AI ๊ธ์ต ๋ถ์๊ฐ๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. ์ค์ง ํต์ฐฐ๋ ฅ(Insights)๋ง ์ ๊ณตํฉ๋๋ค.
๐ ์ฃผ์ ๊ธฐ๋ฅ
1. ํ๋ฌ๊ทธ์ธ ๋ฐฉ์์ AI ์ ๊ณต์ ์ฒด โ ๋๋กญ๋ค์ด์ผ๋ก ์ ํ
StockAI๋ ๊ธฐ๋ณธ์ ์ผ๋ก 5๊ฐ์ง AI ์ ๊ณต์ ์ฒด๋ฅผ ์ง์ํฉ๋๋ค:
- OpenAI (GPT-4o ๋ฐ ๊ด๋ จ ๋ชจ๋ธ)
- Anthropic (Claude 3.5 Sonnet)
- DeepSeek (DeepSeek V4 Pro)
- GLM (GLM-5.1)
- Ollama (Llama 3, Mistral, Qwen ๋ฑ ๋ชจ๋ ๋ก์ปฌ ๋ชจ๋ธ)
๊ฐ ์ ๊ณต์ ์ฒด๋ ์์ฒด์ ์ธ API ํค, ๋ฒ ์ด์ค URL(Base URL), ๋ชจ๋ธ ์ ํ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ๋จ์ผ ๋๋กญ๋ค์ด์ ํตํด ์ด๋ค ์ฌ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ํ ์ ์: ๋ถ์์ด ๋ช ์์ ์ผ๋ก ํธ๋ฆฌ๊ฑฐ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ฃผ์์ ๋ณ๊ฒฝํ๋ค๊ณ ํด์ ํ ํฐ์ด ์กฐ์ฉํ ์๋ชจ๋์ง ์์ต๋๋ค.
2. ์ค์๊ฐ ๋ด์ค ์คํฌ๋ํ
๋ด์ค๋ Google News RSS๋ฅผ ํตํด ๊ฐ์ ธ์ต๋๋ค (๋๋ถ๋ถ์ ์ฃผ์์ ๋ํด ๋ฌด๊ฑฐ์ด Chromium ๋ถํ ์ด ํ์ํ์ง ์์ต๋๋ค). RSS๋ก ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ, ๋ ๊น์ ์คํฌ๋ํ์ ์ํด Playwright๊ฐ ํด๋ฐฑ(Fallback)์ผ๋ก ์๋ํฉ๋๋ค.
์ง์ ๋์:
- ๋ฏธ๊ตญ ์ฃผ์ (NYSE, NASDAQ)
- ์ค๊ตญ A์ฃผ: ์ํ์ด(SH), ์ ์ (SZ), ๋ฒ ์ด์ง(BJ) ์ฆ๊ถ๊ฑฐ๋์
3. ์ธํฐ๋ํฐ๋ธ K-Line ์ฐจํธ (Lightweight Charts ๊ธฐ๋ฐ)
์ค์ ํจ๋์๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ ํผ์ฒ(Full-featured) ์บ๋ค์คํฑ ์ฐจํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค:
- MA / BOLL ์ค๋ฒ๋ ์ด
- 9๊ฐ์ง ์๊ฐ ๋ฒ์: 1D / 5D / 1M / 3M / 6M / YTD / 1Y / 5Y / All
- ๋ณด์กฐ ์ฐจํธ ์งํ: MACD, RSI, KDJ, OBV, VWAP
- ๋ก๊ทธ ์ค์ผ์ผ(Logarithmic scale), ๋ฐฐ๋น ์กฐ์ ๊ฐ๊ฒฉ
- ๊ฑฐ๋ ์๊ฐ ๋์ ๋ง์ง๋ง ์บ๋ค์ ์ค์๊ฐ ๊ฐ๊ฒฉ ๋ณํฉ
4. 3์ด ๋์๋ณด๋ ๋ ์ด์์
๋คํฌ ํ ๋ง UI๋ ์ธ ๊ฐ์ ์ด๋ก ๋๋ฉ๋๋ค:
- ์ผ์ชฝ (Left): ๋น ๋ฅธ ์ถ๊ฐ ์ ๋ ฅ ๊ธฐ๋ฅ์ด ํฌํจ๋ ๊ด์ฌ ์ข ๋ชฉ (Watchlist) ์ฌ์ด๋๋ฐ (์ธ์ ๊ฐ ์ ์ง๋จ)
- ์ค์ (Center): ์ฃผ์ ์์ธ ํจ๋ โ ์ค์๊ฐ ๊ฐ๊ฒฉ ์นด๋, K-์ ์ฐจํธ (K-line chart), ๋ด์ค ํผ๋
- ์ค๋ฅธ์ชฝ (Right): AI ๋ถ์ ํจ๋ โ ๊ฐ์ฑ ๋น์จ ๋ฐ (Sentiment ratio bar), ๊ธฐ์ ํ๋กํ, ์์์ผ๋ก ๊ตฌ๋ถ๋ ๊ฐ์ธ/์ฝ์ธ (Bullish/Bearish) ์์ธ ์นด๋
5. ๋ก์ปฌ ์ฐ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ (Local-First Privacy)
๋ชจ๋ API ํค, ๊ด์ฌ ์ข ๋ชฉ, ์ค์ ์ ์ฌ์ฉ์์ ๋ก์ปฌ ๊ธฐ๊ธฐ์ ์ ์ฅ๋ฉ๋๋ค. ๊ทธ ์ด๋ค ๋ฐ์ดํฐ๋ StockAI ์๋ฒ๋ก ์ ์ก๋์ง ์์ต๋๋ค (StockAI ์๋ฒ๋ ์กด์ฌํ์ง ์์ต๋๋ค).
6. ๋ฅ ๋ชจ๋ (Deep Mode)
"๋ฅ ๋ชจ๋ (Deep Mode)"๋ฅผ ํ์ฑํํ๋ฉด ์คํฌ๋ ์ดํผ (Scraper)๊ฐ ํค๋๋ผ์ธ๋ฟ๋ง ์๋๋ผ **๊ธฐ์ฌ ์ ๋ฌธ (Full article content)**์ ์ถ์ถํ์ฌ, LLM์ด ๋ ํ๋ถํ ๊ฐ์ฑ ๋ถ์ (Sentiment analysis)์ ์ํํ ์ ์๋๋ก ํจ์ฌ ๋ ๋ง์ ๋ฌธ๋งฅ (Context)์ ์ ๊ณตํฉ๋๋ค.
๐๏ธ ์ํคํ ์ฒ (Architecture)
StockAI๋ ์๊ฒฉํ ๋จ๋ฐฉํฅ ์์กด์ฑ ํ๋ฆ์ ๊ฐ์ง **ํด๋ฆฐ ์ํคํ ์ฒ (Clean Architecture)**๋ฅผ ๋ฐ๋ฆ ๋๋ค:
UI (React + TypeScript + Vite)
โ
Core Orchestration (Tauri / Rust)
...
Bun ์ฌ์ด๋์นด (Sidecar)๋ ๋ ๋ฆฝ ์คํํ ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผ๋์ด Tauri์ ์ฌ์ด๋์นด ๋ฉ์ปค๋์ฆ์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ํ๋ก ํธ์๋์ ์๋๋ฅผ ์ ์งํ๋ฉด์ ๋ฌด๊ฑฐ์ด ์คํฌ๋ ์ดํ (Scraping) ๋ฐ AI ์์ ์ ๊ฒฉ๋ฆฌํฉ๋๋ค.
๐ ์์ํ๊ธฐ
๋ค์ด๋ก๋ (๊ถ์ฅ)
macOS, Windows, Linux์ฉ ์ฌ์ ๋น๋๋ ๋ฐ์ด๋๋ฆฌ๋ Releases ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.
macOS ์ฌ์ฉ์: "์์๋ ์ฑ" ๋ฉ์์ง๊ฐ ๋ํ๋๋ค๋ฉด ์ด๋ ๋จ์ํ Gatekeeper ๋ฌธ์ ์ ๋๋ค. ๋ค์์ ์คํํ์ธ์:
xattr -cr /Applications/StockAI.app
Windows ์ฌ์ฉ์: SmartScreen ๋ํ ์์์์ "์ถ๊ฐ ์ ๋ณด โ ์คํ"์ ํด๋ฆญํ์ธ์.
์์ค์์ ๋น๋ํ๊ธฐ
# ํ์ ์๊ตฌ ์ฌํญ: Bun + Rust
# 1. ์์กด์ฑ ์ค์น
...
๐ ๏ธ ๊ธฐ์ ์คํ (Tech Stack)
| ๊ณ์ธต (Layer) | ๊ธฐ์ (Technology) |
|---|---|
| ๋ฐ์คํฌํฑ ์ ธ (Desktop Shell) | Tauri 2.0 (Rust) |
| ... |
๐ก ์ ์ ๋๊ธฐ
AI์ ์์ฅ ๋ชจ๋์ ๊ด์ฌ์ด ์๋ ์ฌ๋์ผ๋ก์, ๋ถ์ฐ๋ ์ํฌํ๋ก์ฐ(Workflow)์ ๋ต๋ตํจ์ ๋๊ผ์ต๋๋ค. ๋ด์ค ์ฌ์ดํธ๋ฅผ ์ด๊ณ , ๊ธฐ์ฌ๋ฅผ ๋ช ๊ฐ ์ฝ๊ณ , ๊ฐ์ฑ์ ํ์ ํ๋ ค ์ ์ฐ๊ณ , ๋ค๋ฅธ ํญ์์ ์ฐจํธ๋ฅผ ํ์ธํด์ผ ํ์ต๋๋ค. StockAI๋ ์ด ๋ชจ๋ ๊ฒ์ ํ๋์ ๊น๋ํ ๋ฐ์คํฌํฑ ์ฑ์ ๋ด์์ต๋๋ค.
๋ํ ์ ๋ ํน์ ์ ์ฒด์ ์ข ์๋์ง ์๋ (vendor lock-in ์๋) ๋ฌด์ธ๊ฐ๋ฅผ ์ํ์ต๋๋ค. ๋ง์ฝ OpenAI์ ๊ฐ๊ฒฉ์ด ์ธ์๋๋ค๋ฉด, ์๋ฌด๋ฐ ๋ง์ฐฐ ์์ด ๋ก์ปฌ Ollama ๋ชจ๋ธ๋ก ์ ํํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๐ค ๊ธฐ์ฌํ๊ธฐ (Contributing)
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค (MIT License) ํ์ ์์ ํ ์คํ ์์ค๋ก ์ด์๋ฉ๋๋ค. ๊ธฐ์ฌ(Contributions), ์ด์(Issues), ๊ทธ๋ฆฌ๊ณ ์คํ(Stars)๋ ์ธ์ ๋ ํ์ํฉ๋๋ค!
๐ GitHub: https://github.com/hyhmrright/StockAI
์๋ก์ด AI ์ ๊ณต์ ์ฒด๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ์คํฌ๋ํ (scraping) ๋ฒ์๋ฅผ ๊ฐ์ ํ๊ฑฐ๋, ๋ ๋ง์ ์ฐจํธ ์งํ (chart indicators)๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ํน์ ๋จ์ํ ์คํ๋ฅผ ์์ ํ๋ ๊ฒ ๋ฑ ๋ฌด์์ด๋ ์ข์ต๋๋ค. Pull Request (PR)๋ ์ธ์ ๋ ํ์ํฉ๋๋ค. ์ฝ๋๋ฒ ์ด์ค๊ฐ ๊น๋ํ๊ณ ์ ๊ตฌ์กฐํ๋์ด ์์ด ์ฝ๊ฒ ์ฐธ์ฌํ์ค ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ ๋ฌด์์ธ๊ฐ์? (What's Next?)
๋ก๋๋งต์ ๋ํ ๋ช ๊ฐ์ง ์์ด๋์ด์ ๋๋ค:
- ๊ฐ๊ฒฉ ์๋ฆผ (Price alert) ์๋ฆผ (์ด๋ฏธ ์งํ ์ค!)
- ๋ฐฐ์น ์ ๋ ์ค์บ๋ (batch quant scanning) ๊ธฐ๋ฅ์ด ํฌํจ๋ ์ฃผ์ ์คํฌ๋ฆฌ๋ (Stock screener)
- ๋ ๋ง์ ๊ฑฐ๋์ ์ง์ (์ ๋ฝ, ์ผ๋ณธ)
- ํฌํธํด๋ฆฌ์ค ์ถ์ (Portfolio tracking) ํตํฉ
StockAI๊ฐ ์ ์ฉํ๋ค๊ณ ๋๋ผ์ ๋ค๋ฉด GitHub์ โญ๋ฅผ ๋จ๊ฒจ์ฃผ์ธ์. ํ๋ก์ ํธ๊ฐ ์ฑ์ฅํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ๋ํ, ์ด๋ฅผ ํ์ฉํด ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋์ จ๊ฑฐ๋ ํผ๋๋ฐฑ์ด ์๋ค๋ฉด ์๋ ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
์ฆ๊ฑฐ์ด ํธ๋ ์ด๋ฉ ๋์๊ธธ ๋ฐ๋๋๋ค ๐
๐ฌ ์ฌ๋ฌ๋ถ๊ป ๋๋ฆฌ๋ ์งง์ ์ง๋ฌธ: StockAI์ ํจ๊ป ์ด๋ค AI ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ์ ๊ฐ์ โ OpenAI, Claude, DeepSeek, ์๋๋ฉด ๋ก์ปฌ Ollama ๋ชจ๋ธ์ธ๊ฐ์? ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ฃผ์ ์์ฅ์ ๊ฐ์ฅ ๊ด์ฌ์ด ์์ผ์ ๊ฐ์ (๋ฏธ๊ตญ, ์ค๊ตญ, ํน์ ๋ค๋ฅธ ๊ณณ)? ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ โ ์ฌ๋ฌ๋ถ์ ๋ต๋ณ์ด ๋ค์ ๊ธฐ๋ฅ์ ๊ฒฐ์ ํ ์๋ ์์ต๋๋ค!
AI ์๋ ์์ฑ ์ฝํ ์ธ
๋ณธ ์ฝํ ์ธ ๋ Dev.to AI tag์ ์๋ฌธ์ AI๊ฐ ์๋์ผ๋ก ์์ฝยท๋ฒ์ญยท๋ถ์ํ ๊ฒ์ ๋๋ค. ์ ์ ์๊ถ์ ์์ ์์์๊ฒ ์์ผ๋ฉฐ, ์ ํํ ๋ด์ฉ์ ๋ฐ๋์ ์๋ฌธ์ ํ์ธํด ์ฃผ์ธ์.
์๋ฌธ ๋ฐ๋ก๊ฐ๊ธฐ