Skip to content

Commit 59a8933

Browse files
authored
Update README.md
1 parent 662f2ac commit 59a8933

File tree

1 file changed

+160
-1
lines changed

1 file changed

+160
-1
lines changed

README.md

Lines changed: 160 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,160 @@
1-
# SynergyX-Backend
1+
# 📈 PatternCatcher - Main Server
2+
3+
4+
5+
[![Spring Boot](https://img.shields.io/badge/Spring_Boot-3.4.4-6DB33F?logo=springboot&logoColor=white)](https://spring.io/projects/spring-boot)
6+
[![Java](https://img.shields.io/badge/Java-17-007396?logo=openjdk&logoColor=white)](https://openjdk.org/)
7+
[![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?logo=mysql&logoColor=white)](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** | ![Spring Boot](https://img.shields.io/badge/Spring_Boot-3.4.4-6DB33F?logo=springboot&logoColor=white) ![Spring Security](https://img.shields.io/badge/Spring_Security-6DB33F?logo=springsecurity&logoColor=white) ![JPA](https://img.shields.io/badge/JPA-6DB33F?logo=spring&logoColor=white) |
39+
| **Language** | ![Java](https://img.shields.io/badge/Java-17-007396?logo=openjdk&logoColor=white) |
40+
| **Database** | ![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?logo=mysql&logoColor=white) |
41+
| **Security** | ![JWT](https://img.shields.io/badge/JWT-000000?logo=jsonwebtokens&logoColor=white) ![BCrypt](https://img.shields.io/badge/BCrypt-003A70?logo=spring&logoColor=white) |
42+
| **Infrastructure** | ![AWS EC2](https://img.shields.io/badge/AWS_EC2-FF9900?logo=amazonec2&logoColor=white) ![AWS S3](https://img.shields.io/badge/AWS_S3-569A31?logo=amazons3&logoColor=white) |
43+
| **Documentation** | ![Swagger](https://img.shields.io/badge/Swagger-85EA2D?logo=swagger&logoColor=black) ![SpringDoc](https://img.shields.io/badge/SpringDoc-85EA2D?logo=spring&logoColor=white) |
44+
| **External API** | ![한국투자증권](https://img.shields.io/badge/한국투자증권_Open_API-003876?logo=investopedia&logoColor=white) ![Firebase](https://img.shields.io/badge/Firebase_FCM-FFCA28?logo=firebase&logoColor=black) |
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

Comments
 (0)