diff --git a/README.md b/README.md index b286513..7eca372 100644 --- a/README.md +++ b/README.md @@ -1 +1,140 @@ -# Valuedi_Backend \ No newline at end of file +# πŸ”₯ VALUEDI - λͺ©ν‘œ 달성을 λ•λŠ” μžμ‚° 관리 μ„œλΉ„μŠ€ + +![valuedi](docs/images/valuedi.png) + +**λͺ©μ : λ°Έλ₯˜λ””(VALUEDI) μ„œλΉ„μŠ€ 개발** + +VALUEDIλŠ” μ‚¬μš©μžμ˜ 금육 데이터λ₯Ό 기반으둜 **λͺ©ν‘œ 쀑심 μžμ‚° ν˜„ν™©μ„ 제곡**ν•˜κ³ , **μ†ŒλΉ„ μ„±ν–₯을 뢄석**ν•˜μ—¬ +κ°œμΈμ—κ²Œ μ ν•©ν•œ 금육 μƒν’ˆμ„ μΆ”μ²œν•¨μœΌλ‘œμ¨ **λͺ©ν‘œ 달성을 λ•λŠ” μžμ‚° 관리 μ„œλΉ„μŠ€**μž…λ‹ˆλ‹€. + +--- + +## πŸ“Œ ν”„λ‘œμ νŠΈ κ°œμš” +- **λͺ©ν‘œ 쀑심 μžμ‚° ν˜„ν™© 제곡**: μ‚¬μš©μžμ˜ μžμ‚°/λͺ©ν‘œ 정보λ₯Ό 기반으둜 ν˜„μž¬ μ§„ν–‰ 상황을 μ‹œκ°ν™”/μš”μ•½ +- **μ†ŒλΉ„ μ„±ν–₯ 뢄석**: 거래/μ†ŒλΉ„ 데이터λ₯Ό λ°”νƒ•μœΌλ‘œ μ†ŒλΉ„ νŒ¨ν„΄μ„ 뢄석 +- **금육 MBTI 기반 μ„±ν–₯ 진단**: μ‚¬μš©μž 응닡/데이터λ₯Ό λ°”νƒ•μœΌλ‘œ 금육 μ„±ν–₯을 λΆ„λ₯˜ν•˜κ³ , μΆ”μ²œ/λΆ„μ„μ˜ κΈ°μ€€μœΌλ‘œ ν™œμš© +- **금육 μƒν’ˆ μΆ”μ²œ**: μ‚¬μš©μž μ„±ν–₯ 및 λͺ©ν‘œμ— λ§žλŠ” 금육 μƒν’ˆ(예: 적금)을 μΆ”μ²œ + +--- + +## πŸ—οΈ μ„œλ²„ μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨ + +![Server Architecture](docs/images/architecture.png) + +### ꡬ성 μš”μ•½ +- Client(Web/App) β†’ **Nginx(Reverse Proxy)** β†’ **Spring Boot API Server** +- Spring Boot API ↔ **Redis** (μΊμ‹œ/μ„Έμ…˜/μž„μ‹œ 데이터 λ“±) +- Spring Boot API ↔ **RDS(MySQL)** *(Private Subnet)* +- IntelliJ β†’ GitHub β†’ **GitHub Actions(CI/CD)** β†’ AWS(EC2) 배포 + +--- + +## πŸ—ƒοΈ ERD + +![ERD](docs/images/erd.png) + +--- + +## 🧩 μ‚¬μš©ν•œ 브랜치 μ „λž΅ / 기술 μŠ€νƒ / ν”„λ‘œμ νŠΈ ꡬ쑰 + +### 브랜치 μ „λž΅ +이슈 λ‹¨μœ„λ‘œ μž‘μ—…μ„ κ΄€λ¦¬ν•˜λ©°, **브랜치λͺ…에 이슈 번호λ₯Ό 포함**ν•©λ‹ˆλ‹€. +- ν˜•μ‹: `/#-` + +**type μ˜ˆμ‹œ** +- `main` : 배포/μ΅œμ’… 제좜 브랜치 +- `develop` : 개발 톡합 브랜치 +- `feat/*` : κΈ°λŠ₯ 개발 +- `fix/*` : 버그 μˆ˜μ • +- `hotfix/*` : 운영 쀑 κΈ΄κΈ‰ 버그 μˆ˜μ • +- `ref/*` : λ¦¬νŒ©ν† λ§ +- `docs/*` : λ¬Έμ„œ(README λ“±) + +**브랜치 μ˜ˆμ‹œ** +- `feat/#58-savings-recommendation` +- `fix/#79-goal-after-balance` +- `ref/#84-trophy-current-member` + +--- + +### 기술 μŠ€νƒ +#### Backend +- Core: Java 17, Spring Boot 4.0.1, Gradle +- Data: Spring Data JPA, QueryDSL 7.0, MySQL (RDS), Redis +- Security: Spring Security, JWT +- Network & Integration: OpenFeign, Spring Retry, WebClient + +#### Infra & DevOps +- Cloud: AWS (EC2, Route 53, VPC) +- Server: Nginx (Reverse Proxy, HTTPS/SSL) +- Database: MySQL (RDS), Redis +- CI/CD: Docker, GitHub Actions + +#### CI/CD +- GitHub Actions + +#### External APIs +- AI: Google Gemini +- Finance: CODEF (λ§ˆμ΄λ°μ΄ν„°), FSS (κΈˆκ°μ› OpenAPI) + +#### Collaboration / Tools +- Documentation: Swagger (SpringDoc OpenAPI 3.0) +- Management: GitHub, Notion + +--- + +### ν”„λ‘œμ νŠΈ ꡬ쑰 (DDD 기반) +- λ³Έ ν”„λ‘œμ νŠΈλŠ” DDD(Domain-Driven Design) κ΄€μ μ—μ„œ **λ„λ©”μΈλ³„λ‘œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ 뢄리**ν•˜μ—¬ κ΄€λ¦¬ν•©λ‹ˆλ‹€. +- `domain/*`μ—λŠ” 각 λ„λ©”μΈμ˜ Entity/Service/Repository λ“± 핡심 λ‘œμ§μ„ λ°°μΉ˜ν•©λ‹ˆλ‹€. +- `global/*`μ—λŠ” 곡톡 μ„€μ •, λ³΄μ•ˆ, 응닡 포맷, μ™ΈλΆ€ API 연동 λͺ¨λ“ˆμ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€. + +``` +src/main/java/org/umc/valuedi +β”œβ”€β”€ domain +β”‚ β”œβ”€β”€ asset +β”‚ β”‚ β”œβ”€ controller +β”‚ β”‚ β”œβ”€ converter +β”‚ β”‚ β”œβ”€ dto +β”‚ β”‚ β”œβ”€ entity +β”‚ β”‚ β”œβ”€ enums +β”‚ β”‚ β”œβ”€ exception +β”‚ β”‚ β”œβ”€ repository +β”‚ β”‚ └─ service +β”‚ β”œβ”€β”€ auth +β”‚ β”œβ”€β”€ connection +β”‚ β”œβ”€β”€ goal +β”‚ β”œβ”€β”€ ledger +β”‚ β”œβ”€β”€ mbti +β”‚ β”œβ”€β”€ member +β”‚ β”œβ”€β”€ savings +β”‚ β”œβ”€β”€ terms +β”‚ └── trophy +└── global +β”œβ”€β”€ apiPayload +β”‚ β”œβ”€ code +β”‚ β”œβ”€ exception +β”‚ └─ handler +β”œβ”€β”€ config +β”œβ”€β”€ external +β”‚ β”œβ”€ codef +β”‚ β”œβ”€ fss +β”‚ └─ genai +└── security + β”œβ”€ annotation + β”œβ”€ handler + β”œβ”€ jwt + β”œβ”€ principal + β”œβ”€ service + └─ util +``` + +--- + +## πŸ‘₯ νŒ€μ› 정보 +| 이름 | μ—­ν•  | κΉƒν—™ μ£Όμ†Œ | +|-----|------|--------------------------------| +| κΆŒλ„ν¬ | Backend | https://github.com/seamooll | +| μ΅œμ •κ·œ | Backend | https://github.com/JeongGyul | +| μœ€λ„ν›ˆ | Backend | https://github.com/hodoon | +| 이가은 | Backend | https://github.com/kkeunii | +| μ΄μ‹œμ—° | Backend | https://github.com/lee-si-yeon | diff --git a/docs/images/architecture.png b/docs/images/architecture.png new file mode 100644 index 0000000..77f9ac6 Binary files /dev/null and b/docs/images/architecture.png differ diff --git a/docs/images/erd.png b/docs/images/erd.png new file mode 100644 index 0000000..421052d Binary files /dev/null and b/docs/images/erd.png differ diff --git a/docs/images/valuedi.png b/docs/images/valuedi.png new file mode 100644 index 0000000..63f6cd7 Binary files /dev/null and b/docs/images/valuedi.png differ