Shioaji Pro
為 agent 交易鋪路:交易終端全程由 coding agent 打造,介面 100% 開源、桌面版內建 AI Agent 與全套專業下單面板 — 這個終端就是能力證明。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
주식 정보 사이트 프로젝트
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
실시간 주식 시세·시장 지표·포트폴리오 관리 웹 서비스. Spring Boot(Java) + Python(FastAPI) + Next.js(React) 3-tier 구조로 기획부터 개발·배포·운영까지 개인이 전담한 프로젝트입니다.檢視完整 README ↗
실시간 주식 시세·시장 지표·포트폴리오 관리 웹 서비스. Spring Boot(Java) + Python(FastAPI) + Next.js(React) 3-tier 구조로 기획부터 개발·배포·운영까지 개인이 전담한 프로젝트입니다.
🔗 Live: https://marketboard.duckdns.org
/overview)도 제공Finnhub WS ──▶ collector (FastAPI) ──▶ Redis (Pub/Sub, 캐시) ──▶ marketboardBackend (Spring Boot) ──▶ frontend (Next.js)
│ │
└────────────────────▶ MySQL ◀───────────────────┘
frontend/) — Next.js 16 / React 19, Astryx 디자인 시스템, STOMP over SockJS로 실시간 시세 구독, lightweight-charts로 캔들/지표 차트marketboardBackend/) — Spring Boot 4 / Java 17, JWT 인증, JPA + MySQL, Redis 캐싱, STOMP WebSocket, Flyway 마이그레이션, Prometheus 메트릭 노출collector/) — Python / FastAPI, Finnhub WebSocket 클라이언트, yfinance 기반 REST 폴백·백필·재무/시장지표 프록시, S&P500 유니버스 배치rasp4)에 self-hosted GitHub Actions 러너로 push 시 자동 빌드·배포, nginx + Let's Encrypt + DuckDNS로 HTTPS 공개| 영역 | 스택 |
|---|---|
| Backend | Java 17, Spring Boot 4.1, Spring Security, Spring Data JPA, Spring WebSocket(STOMP), Flyway, JJWT, Bucket4j, Caffeine, MySQL, Redis |
| Collector | Python 3.12, FastAPI, yfinance, websockets, pandas, BeautifulSoup, Redis, PyMySQL |
| Frontend | Next.js 16, React 19, TypeScript, Astryx 디자인 시스템, @stomp/stompjs, lightweight-charts |
| Infra/Ops | Docker Compose, nginx, Let's Encrypt/Certbot, DuckDNS, GitHub Actions(self-hosted runner), Prometheus, Grafana |
marketboard/
├── marketboardBackend/ # Spring Boot API + WebSocket 서버 (Java 17)
├── collector/ # 시세 수집·시장데이터 프록시 (Python/FastAPI)
├── frontend/ # 웹 클라이언트 (Next.js/React)
├── nginx/ # 리버스 프록시·TLS 설정
├── observability/ # Prometheus/Grafana 설정
├── docker-compose.yml # 배포 스택 정의
└── .env.example # 배포용 환경변수 템플릿
운영용 docker-compose.yml과 분리된 compose.local.yml을 사용합니다. 로컬 스택은 별도 프로젝트명, 네트워크, 볼륨, 컨테이너를 사용하며 Redis도 marketboard-local-redis(기본 호스트 포트 16380)로 완전히 분리됩니다.
cp .env.local.example .env.local
# .env.local의 FINNHUB_API_KEY 설정
docker compose --env-file .env.local -f compose.local.yml up -d --build
로컬 접속 주소는 frontend http://localhost:13100, backend http://localhost:18081, collector http://localhost:18001입니다. MySQL은 13308, Redis는 16380으로 노출됩니다.
인프라만 Docker로 실행하고 애플리케이션을 호스트에서 개발하려면 다음처럼 실행합니다.
docker compose --env-file .env.local -f compose.local.yml up -d mysql redis
Backend와 Collector의 로컬 기본값이 위 포트와 계정에 맞춰져 있어 별도 DB/Redis 환경변수 없이 실행할 수 있습니다. 다른 포트를 선택했다면 DB_URL/REDIS_PORT(Backend), MYSQL_PORT/REDIS_PORT(Collector)로 재정의하세요.
Backend
cd marketboardBackend
./gradlew bootRun
Collector
cd collector
uv run python main.py
Frontend
cd frontend
npm install
npm run dev # http://localhost:3100
각 서비스별 환경변수는 .env.example(루트, 배포 기준) 및 각 서브프로젝트의 application.yaml / 환경변수를 참고하세요.
cd marketboardBackend && ./gradlew test # JUnit
cd collector && uv run pytest # pytest
cd frontend && npm run lint # ESLint
main 브랜치 push 시 GitHub Actions(self-hosted runner, 라즈베리파이)가 자동으로 빌드·배포합니다(.github/workflows/ci.yml). docker-compose.yml이 MySQL/Redis/backend/collector/frontend/nginx/certbot/Prometheus/Grafana 전체 스택을 정의하며, nginx + Let's Encrypt + DuckDNS로 HTTPS를 제공합니다.
PROGRESS.md — 세션별 작업 이력, 남겨둔 이슈, Phase별 상세 체크리스트stock-monitor-dev-plan.html — 로드맵(Phase 1~7) 원본 기획서UPGRADE_IDEAS.md — 로드맵 완료 이후 개선 후보INVESTING_FEATURE_IDEAS.md / INVESTING_FEATURES_DESIGN.md — 투자 기능 확장 아이디어·설계