From 4b337909df452f01e49c71e1ed4b0a358900cc31 Mon Sep 17 00:00:00 2001 From: DongJin Park Date: Tue, 10 Mar 2026 19:09:34 +0900 Subject: [PATCH] =?UTF-8?q?-=20README.md=20=EC=B5=9C=EC=8B=A0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 73 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 4ce343c..be93368 100644 --- a/README.md +++ b/README.md @@ -65,38 +65,48 @@ | λΆ„λ₯˜ | 기술 | |:---:|:---:| | Server | AWS EC2 (Free tier) | -| Database | AWS RDS (PostgreSQL) | -| Cache | AWS ElastiCache (Redis) | -| CI/CD | GitHub Actions | +| Container | Docker, Docker Compose | +| CI/CD | GitHub Actions + Docker Hub | --- ## πŸ—οΈ μ•„ν‚€ν…μ²˜ ``` -β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -β”‚ GitHub Actions β”‚ -β”‚ push/PR β†’ Build & Test β†’ Deploy to EC2 β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - β”‚ SSH / SCP -β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -β”‚ AWS EC2 (t2.micro) β”‚ -β”‚ Spring Boot Application β”‚ -β”‚ :8080 β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - β”‚ β”‚ -β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” -β”‚ AWS RDS β”‚ β”‚ AWS β”‚ -β”‚ PostgreSQL β”‚ β”‚ ElastiCache β”‚ -β”‚ :5432 β”‚ β”‚ Redis :6379 β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ GitHub Actions β”‚ +β”‚ push/PR β†’ Build & Test β”‚ +β”‚ main push β†’ bootJar β†’ Docker λΉŒλ“œ β†’ Docker Hub push β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ SSH (appleboy/ssh-action) + β”‚ docker pull + docker compose up -d --no-deps app +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ AWS EC2 (t2.micro) β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ app (straycat405/deliverycommerce:latest) β”‚ β”‚ +β”‚ β”‚ Spring Boot :8080 β†’ μ™ΈλΆ€ 곡개 β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ postgres:16 β”‚ β”‚ redis:7 β”‚ β”‚ +β”‚ β”‚ PostgreSQL :5432 β”‚ β”‚ Redis :6379 β”‚ β”‚ +β”‚ β”‚ (λ‚΄λΆ€ 톡신 μ „μš©) β”‚ β”‚ (λ‚΄λΆ€ 톡신 μ „μš©) β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + + β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β”‚ Docker Hub β”‚ + β”‚ :latest / :{sha} β”‚ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### CI/CD Workflow ``` -feature/* β†’ develop (PR) : Build & Test μžλ™ μ‹€ν–‰ -develop β†’ main (PR) : Build & Test μžλ™ μ‹€ν–‰ -main merge : Build & Test β†’ Deploy to EC2 μžλ™ μ‹€ν–‰ +feature/* β†’ develop (PR) : Build & Test μžλ™ μ‹€ν–‰ +develop β†’ main (PR) : Build & Test μžλ™ μ‹€ν–‰ +main merge : Build & Test β†’ bootJar β†’ Docker 이미지 λΉŒλ“œ + β†’ Docker Hub push (latest + {sha} νƒœκ·Έ) + β†’ EC2 SSH 접속 β†’ .env κ°±μ‹  β†’ docker pull + β†’ docker compose up -d --no-deps app (μ•±λ§Œ μž¬μ‹œμž‘, DB/Redis μœ μ§€) ``` --- @@ -112,7 +122,10 @@ main merge : Build & Test β†’ Deploy to EC2 μžλ™ μ‹€ν–‰ ``` com.babjo.deliverycommerce β”œβ”€β”€ domain +β”‚ β”œβ”€β”€ ai # AI μš”μ²­ 이λ ₯ (AiRequestLog) β”‚ β”œβ”€β”€ cart # μž₯λ°”κ΅¬λ‹ˆ (Cart, CartItem) +β”‚ β”œβ”€β”€ order # μ£Όλ¬Έ (Order, OrderItem) +β”‚ β”œβ”€β”€ payment # 결제 (Payment, PaymentHistory) β”‚ β”œβ”€β”€ product # μƒν’ˆ + AI μ„€λͺ… 생성 β”‚ β”œβ”€β”€ review # 리뷰 & 평점 β”‚ β”œβ”€β”€ store # κ°€κ²Œ @@ -162,6 +175,7 @@ REDIS_HOST=localhost REDIS_PORT=6379 SPRING_PROFILES_ACTIVE=dev GOOGLE_API_KEY=your_google_api_key +GOOGLE_PROJECT_ID=your_google_project_id ``` ### 3. PostgreSQL & Redis μ‹€ν–‰ (Docker) @@ -219,10 +233,21 @@ http://localhost:8080/swagger-ui/index.html - Soft Delete ### πŸ“¦ μ£Όλ¬Έ (Order) -- 개발 쀑 +- μ£Όλ¬Έ 생성 (μž₯λ°”κ΅¬λ‹ˆ 기반, 가격 μ •ν•©μ„± 검증) +- 본인 μ£Όλ¬Έ λͺ©λ‘ 쑰회 (νŽ˜μ΄μ§•) +- μ£Όλ¬Έ 상세 쑰회 +- μ£Όλ¬Έ μ·¨μ†Œ (CUSTOMER - CREATED μƒνƒœμ—μ„œλ§Œ) +- μ£Όλ¬Έ μƒνƒœ λ³€κ²½ (OWNER - μ ‘μˆ˜ β†’ 쑰리쀑 β†’ ν”½μ—…λŒ€κΈ° β†’ ν”½μ—…μ™„λ£Œ) +- μ£Όλ¬Έ λ‚΄μ—­ Soft Delete ### πŸ’³ 결제 (Payment) -- 개발 쀑 +- 결제 생성 (READY μƒνƒœ, μ£Όλ¬Έ 쀑볡 λ°©μ§€) +- 결제 승인 (READY β†’ COMPLETED) +- 결제 μ‹€νŒ¨ 처리 (READY β†’ FAILED) +- 결제 μ·¨μ†Œ (생성 ν›„ 5λΆ„ μ΄λ‚΄λ§Œ κ°€λŠ₯, READY/COMPLETED β†’ CANCELED) +- 결제 λͺ©λ‘ 쑰회 (QueryDSL 동적 필터링, νŽ˜μ΄μ§€ μ‚¬μ΄μ¦ˆ 10/30/50) +- 결제 Soft Delete +- μƒνƒœ λ³€κ²½ 이λ ₯ Insert-Only μ €μž₯ (PaymentHistory) ### ⭐ 리뷰 (Review) - 리뷰 μž‘μ„± / μˆ˜μ • / μ‚­μ œ