|
1 | | -# SynergyX-Backend |
| 1 | +# 📈 PatternCatcher - Main Server |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +[](https://spring.io/projects/spring-boot) |
| 6 | +[](https://openjdk.org/) |
| 7 | +[](https://www.mysql.com/) |
| 8 | + |
| 9 | +> **AI 주가 예측 및 차트 패턴 기반 실시간 감지·백테스팅 시스템** |
| 10 | +> 🏆 한이음 드림업 장려상 수상작 |
| 11 | +
|
| 12 | +[🏠 Organization](https://github.com/SynergyX-AI-Pattern) • [📗 ML Server](https://github.com/SynergyX-AI-Pattern/SynergyX-ML-Server) • [📙 Client](https://github.com/SynergyX-AI-Pattern/SynergyX-Client) |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | +<img width="100%" alt="1-6f60498e" src="https://github.com/user-attachments/assets/24c17eaf-4506-4365-9752-37737730047c" /> |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +## 📌 Overview |
| 21 | +**PatternCatcher**는 개인 투자자가 자신만의 차트 패턴을 정의하고, <br> 실시간 감지 및 백테스팅을 통해 투자 전략의 유효성을 검증할 수 있는 AI 투자 보조 시스템입니다. |
| 22 | + |
| 23 | +**Main Server**는 사용자 인증, 종목 데이터 수집, 패턴 관리, FCM 푸시 알림 등 **핵심 비즈니스 로직을 담당하는 Spring Boot 기반 RESTful API 서버**입니다. <br> 모든 클라이언트 요청을 처리하고, AI 기능(패턴 감지, 백테스팅, 주가 예측)은 [ML Server](https://github.com/SynergyX-AI-Pattern/SynergyX-ML-Server)와 연동하여 수행합니다. |
| 24 | + |
| 25 | +### 주요 역할 |
| 26 | +- 🔐 **사용자 인증/인가** - JWT 기반 |
| 27 | +- 📊 **실시간 주가 데이터 수집** - 한국투자증권 API 연동 (KOSPI 100 종목) |
| 28 | +- 💾 **과거 5년 데이터 관리** - 백테스팅용 주가 데이터 수집/저장 |
| 29 | +- 🎯 **패턴 CRUD** - 사용자 정의 패턴 생성/수정/삭제 |
| 30 | +- 🔔 **실시간 알림** - FCM 푸시 알림 발송 |
| 31 | +- 🤝 **ML Server 연동** - AI 분석 요청 및 결과 저장 |
| 32 | +--- |
| 33 | + |
| 34 | +## 🛠 Tech Stack |
| 35 | + |
| 36 | +| Category | Technologies | |
| 37 | +|----------|-------------| |
| 38 | +| **Framework** |    | |
| 39 | +| **Language** |  | |
| 40 | +| **Database** |  | |
| 41 | +| **Security** |   | |
| 42 | +| **Infrastructure** |   | |
| 43 | +| **Documentation** |   | |
| 44 | +| **External API** |   | |
| 45 | + |
| 46 | +--- |
| 47 | + |
| 48 | +## 🏗 System Architecture |
| 49 | +<img width="579" alt="System Architecture" src="https://github.com/user-attachments/assets/f7ae2bbf-5c16-4480-94c4-e54c5ca0359a" /> |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## 🗂 ERD |
| 54 | +<img width="2868" alt="ERD" src="https://github.com/user-attachments/assets/886f1424-93fe-4d88-a384-a7e9a6786d1d" /> |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +## 📁 Project Structure |
| 59 | +``` |
| 60 | +src/main/java/com/synergyx/trading/ |
| 61 | +├── TradingApplication.java # Spring Boot main |
| 62 | +├── apiPayload/ # API 응답 처리 |
| 63 | +├── config/ # 설정 (Security, JWT) |
| 64 | +├── controller/ # REST API 컨트롤러 |
| 65 | +├── dto/ # DTO |
| 66 | +│ ├── user/ |
| 67 | +│ ├── pattern/ |
| 68 | +│ ├── backtest/ |
| 69 | +│ └── kis/ |
| 70 | +├── model/ # 엔티티 |
| 71 | +├── repository/ # JPA Repository |
| 72 | +├── service/ # 비즈니스 로직 |
| 73 | +│ ├── userService/ |
| 74 | +│ ├── stockService/ |
| 75 | +│ ├── patternService/ |
| 76 | +│ ├── backtestService/ |
| 77 | +│ └── fcmService/ |
| 78 | +├── scheduler/ # 스케줄러 |
| 79 | +└── util/ # 유틸리티 |
| 80 | +``` |
| 81 | + |
| 82 | +--- |
| 83 | + |
| 84 | +## 🚀 주요 기능 |
| 85 | + |
| 86 | +### 1. 사용자 인증/인가 |
| 87 | +- JWT 기반 액세스/리프레시 토큰 인증 |
| 88 | +- Spring Security 기반 보안 설정 |
| 89 | +- 회원가입, 로그인, 로그아웃 API |
| 90 | + |
| 91 | +### 2. 실시간 주가 데이터 수집 및 관리 |
| 92 | +- **한국투자증권 Open API 연동** (KOSPI 100 종목) |
| 93 | +- **15분 주기 자동 데이터 수집** (스케줄러 기반) |
| 94 | + - 실시간 현재가 수집 및 DB 저장 |
| 95 | + - 15분봉/1시간봉/1일봉/1개월봉 OHLCV 데이터 수집 |
| 96 | + - 재무정보 자동 업데이트 |
| 97 | +- **과거 5년 거래 데이터 수집** (백테스팅용) |
| 98 | +- 수집된 데이터를 ML Server 및 Client에 제공 |
| 99 | + |
| 100 | +### 3. 종목 정보 관리 |
| 101 | +- 종목 검색 및 목록 조회 (Top 20, AI Top 20) |
| 102 | +- 종목 상세 정보 조회 (실시간 가격, 재무정보) |
| 103 | +- 관심 종목 등록/조회/삭제 |
| 104 | +- 최근 조회 종목 자동 기록 |
| 105 | + |
| 106 | +### 4. 차트 패턴 관리 |
| 107 | +- 사용자 정의 패턴 생성/수정/삭제 |
| 108 | +- 패턴 목록 조회 및 상세 정보 |
| 109 | +- 패턴 적용 종목 설정 |
| 110 | +- 실시간 패턴 감지 알림 설정 |
| 111 | + |
| 112 | +### 5. 백테스팅 및 주가 예측 관리 |
| 113 | +- ML Server로 백테스팅 요청 전달 (수집된 과거 5년 데이터 활용) |
| 114 | +- 백테스팅 결과 저장 및 조회 |
| 115 | +- 백테스팅 랭킹 제공 (최대 수익률 기준) |
| 116 | +- AI 주가 예측 결과 조회 |
| 117 | + |
| 118 | +### 6. AI 기능 관리 |
| 119 | +- **감정 투자 일기**: ML Server 연동하여 일기 작성, 감정 분석 요청 및 결과 저장/조회 |
| 120 | +- **AI 종목 검색**: ML Server 연동하여 이미지 기반 종목 검색 요청 처리 |
| 121 | + |
| 122 | +### 7. 실시간 알림 |
| 123 | +- Firebase Cloud Messaging(FCM)을 통한 푸시 알림 |
| 124 | +- 패턴 매칭 시 자동 알림 발송 |
| 125 | +- 알림 히스토리 조회 및 읽음 처리 |
| 126 | +- 알림 설정 관리 (on/off) |
| 127 | + |
| 128 | +--- |
| 129 | + |
| 130 | +## 👥 Contributors |
| 131 | + |
| 132 | +| | 한지수 | 조수민 | |
| 133 | +|:---:|:------:|:------:| |
| 134 | +| **GitHub** | [@eldeoddt](https://github.com/eldeoddt) | [@Soomxn](https://github.com/Soomxn) | |
| 135 | +| **Role** | Team / Backend Lead | Backend / ML Engineer | |
| 136 | +| **Profile** | <img width="120" src="https://avatars.githubusercontent.com/eldeoddt" /> | <img width="120" src="https://avatars.githubusercontent.com/Soomxn" /> | |
| 137 | +| **담당** | <div align="left"> • 프로젝트 구조 설계 <br/>• JWT 인증 시스템<br/>• 한국투자증권 API 연동<br/>• AWS 인프라 구축</div> | <div align="left"> • 실시간 패턴 감지 <br/> • 백테스팅/패턴 관리 <br/>• FCM 푸시 알림<br/>• ML Server 연동 API </div> | |
| 138 | + |
| 139 | +--- |
| 140 | + |
| 141 | +## 🔗 Related Repositories |
| 142 | + |
| 143 | +- [📗 ML Server](https://github.com/SynergyX-AI-Pattern/SynergyX-ML-Server) - FastAPI 기반 AI 서버 |
| 144 | +- [📙 Client](https://github.com/SynergyX-AI-Pattern/SynergyX-Client) - Flutter 모바일 앱 |
| 145 | + |
| 146 | +--- |
| 147 | + |
| 148 | +## 📧 Contact |
| 149 | + |
| 150 | +**Email**: patterncatcher83@gmail.com |
| 151 | + |
| 152 | +--- |
| 153 | + |
| 154 | +<div align="center"> |
| 155 | + |
| 156 | +**PatternCatcher Main Server** by Team SynergyX |
| 157 | + |
| 158 | +© 2025 Team SynergyX. All rights reserved. |
| 159 | + |
| 160 | +</div> |
0 commit comments