서비스 구체화 현 상태 README 정리
This commit is contained in:
81
README.md
81
README.md
@@ -26,6 +26,7 @@ Frontend, Backend, Travel Proxy, Auto Deployer를 Docker Compose로 통합하여
|
|||||||
├── docker/
|
├── docker/
|
||||||
│ └── webpage/ # 🚀 운영 런타임 (Docker Compose 기준점)
|
│ └── webpage/ # 🚀 운영 런타임 (Docker Compose 기준점)
|
||||||
│ ├── backend/ # lotto-backend
|
│ ├── backend/ # lotto-backend
|
||||||
|
│ ├── stock-lab/ # 🟪 stock-lab (Stock + AI)
|
||||||
│ ├── travel-proxy/ # travel API + thumbnail generator
|
│ ├── travel-proxy/ # travel API + thumbnail generator
|
||||||
│ ├── deployer/ # webhook 기반 자동 배포 컨테이너
|
│ ├── deployer/ # webhook 기반 자동 배포 컨테이너
|
||||||
│ ├── frontend/ # 정적 파일 (Vite build 결과)
|
│ ├── 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
|
- Frontend: http://localhost:8080
|
||||||
- Backend API: http://localhost:18000
|
- Backend API: http://localhost:18000
|
||||||
- Travel API: http://localhost:19000
|
- 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)
|
### 🟩 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)
|
### 🟨 Travel Proxy (travel-proxy)
|
||||||
|
|
||||||
- **역할**: 여행 사진 API, 지역별 사진 매칭, 썸네일 자동 생성 및 캐시를 담당합니다.
|
- **역할**: 여행 사진 API, 지역별 사진 매칭, 썸네일 자동 생성 및 캐시를 담당합니다.
|
||||||
|
|||||||
Reference in New Issue
Block a user