diff --git a/README.md b/README.md index 6813db9..e34d65c 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Frontend, Backend, Travel Proxy, Auto Deployer를 Docker Compose로 통합하여 ├── docker/ │ └── webpage/ # 🚀 운영 런타임 (Docker Compose 기준점) │ ├── backend/ # lotto-backend +│ ├── stock-lab/ # 🟪 stock-lab (Stock + AI) │ ├── travel-proxy/ # travel API + thumbnail generator │ ├── deployer/ # webhook 기반 자동 배포 컨테이너 │ ├── frontend/ # 정적 파일 (Vite build 결과) @@ -59,33 +60,24 @@ Frontend, Backend, Travel Proxy, Auto Deployer를 Docker Compose로 통합하여 ## 🧩 서비스 구성 개요 +```mermaid +graph LR + User[User Browser] -->|HTTP| Nginx + + subgraph NAS [Synology NAS] + Nginx -->|/api/lotto| Lotto[Lotto Backend] + Nginx -->|/api/travel| Travel[Travel Proxy] + Nginx -->|/api/stock| Stock[Stock Lab] + Stock -->|Trading/Balance| KIS[KIS API (Korea Inv.)] + Stock -->|Market News| News[News Sites] + end + + subgraph Windows [High-Performance PC] + Stock -->|Analyze Request| WinServer[Windows AI Server] + WinServer -->|LLM Inference| Ollama[Ollama (Llama 3.1)] + WinServer -->|GPU| GPU[NVIDIA 3070 Ti] + end ``` -Internet - ↓ -Nginx (frontend container) - ├── / → SPA (React/Vite) - ├── /api/ → lotto-backend - ├── /api/travel/ → travel-proxy - ├── /media/... → Nginx 직접 파일 서빙 - └── /webhook/ → deployer -``` - ---- - -### 🟦 Frontend (lotto-frontend) - -- **역할**: React + Vite 기반 SPA로, 로또 추천 및 여행 지도 UI를 제공합니다. -- **특징**: - - 정적 파일만 운영 서버에 배포합니다. - - 장기 캐시(`assets/`)와 `index.html` 캐시 무효화 전략을 사용합니다. - - Backend / Travel API는 Nginx에서 Reverse Proxy로 연결됩니다. -- **배포 방식**: - 1. **로컬 개발**: - - `.env` 파일 설정 후 `docker compose up`으로 전체 스택 실행 가능 - 2. **운영 배포**: - - Code를 Git에 Push - - Webhook이 트리거되어 NAS가 자동 Pull & Deploy - - (Frontend 빌드 산출물은 별도 업로드 혹은 CI 연동 필요) --- @@ -109,9 +101,25 @@ docker compose up -d - Frontend: http://localhost:8080 - Backend API: http://localhost:18000 - Travel API: http://localhost:19000 +- Stock Lab API: http://localhost:18500 --- +### 🟦 Frontend (lotto-frontend) + +- **역할**: React + Vite 기반 SPA로, 로또 추천 및 여행 지도 UI를 제공합니다. +- **특징**: + - 정적 파일만 운영 서버에 배포합니다. + - 장기 캐시(`assets/`)와 `index.html` 캐시 무효화 전략을 사용합니다. + - Backend / Travel API는 Nginx에서 Reverse Proxy로 연결됩니다. +- **배포 방식**: + 1. **로컬 개발**: + - `.env` 파일 설정 후 `docker compose up`으로 전체 스택 실행 가능 + 2. **운영 배포**: + - Code를 Git에 Push + - Webhook이 트리거되어 NAS가 자동 Pull & Deploy + - (Frontend 빌드 산출물은 별도 업로드 혹은 CI 연동 필요) + --- ### 🟩 Backend (lotto-backend) @@ -136,6 +144,27 @@ docker compose up -d --- +### 🟪 Stock Lab (stock-lab) + +- **역할**: 주식 시장 분석 및 AI 기반 투자 조언 제공. NAS의 편의성과 Windows PC의 고성능을 결합한 하이브리드 아키텍처입니다. +- **주요 기능**: + - **시장 뉴스 스크랩**: 네이버 증권, 해외 주요 뉴스 사이트 크롤링 + - **자산 관리**: 한국투자증권(KIS) Open API 연동 (잔고 조회, 매수/매도) + - **AI 분석**: 고성능 PC의 로컬 LLM(Llama 3.1)을 활용하여 뉴스+포트폴리오 종합 분석 +- **기술 스택**: Python, FastAPI, Ollama (Lava/Llama3), Docker +- **연동 구조**: + ``` + [NAS Stock-Lab] <--(HTTP)--> [Windows AI Server] <--(Localhost)--> [Ollama GPU] + ``` +- **주요 엔드포인트**: + ```http + GET /api/stock/analyze # AI 시장 분석 요청 + GET /api/stock/news # 최신 뉴스 데이터 + GET /api/trade/balance # 계좌 잔고 조회 + ``` + +--- + ### 🟨 Travel Proxy (travel-proxy) - **역할**: 여행 사진 API, 지역별 사진 매칭, 썸네일 자동 생성 및 캐시를 담당합니다.