AI κΈ°λ° κ°λ°ν λ§€μΉ νλ«νΌ
κ°λ°μμ νλ‘μ νΈλ₯Ό μ§λ₯μ μΌλ‘ μ°κ²°νλ μ°¨μΈλ νμ μ루μ
DevMatchλ κ°λ°μμ κΈ°μ μ€νκ³Ό νλ‘μ νΈ μꡬμ¬νμ AIλ‘ λΆμνμ¬ μ΅μ μ λ§€μΉμ μ 곡νλ νλ«νΌμ λλ€. λ¨μν λ§€μΉμ λμ΄ ν ꡬμ±μ ν¨μ¨μ±κ³Ό νλ‘μ νΈ μ±κ³΅λ₯ μ κ·Ήλννλ κ²μ΄ λͺ©νμ λλ€.
- π€ AI κΈ°λ° λ§€μΉ: Spring AI + OpenAIλ₯Ό νμ©ν μ§λ₯ν κ°λ°μ-νλ‘μ νΈ λ§€μΉ
- π μ€μκ° λΆμ: μ§μμ κΈ°μ μ€νκ³Ό νλ‘μ νΈ μ ν©λ μ€μκ° λΆμ
- π μμ μΈμ¦: Google, Kakao, Naver ν΅ν© OAuth2 μΈμ¦
- π± λ°μν UI: λͺ¨λ λλ°μ΄μ€μμ μ΅μ νλ μ¬μ©μ κ²½ν
- β‘ μ€μκ° μ λ°μ΄νΈ: νλ‘μ νΈ μνμ μ§μ νν© μ€μκ° λκΈ°ν
- Framework: Next.js 15.4.3 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animation: Framer Motion
- UI Components: Radix UI
- State Management: React Context API
- HTTP Client: Axios
- Framework: Spring Boot 3.5.3
- Language: Java 21
- Security: Spring Security + JWT
- AI Integration: Spring AI + OpenAI
- Database: PostgreSQL
- ORM: Spring Data JPA
- Authentication: OAuth2 (Google, Kakao, Naver)
- Frontend Deploy: Vercel
- Backend Deploy: Railway
- Database: PostgreSQL on Neon
- Version Control: Git + GitHub
- CI/CD: Vercel, Railwayμ μ체 CI/CD κΈ°λ₯
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Backend β β Database β
β (Vercel) ββββββ (Railway) ββββββ(Neon PostgreSQL)β
β β β β β β
β β’ Next.js 15 β β β’ Spring Boot β β β’ PostgreSQL β
β β’ TypeScript β β β’ Spring AI β β β’ Connection β
β β’ Tailwind CSS β β β’ JWT Security β β Pool β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Node.js 18+
- Java 21+
- PostgreSQL
cd frontend
npm install
npm run dev
cd backend
# νκ²½λ³μ μ€μ (.env.default μ°Έκ³ )
./gradlew bootRun
NBE6-8-2-Team08/
βββ frontend/
β βββ src/
β β βββ app/ # Next.js App Router
β β βββ components/ # μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈ
β β βββ lib/ # API ν΄λΌμ΄μΈνΈ λ° μ νΈλ¦¬ν°
β β βββ contexts/ # React Context
β β βββ types/ # TypeScript νμ
μ μ
β βββ public/ # μ μ νμΌ
βββ backend/
βββ src/main/java/com/devmatch/backend/
βββ domain/ # λλ©μΈλ³ ν¨ν€μ§
β βββ analysis/ # AI λΆμ κΈ°λ₯
β βββ application/ # μ§μ κ΄λ¦¬
β βββ auth/ # μΈμ¦/μΈκ°
β βββ project/ # νλ‘μ νΈ κ΄λ¦¬
β βββ user/ # μ¬μ©μ κ΄λ¦¬
βββ global/ # κ³΅ν΅ μ€μ λ° μ νΈλ¦¬ν°
- κΈ°μ μ€ν λΆμ: μ§μμμ κΈ°μ μ€νκ³Ό νλ‘μ νΈ μꡬμ¬ν λΉκ΅
- μ ν©λ μ€μ½μ΄λ§: λ€μ°¨μ λΆμμ ν΅ν μ λμ λ§€μΉ μ μ
- μ€μκ° μΆμ²: νλ‘μ νΈλ³ μ΅μ μ§μμ μ€μκ° μΆμ²
- JWT κΈ°λ° μΈμ¦: 무μν ν ν° κΈ°λ° λ³΄μ
- OAuth2 ν΅ν©: μμ λ‘κ·ΈμΈ μν΄λ¦ μ§μ
- CORS μ€μ : νλ‘ νΈμλ-λ°±μλ μμ ν ν΅μ
- μ½λ μ€ν리ν : Next.js μλ λ²λ€ μ΅μ ν
- μ΄λ―Έμ§ μ΅μ ν: Next.js Image μ»΄ν¬λνΈ νμ©
- API μλ΅ μΊμ±: ν¨μ¨μ μΈ λ°μ΄ν° λ‘λ©
- π¨ Frontend: https://nbe-6-8-2-team08-vaug.vercel.app
- βοΈ Backend API: https://devmatch-production-cf16.up.railway.app
8ν - DevMatch κ°λ°ν
- κΉμ§μ: OAuth 2.0 μΈμ¦ ꡬν, μ¬μ©μ μ 체 API κ°λ°
- λ°±μν: νλ‘ νΈ μ 체, AI κΈ°λ° μν λ°°λΆ λ° μ§μμ λΆμ κΈ°λ₯ μ°λ
- μκ·ΌνΈ: μ§μμ μ 체 API κ°λ°
- μ₯λν: νλ‘μ νΈ μ 체 API κ°λ°
- μ½λ 리뷰μ μ μν λ¬Έμ 곡μ νμ±ν
- Github Flow κΈ°λ° νμ λ° μ΄μ κ΄λ¦¬
λΈλμΉ λͺ μ ν¬κ² μΈ λΆλΆμΌλ‘ λλμ΄ κ΅¬λΆνκΈ°
- μ²μμ νλ‘ νΈμλ(Front-End)μ λ°±μλ(Back-End) μμ
μ λͺ
νν ꡬλΆνκΈ° μν΄ λΈλμΉ μ΄λ¦μ
fe
,be
μ λμ¬λ₯Ό μ¬μ©νκΈ° - μ€κ°μλ λΌλ²¨λͺ νκΈ°
- λ§μ§λ§μ issueμ λλ² νκΈ°
fe/enhancement/23
be/maintenance/34
Git Issueλ νλ‘μ νΈ μμ±μ μν΄ κ°λ°μκ° μνν΄μΌ νλ κΈ°λ₯ λ¨μ μμ μ μΈλΆνν΄μ κ΄λ¦¬νκΈ°
- μμ μ΄ λ§‘μ κΈ°λ₯μ κΈ°λ₯ λ¨μλ‘ μͺΌκ°μ΄ Issue λ±λ‘
- Issue μ λͺ©μ κ°κ²°νκ², λ΄μ©μ ꡬ체μ μΌλ‘ μμ±
- ν λΉ(Assignee), λΌλ²¨(Labels), μ ν(Type) λ±μ νμ©ν΄ μ 무 λΆλ₯
- μ λͺ©: [BE] μ μ λ‘κ·ΈμΈ API ꡬν
- λ΄μ©:
- κ°μ: μμ©μ μΈμ¦ μ 보 κ²μ¦ λ° μΈμ¦ ν ν° λ°ν
- μμ
λ΄μ©:
- JWT λ°ν
- 컨νΈλ‘€λ¬ ꡬν
- μλΉμ€ ꡬν
ν€λ, λ³Έλ¬Έμ λΉ νμΌλ‘ ꡬλΆνλ€.
[κ°λ° λΆμΌ] νμ
: μ λͺ©
λ³Έλ¬Έ
- μ λͺ©μ 50κΈμ μ΄λ΄λ‘ μμ±νλ€.
- μ λͺ©, λ³Έλ¬Έμ 첫 κΈμκ° μλ¬ΈμΌ κ²½μ° λλ¬Έμλ‘ μμ±νλ€.
- μ λͺ©, λ³Έλ¬Έ λ λ€ λ§μΉ¨νλ₯Ό μ¬μ©νμ§ μλλ€.
- λ³Έλ¬Έμ κ° νμ 72κΈμ μ΄λ΄λ‘ μμ±νλ€.
- μ λͺ©μ λ νλμ§, λ³Έλ¬Έμ μ or κΈ°λ ν¨κ³Όλ₯Ό κ°κ²°νκ² μ λλ€.
- κ°λ° λΆμΌλ
BE
νΉμFE
λΌκ³ νκΈ°νλ€. - νμ μ μλμ νλ₯Ό μ°Έκ³ νμ¬ μμ±νλ€.
νμ μ΄λ¦ | μ€λͺ |
---|---|
feat | μλ‘μ΄ κΈ°λ₯μ λν μ»€λ° |
fix | λ²κ·Έ μμ μ λν μ»€λ° |
build | λΉλ κ΄λ ¨ νμΌ μμ / λͺ¨λ μ€μΉ λλ μμ |
chore | κ·Έ μΈ μμν μμ μ λν μ»€λ° |
ci | CI κ΄λ ¨ μ€μ μμ μ λν μ»€λ° |
docs | λ¬Έμ μμ μ λν μ»€λ° |
style | μ½λ μ€νμΌ νΉμ ν¬λ§· λ±μ κ΄ν μ»€λ° |
refactor | μ½λ 리ν©ν λ§μ λν μ»€λ° |
test | ν μ€νΈ μ½λ μμ μ λν μ»€λ° |
perf | μ±λ₯ κ°μ μ λν μ»€λ° |
[BE] feat: Projects μμ± API μμ±
[BE] refactor: Forλ¬Έ μ½λ streamμΌλ‘ λ³κ²½
* Streamμ ν΅ν μ½λ κ°κ²°ν
* 체μ΄λ λ°©μμ ν΅ν κ°λ
μ± ν₯μ