From 161903ce99041f86f3afa51d720b83a14f52fcd7 Mon Sep 17 00:00:00 2001 From: Dong Jin Park <160587239+straycat405@users.noreply.github.com> Date: Tue, 10 Mar 2026 19:00:35 +0900 Subject: [PATCH 1/4] Add Swagger API Docs section to README Added Swagger API documentation link to README. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 4ce343c..96c31ae 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,11 @@ --- +## Swagger API Docs +### http://3.39.35.239:8080/swagger-ui/index.html + +--- + ## πŸ“Œ ν”„λ‘œμ νŠΈ μ†Œκ°œ > **Delivery Commerce API**λŠ” From 4b337909df452f01e49c71e1ed4b0a358900cc31 Mon Sep 17 00:00:00 2001 From: DongJin Park Date: Tue, 10 Mar 2026 19:09:34 +0900 Subject: [PATCH 2/4] =?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) - 리뷰 μž‘μ„± / μˆ˜μ • / μ‚­μ œ From 40f3157b9e4e7fc0db52da7bd1cc6f78364cec9b Mon Sep 17 00:00:00 2001 From: Dong Jin Park <160587239+straycat405@users.noreply.github.com> Date: Tue, 10 Mar 2026 19:14:57 +0900 Subject: [PATCH 3/4] Update README.md for clarity and formatting --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c862231..6c30dbe 100644 --- a/README.md +++ b/README.md @@ -83,8 +83,8 @@ β”‚ 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) β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ @@ -94,7 +94,7 @@ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ postgres:16 β”‚ β”‚ redis:7 β”‚ β”‚ β”‚ β”‚ PostgreSQL :5432 β”‚ β”‚ Redis :6379 β”‚ β”‚ -β”‚ β”‚ (λ‚΄λΆ€ 톡신 μ „μš©) β”‚ β”‚ (λ‚΄λΆ€ 톡신 μ „μš©) β”‚ β”‚ +β”‚ β”‚ (λ‚΄λΆ€ 톡신 μ „μš©) β”‚ β”‚ (λ‚΄λΆ€ 톡신 μ „μš©) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ From 42ec7a11d29e50a32604a18ff73f7b079a3566d6 Mon Sep 17 00:00:00 2001 From: DongJin Park Date: Tue, 10 Mar 2026 19:44:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?-=20deploy=20=EC=84=A4=EC=A0=95=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(=EA=B9=83=ED=97=88=EB=B8=8C=20=ED=91=9C=EC=8B=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 01adccb..71c3442 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -69,6 +69,7 @@ jobs: needs: test # ν…ŒμŠ€νŠΈ μ‹€νŒ¨μ‹œ 배포 차단 runs-on: ubuntu-latest timeout-minutes: 10 # SSH hang λ“± λ¬΄ν•œ λŒ€κΈ° λ°©μ§€ + environment: production if: github.ref == 'refs/heads/main' && github.event_name == 'push' # main λΈŒλžœμΉ˜μΈμ§€ and μ‹€μ œ PUSH 검사 steps: