Skip to content
please-2000wonPublic

About

๐Ÿ’ธ Peer Group ๋น„๊ต ๊ธฐ๋ฐ˜ AI ๊ธˆ์œต ๋ถ„์„ ์„œ๋น„์Šค ๐ŸคPeerfoilo๐Ÿค BE

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

168 Commits

Folders and files

Repository files navigation

๐Ÿ’ฐ Peerfolio Backend

๊ฒฝ์ œ์  ์—ฌ๊ฑด์ด ์œ ์‚ฌํ•œ Peer Group๊ณผ์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ํˆฌ์žํ–‰๋™๊ณผ ์œ„ํ—˜์š”์ธ์„ ์ ๊ฒ€ํ•˜๋Š” AI ๊ธˆ์œต ๋ถ„์„ ์„œ๋น„์Šค

Peerfolio๋Š” ์‚ฌ์šฉ์ž์˜ ์†Œ๋“, ์ง€์ถœ, ์ €์ถ• ๋ชฉํ‘œ, ์ž์‚ฐ ๋ฐ ๋ถ€์ฑ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ์ œ์  ์—ฌ๊ฑด์ด ์œ ์‚ฌํ•œ Peer Group์„ ๊ตฌ์„ฑํ•˜๊ณ ,
์‚ฌ์šฉ์ž์™€ Peer Group์˜ ๊ธˆ์œต ์ž์‚ฐ ๊ตฌ์„ฑ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ˜„์žฌ์˜ ํˆฌ์žํ–‰๋™์„ ๊ฐ๊ด€์ ์œผ๋กœ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ํŠน์ • ๊ธˆ์œต์ƒํ’ˆ์„ ์ถ”์ฒœํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ต์„ ์˜ˆ์ธกํ•˜์ง€ ์•Š์œผ๋ฉฐ, Peer Group์˜ ํ‰๊ท ์€ ์ ์ • ํฌํŠธํด๋ฆฌ์˜ค๊ฐ€ ์•„๋‹Œ ๋น„๊ต๋ฅผ ์œ„ํ•œ ์ฐธ๊ณ  ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ’ก Why Peerfolio?

๊ธฐ์กด ํˆฌ์ž ์„œ๋น„์Šค๊ฐ€ ์‹œ์žฅยท์ข…๋ชฉยท์ˆ˜์ต๋ฅ  ์ค‘์‹ฌ์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋ฉด,
Peerfolio๋Š” ๋‚˜์™€ ๊ฒฝ์ œ์  ์—ฌ๊ฑด์ด ์œ ์‚ฌํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ํ˜„์žฌ์˜ ํˆฌ์žํ–‰๋™์„ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.

Peer ํ‰๊ท ์„ ์ •๋‹ต์ด๋‚˜ ์ถ”์ฒœ ํฌํŠธํด๋ฆฌ์˜ค๋กœ ์ œ์‹œํ•˜์ง€ ์•Š๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์ž์‚ฐ ํŽธ์ค‘๊ณผ ์œ„ํ—˜์š”์ธ์„ ์Šค์Šค๋กœ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋น„๊ต ๊ทผ๊ฑฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ” ์ธ์ฆ ๋ฐ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

  • ์ด๋ฉ”์ผ ๊ธฐ๋ฐ˜ ํšŒ์›๊ฐ€์ž… / ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ
  • Spring Security + JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋ฐ ์ธ๊ฐ€
  • BCrypt ๊ธฐ๋ฐ˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”
  • SMTP ๊ธฐ๋ฐ˜ ์ด๋ฉ”์ผ ์ธ์ฆ
  • ํšŒ์› ์ •๋ณด ์กฐํšŒ ๋ฐ ํšŒ์› ํƒˆํ‡ด

๐Ÿ’ฐ ๊ธˆ์œต ์ •๋ณด ๊ด€๋ฆฌ

  • ์›”์ˆ˜์ž…, ๊ณ ์ •์ง€์ถœ, ์ €์ถ•๋ชฉํ‘œ, ๋ณด์œ ์ž์‚ฐ, ๋ถ€์ฑ„ ๊ด€๋ฆฌ
  • ์˜ˆยท์ ๊ธˆยท์ฑ„๊ถŒ / ๊ตญ๋‚ด์ฃผ์‹ / ํ•ด์™ธ์ฃผ์‹ / ๋Œ€์ฒดยท๊ณ ์œ„ํ—˜์ž์‚ฐ ๊ด€๋ฆฌ
  • ์ˆœ์ž์‚ฐ ๋ฐ ์ด ๊ธˆ์œต ์ž์‚ฐ ๊ณ„์‚ฐ
  • ๊ธˆ์œต ๋ฐ์ดํ„ฐ ์ž…๋ ฅ๊ฐ’ ๊ฒ€์ฆ ๋ฐ ๋™์‹œ ์ €์žฅ ์•ˆ์ •์„ฑ ์ฒ˜๋ฆฌ

๐Ÿ‘ฅ Peer Matching & Benchmark

  • ๊ฒฝ์ œ์  ์—ฌ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž ๊ฐ„ ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ
  • ์œ ์‚ฌ๋„ ๊ธฐ๋ฐ˜ Peer Group ๊ตฌ์„ฑ
  • Peer Group์˜ ๊ธˆ์œต ํ”„๋กœํ•„ ๋ฐ ํˆฌ์ž ์ž์‚ฐ Benchmark ๊ณ„์‚ฐ
  • ์‚ฌ์šฉ์ž์™€ Peer Group์˜ ์ž์‚ฐ ๊ธˆ์•ก ๋ฐ ๊ตฌ์„ฑ ๋น„์œจ ๋น„๊ต
  • ์ต๋ช… Peer ์นด๋“œ ๋ฐ 1:1 ์ƒ์„ธ ๊ธˆ์œต ์ •๋ณด ๋น„๊ต

๐Ÿ“Š ํˆฌ์žํ–‰๋™ ์œ„ํ—˜ ์ ๊ฒ€

  • ์‚ฌ์šฉ์ž์™€ Peer Group ๊ฐ„ ์ž์‚ฐ ๊ตฌ์„ฑ ์ฐจ์ด ๋ถ„์„
  • ์ž์‚ฐ ์ง‘์ค‘๋„, ๋ถ€์ฑ„ ๋ฐ ๊ณ ์ •์ง€์ถœ ๋ถ€๋‹ด ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ„ํ—˜ ์ ์ˆ˜ ๊ณ„์‚ฐ
  • 0 ~ 100 ๋ฒ”์œ„์˜ ์œ„ํ—˜ ์ ์ˆ˜ ๋ฐ LOW / MEDIUM / HIGH ์œ„ํ—˜ ๋‹จ๊ณ„ ์‚ฐ์ถœ
  • ๊ธˆ์œต ์ •๋ณด ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ์žฌ๋ถ„์„ ๋ฐฉ์ง€

๐Ÿค– AI ๊ธˆ์œต ๋ถ„์„ ๋ฐ ์ฑ—๋ด‡

  • Peer Benchmark์™€ ์œ„ํ—˜ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ OpenAI ๊ธˆ์œต ๋ถ„์„ ๋ฌธ๊ตฌ ์ƒ์„ฑ
  • ๊ฐœ๋ณ„ Peer๊ฐ€ ์•„๋‹Œ ์ง‘๊ณ„๋œ Peer Group ๋ฐ์ดํ„ฐ๋ฅผ AI ๋ถ„์„์— ํ™œ์šฉ
  • ์‚ฌ์šฉ์ž์˜ ์ตœ์‹  ๊ธˆ์œต ์ •๋ณด์™€ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธˆ์œต ์ฑ—๋ด‡ ์ œ๊ณต
  • ์ฑ—๋ด‡ ์‘๋‹ต๋ณ„ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ์ €์žฅ ๋ฐ ์ค‘๋ณต ์ œ์ถœ ๋ฐฉ์ง€

๐Ÿ›  Tech Stack

Category Stack
Language Java 21
Framework Spring Boot
ORM Spring Data JPA
Database MySQL
Security Spring Security, JWT, BCrypt
Email Spring Mail, SMTP
AI OpenAI API
API Docs Swagger / OpenAPI
Build Gradle
Infra Docker, Docker Compose
CI/CD GitHub Actions
Deploy AWS EC2

๐Ÿ— Backend Architecture

Peerfolio Backend๋Š” ๋„๋ฉ”์ธ ์ค‘์‹ฌ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

src/main/java/com/example/peerfolio
โ”œโ”€โ”€ domain
โ”‚   โ”œโ”€โ”€ auth
โ”‚   โ”œโ”€โ”€ user
โ”‚   โ”œโ”€โ”€ emailverification
โ”‚   โ”œโ”€โ”€ financialinfo
โ”‚   โ”œโ”€โ”€ financialprofile
โ”‚   โ”œโ”€โ”€ financialasset
โ”‚   โ”œโ”€โ”€ peermatch
โ”‚   โ”œโ”€โ”€ analysisresult
โ”‚   โ”œโ”€โ”€ chatmessage
โ”‚   โ””โ”€โ”€ chatfeedback
โ”‚
โ””โ”€โ”€ global
    โ”œโ”€โ”€ apiPayload
    โ”œโ”€โ”€ config
    โ”œโ”€โ”€ openai
    โ”œโ”€โ”€ security
    โ””โ”€โ”€ util

๊ฐ ๊ธฐ๋Šฅ์„ ๋…๋ฆฝ์ ์ธ ๋„๋ฉ”์ธ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ณตํ†ต API ์‘๋‹ต, Security, OpenAI ์—ฐ๋™ ๋ฐ ์„ค์ •์€ global ์˜์—ญ์—์„œ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
Peer Similarity, Benchmark, Risk Score ๋“ฑ์˜ ๊ณ„์‚ฐ ๋กœ์ง์€ ๋ณ„๋„์˜ Calculator๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์—ญํ• ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”„ Analysis Flow

์‚ฌ์šฉ์ž ๊ธˆ์œต ์ •๋ณด ์ž…๋ ฅ
        โ†“
๊ฒฝ์ œ์  ์—ฌ๊ฑด ๊ธฐ๋ฐ˜ Peer Matching
        โ†“
Peer Group Benchmark ๊ณ„์‚ฐ
        โ†“
์‚ฌ์šฉ์ž์™€ Peer Group์˜ ์ž์‚ฐ ๊ตฌ์„ฑ ๋น„๊ต
        โ†“
์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์œ„ํ—˜ ์ ์ˆ˜ / ์œ„ํ—˜ ๋‹จ๊ณ„ ๊ณ„์‚ฐ
        โ†“
OpenAI ๋ถ„์„ ๋ฌธ๊ตฌ ์ƒ์„ฑ
        โ†“
AnalysisResult ์ €์žฅ
        โ†“
๋ถ„์„ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜ ๊ธˆ์œต ์ฑ—๋ด‡

๐Ÿ—ƒ ERD

User๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ธˆ์œต ํ”„๋กœํ•„๊ณผ ๊ธˆ์œต ์ž์‚ฐ์„ ๊ด€๋ฆฌํ•˜๊ณ , Peer Matching ๊ฒฐ๊ณผ์™€ ๊ธˆ์œต ๋ถ„์„ ๋ฐ ์ฑ—๋ด‡ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

Peerfolio ERD

ERD๋Š” MVP์˜ ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ‘ฅ Members

Member Contribution
ํ™์ง„์šฐ (@j2nooh) ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ์„ค์ •, User/Auth API, Spring Security + JWT ์ธ์ฆ/์ธ๊ฐ€, SMTP ์ด๋ฉ”์ผ ์ธ์ฆ, FinancialProfile / FinancialAsset API, OpenAI ๊ธฐ๋ฐ˜ ๊ธˆ์œต ์ฑ—๋ด‡ API, ์ฑ—๋ด‡ ํ”ผ๋“œ๋ฐฑ API
์ฃผํ•ด์œค (@uaeoon) Peer Matching ๋ฐ Benchmark ๋กœ์ง, ํˆฌ์ž ์œ„ํ—˜ ์ ์ˆ˜ ๊ณ„์‚ฐ, OpenAI ๊ธฐ๋ฐ˜ ๊ธˆ์œต ๋ถ„์„ API, Peer ์นด๋“œ / 1:1 ์ƒ์„ธ ๋น„๊ต API, Docker ํ™˜๊ฒฝ ๊ตฌ์„ฑ, GitHub Actions CI/CD ๋ฐ AWS EC2 ๋ฐฐํฌ

๐Ÿ“š API Documentation

Swagger๋ฅผ ํ†ตํ•ด ์ฃผ์š” Backend API์˜ ์š”์ฒญ/์‘๋‹ต ๋ช…์„ธ๋ฅผ ๋ฌธ์„œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

Domain ์ฃผ์š” ๊ธฐ๋Šฅ
Auth ์ด๋ฉ”์ผ ์ธ์ฆ, ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ
User ์‚ฌ์šฉ์ž ์ •๋ณด ์กฐํšŒ, ํšŒ์› ํƒˆํ‡ด
Financial Info ๊ธˆ์œต ์ •๋ณด ์ €์žฅ / ์กฐํšŒ / ์ˆ˜์ •
Analysis Peer Matching ๋ฐ AI ๊ธˆ์œต ๋ถ„์„
Peer Peer ์นด๋“œ ๋ฐ ์ƒ์„ธ ๋น„๊ต
Chat AI ๊ธˆ์œต ์ฑ—๋ด‡
Feedback ์ฑ—๋ด‡ ์‘๋‹ต ํ”ผ๋“œ๋ฐฑ

๐Ÿš€ Deployment

develop Merge
      โ†“
GitHub Actions
      โ†“
Docker Build
      โ†“
AWS EC2
      โ†“
Docker Compose
      โ†“
Spring Boot Server

develop ๋ธŒ๋žœ์น˜์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜๋ฉด GitHub Actions๋ฅผ ํ†ตํ•ด Docker Build๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , AWS EC2 ํ™˜๊ฒฝ์— ์ž๋™ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.


๐ŸŒฟ Branch Convention

๋ธŒ๋žœ์น˜ ์ด๋ฆ„์€ ์•„๋ž˜ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

type/์ด์Šˆ๋ฒˆํ˜ธ-์ž‘์—…๋‚ด์šฉ
Type ์˜๋ฏธ ์˜ˆ์‹œ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ feat/1-signup
fix ๋ฒ„๊ทธ ์ˆ˜์ • fix/2-login-error
docs ๋ฌธ์„œ ์ˆ˜์ • docs/3-readme
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง refactor/4-member-service
chore ์„ค์ •, ๋นŒ๋“œ, ๊ธฐํƒ€ ์ž‘์—… chore/5-github-template
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ test/6-member-service

๐Ÿ’ฌ Commit Convention

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ์•„๋ž˜ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

type: ์ž‘์—… ๋‚ด์šฉ
Type ์˜๋ฏธ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ •
docs ๋ฌธ์„œ ์ˆ˜์ •
style ์ฝ”๋“œ ํฌ๋งทํŒ… ๋“ฑ ๊ธฐ๋Šฅ ๋ณ€ํ™” ์—†๋Š” ์ˆ˜์ •
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •
chore ๋นŒ๋“œ ์„ค์ •, ํŒจํ‚ค์ง€ ์„ค์ •, ๊ธฐํƒ€ ์ž‘์—…
rename ํŒŒ์ผ ๋˜๋Š” ํด๋”๋ช… ๋ณ€๊ฒฝ
remove ํŒŒ์ผ ์‚ญ์ œ

About

๐Ÿ’ธ Peer Group ๋น„๊ต ๊ธฐ๋ฐ˜ AI ๊ธˆ์œต ๋ถ„์„ ์„œ๋น„์Šค ๐ŸคPeerfoilo๐Ÿค BE

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages