|
|
|
|
| ์ด์ฐฌ์ | ๊น๋ฏผ์ | ์ ์ง๋ฏผ |
Cherry๋ ์ต์ ํ๋ฆฌ๋ฏธ์ IT ๊ธฐ๊ธฐ๋ฅผ ๊ฐํธํ๊ฒ ๋์ฌํ๊ณ ๋ฐ๋ฉํ ์ ์๋ ๋ ํ ํ๋ซํผ์
๋๋ค.
์ค์ ๋ ํ ์๋น์ค์ ํต์ฌ ๊ธฐ๋ฅ(์ํ ์กฐํ, ๋์ฌ, ๊ฒฐ์ , ๋ฐฐ์ก)์ ๊ตฌํํ๋ฉฐ ํ์
์์ ์ฌ์ฉ๋๋ ๊ธฐ์ ์คํ๊ณผ ์ํคํ
์ฒ ์ค๊ณ๋ฅผ ํ์ตํ๊ณ ์ ์ฉํ ํ๋ก์ ํธ ์
๋๋ค.
- ์ด๊ธฐ MVP ์ถ์ (๊ธฐํ ๋ฐ ๊ฐ๋ฐ) : 2025. 08. 11. ~ 2025. 09. 15.
- ์ด๊ธฐ MVP ์ถ์๋ฅผ ์ํ ์ ๊ธฐ์ ํ์ : ๊ธฐํ์, ๋์์ด๋, ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ํ๋์ ํ์ผ๋ก์ ๊ธด๋ฐํ๊ฒ ์ํตํ๊ณ ํ๋ ฅํ์ฌ ์์ฑ๋ ๋์ ์ด๊ธฐ MVP๋ฅผ ์ถ์ํฉ๋๋ค.
- ์ง๊ตฐ ๊ฐ ์ญํ ๋ถ๋ด ๋ฐ ์ ๋ฌธ์ฑ ๊ฐํ: ๊ฐ์์ ์ ๋ฌธ ๋ถ์ผ์ ๋ฐ๋ผ ์ญํ ์ ๋ช ํํ ๋ถ๋ดํ๊ณ , ์ฑ ์๊ฐ ์๋ ์์ธ๋ก ์์ ์ ์ญํ ์ ์ํํ๋ฉฐ ์ ๋ฌธ์ฑ์ ๋์ ๋๋ค.
- ํจ์จ์ ์ธ ํ์ ๋๊ตฌ ํ์ฉ: GitHub, Notion, Figma, Discord ๋ฑ ๋ค์ํ ํ์ ๋๊ตฌ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ฌ ์ฒด๊ณ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ, ์ด์ ํธ๋ํน, ์ฝ๋ ๋ฆฌ๋ทฐ, ๋์์ธ ์์คํ ๊ณต์ ๋ฅผ ํตํด ์ํํ ํ์ ํ๊ฒฝ์ ๊ตฌ์ถํฉ๋๋ค.
- ์ค๋ฌด ์ค์ฌ์ ๊ฐ๋ฐ ๋ฌธํ ๊ฒฝํ: ์ค์ ํ์ ๊ณผ ์ ์ฌํ ์ ์์ผ ์คํ๋ฆฐํธ, ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ, ํ๊ณ ๋ฑ์ ๊ฐ๋ฐ ๋ฌธํ๋ฅผ ๋์ ํ์ฌ ์ค๋ฌด์ ์ธ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ๊ณผ ์ปค๋ฎค๋์ผ์ด์ ์คํฌ์ ํจ์ํฉ๋๋ค.
- Language : Java 21
- Framework : Spring Boot 3.5, Spring Security, Spring OAuth2 Client, Thymeleaf
- ORM : Spring Data JPA, QueryDSL
- DB : MySQL (Production), H2 (Test)
- Cache : Redis
- Cloud Storage : AWS S3
- Authentication : JWT, Redis Session Store
- API Documentation : Springdoc OpenAPI (Swagger UI)
- Build Tool : Gradle
- Cloud Platform : AWS (EKS, RDS, Route53, Load Balancer)
- Container : Docker, Kubernetes
- CI/CD : GitHub Actions, ArgoCD (GitOps)
- Monitoring : Prometheus, Grafana
- VCS : Git, GitHub
src/main/java/ok/cherry/
โโโ admin/ # ๊ด๋ฆฌ์ ๋๋ฉ์ธ
โโโ auth/ # ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๋๋ฉ์ธ
โโโ cart/ # ์ฅ๋ฐ๊ตฌ๋ ๋๋ฉ์ธ
โโโ global/ # ๊ณตํต ๊ธฐ๋ฅ ๋ฐ ์ค์
โโโ member/ # ํ์ ๋๋ฉ์ธ
โโโ payment/ # ๊ฒฐ์ ๋๋ฉ์ธ
โโโ product/ # ์ํ ๋๋ฉ์ธ
โโโ rental/ # ๋์ฌ ๋๋ฉ์ธ
โโโ shipping/ # ๋ฐฐ์ก ๋๋ฉ์ธ
- ๊ด๋ฆฌ์ ์ ์ฉ ํ์ด์ง: Thymeleaf๋ฅผ ์ฌ์ฉํ์ฌ ํ์, ์ํ, ๋์ฌ ๋ด์ญ์ ๊ด๋ฆฌํ ์ ์๋ ์น ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ ๋ฆฝ๋ ์ธ์ฆ ์์คํ : ๊ด๋ฆฌ์ ์ ์ฉ ๋ก๊ทธ์ธ ๋ฐ ๋ณด์ ์ค์ ์ ํตํด ์์คํ ์ ์ฃผ์ ๊ธฐ๋ฅ์ ์์ ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค.
- JWT ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ : Access Token๊ณผ Refresh Token์ ํ์ฉํ Stateless ์ธ์ฆ ๋ฐ ์ธ๊ฐ.
- ์์ ๋ก๊ทธ์ธ: Kakao OAuth2๋ฅผ ์ด์ฉํ ๊ฐํธ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ.
- ๋ณด์ ๊ฐํ: ๋ก๊ทธ์์ ์ฒ๋ฆฌ ๋ฐ ํ ํฐ ์ฌ๋ฐ๊ธ ๋ก์ง ๊ตฌํ.
- ํ์ ๊ด๋ฆฌ: ํ์ ๊ฐ์ , ํํด, ์ ๋ณด ๊ด๋ฆฌ ๊ธฐ๋ฅ.
- ์ค๋ณต ํ์ธ: ์ด๋ฉ์ผ ๋ฐ ๋๋ค์ ์ค๋ณต ํ์ธ์ ํตํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง.
- ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ: ์ํ ์ถ๊ฐ, ์กฐํ, ์ญ์ ๋ฑ ์ฅ๋ฐ๊ตฌ๋ ๊ด๋ จ ๊ธฐ๋ฅ ์ ๊ณต.
- ์ํ ๊ด๋ฆฌ: ์ํ ๋ฑ๋ก, ๋จ๊ฑด ์กฐํ, ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ.
- ์ ๋ ฌ ๊ธฐ๋ฅ: ๋ค์ํ ์กฐ๊ฑด(๋ฑ๋ก์ ๋ฑ)์ผ๋ก ์ํ ๋ชฉ๋ก ์ ๋ ฌ.
- ๊ฒฐ์ ๋ด์ญ ๊ด๋ฆฌ: ์ฌ์ฉ์์ ๊ฒฐ์ ๋ด์ญ ์กฐํ ๊ธฐ๋ฅ.
- ๋์ฌ ์ฃผ๋ฌธ ์์คํ : ์ํ ์ง์ ์ ํ ๋๋ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ํตํ ๋์ฌ ์ฃผ๋ฌธ ๊ธฐ๋ฅ.
- ์ฃผ๋ฌธ/๊ฒฐ์ ํตํฉ: ์ฃผ๋ฌธ๊ณผ ๋์์ ๊ฒฐ์ ๊ฐ ์ด๋ฃจ์ด์ง๋ ์์คํ .
- ๋์ฌ ๋ด์ญ ์กฐํ: ์ฌ์ฉ์์ ๋์ฌ ์ฃผ๋ฌธ ๋ชฉ๋ก ๋ฐ ์์ธ ๋ด์ญ ์กฐํ.
- ๋ฐฐ์ก ์ถ์ : ๋์ฌ ๊ฑด์ ๋ํ ์ด์ก์ฅ ๋ฒํธ ๋ฐ ๋ฐ์ก์ผ ์กฐํ ๊ธฐ๋ฅ.
# Auth
POST /api/v1/auth/logout
POST /api/v1/auth/reissue
POST /test/token/{providerId} - ๋ก์ปฌ ์ ์ฉ ํ
์คํธ ์ปจํธ๋กค๋ฌ
# Member
POST /api/v1/members/verify/email
POST /api/v1/members/verify/nickname
DELETE /api/v1/members
# Product
POST /api/v1/product
GET /api/v1/product/{productId}
GET /api/v1/products
# Cart
POST /api/v1/cart
DELETE /api/v1/cart
GET /api/v1/cart
# Rental
POST /api/v1/rentals
GET /api/v1/rentals/{rentalId}
GET /api/v1/rentals
GET /api/v1/rentals/count
GET /api/v1/rentals/{rentalId}/payment
# Payment
GET /api/v1/payments/{paymentId}
# Shipping
GET /api/v1/shipping/{rentalId}