금융상품 추천 및 시뮬레이션 기능을 제공하는 Spring Boot REST API 서버입니다.
api 서버 주소 :
| 브랜치 | 설명 | 상태 |
|---|---|---|
main |
안정적인 기본 버전 | ✅ 배포 가능 |
feature/portfolio |
포트폴리오 배분 기능, 나이 필터링, 청년도약계좌 부분납입 계산 | 🚧 개발 중 |
- Java 17
- Spring Boot 3.5
- Spring Data JPA
- MySQL 8.0
- Gradle
- crawler 저장소의 수집기를 먼저 실행해서 DB에 데이터를 채워야 합니다
- MySQL 8.0이 설치되어 있어야 합니다
- JDK 17이 설치되어 있어야 합니다
git clone https://github.com/ax-innovation/server.git
cd server# 기본 버전 (main)
git checkout main
# 포트폴리오 기능 버전
git checkout feature/portfolioWindows:
copy src\main\resources\application.example.yml src\main\resources\application.ymlMac/Linux:
cp src/main/resources/application.example.yml src/main/resources/application.ymlapplication.yml 열어서 아래 항목 입력:
spring:
datasource:
password: MySQL_비밀번호IntelliJ:
- server 폴더 열기
- Gradle 새로고침 (오른쪽 Gradle 탭 → 🔄 버튼)
- FinapiApplication.java 우클릭 → Run
터미널:
# Windows
.\gradlew.bat bootRun
# Mac/Linux
./gradlew bootRun서버 실행 후 http://localhost:8080 에서 동작합니다.
POST /api/v1/recommend
Content-Type: application/json
저축 요청 예시 (일반 모드):
{
"age": 28,
"annualIncome": 36000000,
"monthlyDeposit": 500000,
"termMonths": 12,
"purpose": "저축",
"productTypes": ["적금", "청년도약계좌"],
"portfolioMode": false
}저축 요청 예시 (포트폴리오 모드):
{
"age": 28,
"annualIncome": 36000000,
"monthlyDeposit": 1000000,
"termMonths": 12,
"purpose": "저축",
"productTypes": ["청년도약계좌", "적금"],
"portfolioMode": true,
"allocation": {
"청년도약계좌": 700000,
"적금": 300000
}
}대출 요청 예시:
{
"age": 28,
"annualIncome": 36000000,
"loanAmount": 200000000,
"loanTermMonths": 120,
"purpose": "대출",
"productTypes": ["주택담보대출", "디딤돌대출"],
"portfolioMode": false
}| 상품 | 계산 방식 |
|---|---|
| 적금 (단리) | 월납입액 × (연금리/12) × n(n+1)/2 |
| 적금 (월복리) | FV = PMT × [(1+r)^n - 1] / r |
| 정기예금 | 원금 × 금리 × 기간/12 |
| 청년도약계좌 | 납입 기간별 이자 + 정부기여금 (소득 구간별 자동 계산) |
| 대출 (원리금균등) | M = P × r(1+r)^n / [(1+r)^n - 1] |