Skip to content

DEEPDIVE-PROJECT-200/cherry-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ Cherry

๐Ÿ™Œ๐Ÿป ๋ฉค๋ฒ„

์ด์ฐฌ์›
๊น€๋ฏผ์•„
์‹ ์ง€๋ฏผ
์ด์ฐฌ์› ๊น€๋ฏผ์•„ ์‹ ์ง€๋ฏผ

๐Ÿ“‹ ๋ชฉ์ฐจ

๐Ÿ“– ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Cherry๋Š” ์ตœ์‹  ํ”„๋ฆฌ๋ฏธ์—„ IT ๊ธฐ๊ธฐ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋Œ€์—ฌํ•˜๊ณ  ๋ฐ˜๋‚ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ Œํƒˆ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
์‹ค์ œ ๋ Œํƒˆ ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ(์ƒํ’ˆ ์กฐํšŒ, ๋Œ€์—ฌ, ๊ฒฐ์ œ, ๋ฐฐ์†ก)์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ํ˜„์—…์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ  ์Šคํƒ๊ณผ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋ฅผ ํ•™์Šตํ•˜๊ณ  ์ ์šฉํ•œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.

๐Ÿ“… ์ง„ํ–‰ ๊ธฐ๊ฐ„

  • ์ดˆ๊ธฐ MVP ์ถœ์‹œ (๊ธฐํš ๋ฐ ๊ฐœ๋ฐœ) : 2025. 08. 11. ~ 2025. 09. 15.

๐ŸŽฏ ํ•ต์‹ฌ ๋ชฉํ‘œ

  • ์ดˆ๊ธฐ MVP ์ถœ์‹œ๋ฅผ ์œ„ํ•œ ์œ ๊ธฐ์  ํ˜‘์—…: ๊ธฐํš์ž, ๋””์ž์ด๋„ˆ, ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋‚˜์˜ ํŒ€์œผ๋กœ์„œ ๊ธด๋ฐ€ํ•˜๊ฒŒ ์†Œํ†ตํ•˜๊ณ  ํ˜‘๋ ฅํ•˜์—ฌ ์™„์„ฑ๋„ ๋†’์€ ์ดˆ๊ธฐ MVP๋ฅผ ์ถœ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ง๊ตฐ ๊ฐ„ ์—ญํ•  ๋ถ„๋‹ด ๋ฐ ์ „๋ฌธ์„ฑ ๊ฐ•ํ™”: ๊ฐ์ž์˜ ์ „๋ฌธ ๋ถ„์•ผ์— ๋”ฐ๋ผ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๋ถ„๋‹ดํ•˜๊ณ , ์ฑ…์ž„๊ฐ ์žˆ๋Š” ์ž์„ธ๋กœ ์ž์‹ ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ „๋ฌธ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  • ํšจ์œจ์ ์ธ ํ˜‘์—… ๋„๊ตฌ ํ™œ์šฉ: GitHub, Notion, Figma, Discord ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜‘์—… ๋„๊ตฌ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ์ฒด๊ณ„์ ์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ, ์ด์Šˆ ํŠธ๋ž˜ํ‚น, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ณต์œ ๋ฅผ ํ†ตํ•ด ์›ํ™œํ•œ ํ˜‘์—… ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค๋ฌด ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ ๋ฌธํ™” ๊ฒฝํ—˜: ์‹ค์ œ ํ˜„์—…๊ณผ ์œ ์‚ฌํ•œ ์• ์ž์ผ ์Šคํ”„๋ฆฐํŠธ, ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ, ํšŒ๊ณ  ๋“ฑ์˜ ๊ฐœ๋ฐœ ๋ฌธํ™”๋ฅผ ๋„์ž…ํ•˜์—ฌ ์‹ค๋ฌด์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ๊ณผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์Šคํ‚ฌ์„ ํ•จ์–‘ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

Backend

backend

  • 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

Infrastructure & DevOps

infra,devops

  • Cloud Platform : AWS (EKS, RDS, Route53, Load Balancer)
  • Container : Docker, Kubernetes
  • CI/CD : GitHub Actions, ArgoCD (GitOps)
  • Monitoring : Prometheus, Grafana
  • VCS : Git, GitHub

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

image

ERD

image

ํ”„๋กœ์ ํŠธ ํด๋” ๊ตฌ์กฐ

src/main/java/ok/cherry/
โ”œโ”€โ”€ admin/      # ๊ด€๋ฆฌ์ž ๋„๋ฉ”์ธ
โ”œโ”€โ”€ auth/       # ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๋„๋ฉ”์ธ
โ”œโ”€โ”€ cart/       # ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋„๋ฉ”์ธ
โ”œโ”€โ”€ global/     # ๊ณตํ†ต ๊ธฐ๋Šฅ ๋ฐ ์„ค์ •
โ”œโ”€โ”€ member/     # ํšŒ์› ๋„๋ฉ”์ธ
โ”œโ”€โ”€ payment/    # ๊ฒฐ์ œ ๋„๋ฉ”์ธ
โ”œโ”€โ”€ product/    # ์ƒํ’ˆ ๋„๋ฉ”์ธ
โ”œโ”€โ”€ rental/     # ๋Œ€์—ฌ ๋„๋ฉ”์ธ
โ””โ”€โ”€ shipping/   # ๋ฐฐ์†ก ๋„๋ฉ”์ธ

๐Ÿš€ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ‘‘ Admin ๋„๋ฉ”์ธ

  • ๊ด€๋ฆฌ์ž ์ „์šฉ ํŽ˜์ด์ง€: Thymeleaf๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์›, ์ƒํ’ˆ, ๋Œ€์—ฌ ๋‚ด์—ญ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋…๋ฆฝ๋œ ์ธ์ฆ ์‹œ์Šคํ…œ: ๊ด€๋ฆฌ์ž ์ „์šฉ ๋กœ๊ทธ์ธ ๋ฐ ๋ณด์•ˆ ์„ค์ •์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”‘ Auth ๋„๋ฉ”์ธ

  • JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ: Access Token๊ณผ Refresh Token์„ ํ™œ์šฉํ•œ Stateless ์ธ์ฆ ๋ฐ ์ธ๊ฐ€.
  • ์†Œ์…œ ๋กœ๊ทธ์ธ: Kakao OAuth2๋ฅผ ์ด์šฉํ•œ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ.
  • ๋ณด์•ˆ ๊ฐ•ํ™”: ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๋กœ์ง ๊ตฌํ˜„.

๐Ÿ‘ค Member ๋„๋ฉ”์ธ

  • ํšŒ์› ๊ด€๋ฆฌ: ํšŒ์› ๊ฐ€์ž…, ํƒˆํ‡ด, ์ •๋ณด ๊ด€๋ฆฌ ๊ธฐ๋Šฅ.
  • ์ค‘๋ณต ํ™•์ธ: ์ด๋ฉ”์ผ ๋ฐ ๋‹‰๋„ค์ž„ ์ค‘๋ณต ํ™•์ธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€.

๐Ÿ›’ Cart ๋„๋ฉ”์ธ

  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ: ์ƒํ’ˆ ์ถ”๊ฐ€, ์กฐํšŒ, ์‚ญ์ œ ๋“ฑ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ๊ธฐ๋Šฅ ์ œ๊ณต.

๐Ÿ“ฆ Product ๋„๋ฉ”์ธ

  • ์ƒํ’ˆ ๊ด€๋ฆฌ: ์ƒํ’ˆ ๋“ฑ๋ก, ๋‹จ๊ฑด ์กฐํšŒ, ๋ชฉ๋ก ์กฐํšŒ ๊ธฐ๋Šฅ.
  • ์ •๋ ฌ ๊ธฐ๋Šฅ: ๋‹ค์–‘ํ•œ ์กฐ๊ฑด(๋“ฑ๋ก์ˆœ ๋“ฑ)์œผ๋กœ ์ƒํ’ˆ ๋ชฉ๋ก ์ •๋ ฌ.

๐Ÿ’ณ Payment ๋„๋ฉ”์ธ

  • ๊ฒฐ์ œ ๋‚ด์—ญ ๊ด€๋ฆฌ: ์‚ฌ์šฉ์ž์˜ ๊ฒฐ์ œ ๋‚ด์—ญ ์กฐํšŒ ๊ธฐ๋Šฅ.

๐Ÿ—“๏ธ ๋ Œํƒˆ ๋„๋ฉ”์ธ

  • ๋Œ€์—ฌ ์ฃผ๋ฌธ ์‹œ์Šคํ…œ: ์ƒํ’ˆ ์ง์ ‘ ์„ ํƒ ๋˜๋Š” ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ํ†ตํ•œ ๋Œ€์—ฌ ์ฃผ๋ฌธ ๊ธฐ๋Šฅ.
  • ์ฃผ๋ฌธ/๊ฒฐ์ œ ํ†ตํ•ฉ: ์ฃผ๋ฌธ๊ณผ ๋™์‹œ์— ๊ฒฐ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ์‹œ์Šคํ…œ.
  • ๋Œ€์—ฌ ๋‚ด์—ญ ์กฐํšŒ: ์‚ฌ์šฉ์ž์˜ ๋Œ€์—ฌ ์ฃผ๋ฌธ ๋ชฉ๋ก ๋ฐ ์ƒ์„ธ ๋‚ด์—ญ ์กฐํšŒ.

๐Ÿšš Shipping ๋„๋ฉ”์ธ

  • ๋ฐฐ์†ก ์ถ”์ : ๋Œ€์—ฌ ๊ฑด์— ๋Œ€ํ•œ ์šด์†ก์žฅ ๋ฒˆํ˜ธ ๋ฐ ๋ฐœ์†ก์ผ ์กฐํšŒ ๊ธฐ๋Šฅ.

๐Ÿ“Œ ์ฃผ์š” ์—”๋“œํฌ์ธํŠธ

# 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}

About

๐Ÿ’ ์ฒดํ—˜ํ•˜๊ณ  ๋ฆฌ๋ทฐํ•˜์ž, Cherry!

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •