diff --git a/README.md b/README.md index cbe704c64..426efe8c8 100644 --- a/README.md +++ b/README.md @@ -21,22 +21,24 @@ - [x] 위시 리스트 상품 삭제 : 회원의 위시 리스트에 상품을 삭제한다. - [x] 위시 리스트 상품 조회 (페이지네이션 적용) : 회원의 위시 리스트에 담긴 상품을 페이지 단위로 조회한다. -## 주문 API +## 주문 API - [x] 주문 생성 : 주문을 생성한다. - [x] 주문 조회 (페이지네이션 적용) : 모든 주문을 페이지 단위로 조회한다. ## FIXME - [x] schema.sql, data.sql 파일에 데이터 추가하기 - [x] 스웨거에서 토큰 header 사용할 수 있도록 수정하기 -- [x] CORS 설정하기 - [x] data.sql 데이터 추가 - [x] 페이지네이션 정렬 기준 만족하는지 테스트하기 - [x] 테스트 코드 리팩토링 --- # 6주차 2단계 구현해야할 기능 목록들 정리 -## 배포 스크립트 작성하기 -- [ ] 배포 스크립트 작성하기 +## 배포 스크립트 작성하기 +- [x] 배포 스크립트 작성하기 +## CORS 설정하기 +- [x] CORS 설정하기 +- [x] CORS 설정 테스트 ## https 통신을 위한 설정 - [ ] DuckDns를 이용하여 도메인 설정하기 @@ -46,13 +48,17 @@ --- # 6주차 3단계 구현해야할 기능 목록들 정리 -## 주문하기 API 수정하기 (포인트 사용할 수 있게) -- [ ] Member 엔티티에 point 필드 추가하기 -- [ ] OrderRequest, OrderResponse DTO 수정하기 -- [ ] 포인트가 있는지 검증하는 로직 추가 -- [ ] 포인트가 상품 금액의 50%를 넘지 않는지 검증하는 로직 추가 -- [ ] 사용자는 구매한 상품의 5%를 포인트로 적립받는다. -- [ ] 반환받은 포인트값 업데이트하기 +## 1. 회원가입 API 수정하기 +- [x] Member 엔티티에 point 필드 추가하기 +- [x] 신규회원은 3000포인트를 부여받는다. +## 2. 회원별 포인트 조회하는 API 추가하기 +- [x] accessToken을 통해 회원의 포인트를 조회하는 API 추가하기 +## 3.주문하기 API 수정하기 (포인트 사용할 수 있게) +- [x] OrderRequest, OrderResponse DTO 수정하기 +- [x] 포인트가 있는지 검증하는 로직 추가 +- [x] 포인트가 상품 금액의 50%를 넘지 않는지 검증하는 로직 추가 +- [x] 사용자는 구매한 상품의 5%를 포인트로 적립받는다. +- [x] 반환받은 포인트값 업데이트하기 --- diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 000000000..26be4e437 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# JAR 파일 이름 설정 +JAR_NAME=spring-gift-1.0-SNAPSHOT.jar + +# 현재 실행 중인 애플리케이션의 PID를 가져온다. +CURRENT_PID=$(pgrep -f $JAR_NAME) + +# 1. 실행 중인 애플리케이션이 있으면 종료시킨다. +if [ -z $CURRENT_PID ] +then + echo "[1] 현재 배포된 서버가 없습니다." + echo "[2] 종료시킬 애플리케이션이 없습니다." +else + echo "[1] 현재 배포된 서버를 중단시킵니다. 현재 배포된 서버의 PID: $CURRENT_PID" + kill -15 $CURRENT_PID + sleep 5 + + # 2. 프로세스가 아직 종료되지 않았는지 확인한다. + CURRENT_PID=$(pgrep -f $JAR_NAME) + if [ -z $CURRENT_PID ] + then + echo "[2] 애플리케이션이 성공적으로 종료되었습니다." + else + echo "[2] 애플리케이션이 아직 종료되지 않았기에 강제 종료합니다. 현재 배포된 서버의 PID : $CURRENT_PID" + kill -9 $CURRENT_PID + sleep 2 + fi +fi + +# 3. git pull을 통해 변경사항 가져오기 +echo "[3] git pull을 통해 소스코드를 최신 상태로 업데이트합니다." +cd /home/ubuntu/spring-gift-point +git pull + +# 4. 기존 빌드 폴더 삭제 +echo "[4] 기존 빌드 폴더를 삭제합니다." +rm -rf build + +# 5. 새로운 빌드 수행 +echo "[5] 새로운 빌드를 시작합니다." +./gradlew build + +# 빌드된 JAR 파일 경로 설정 +BUILD_PATH=$(ls build/libs/*SNAPSHOT.jar | grep -v 'plain') +JAR_NAME=$(basename $BUILD_PATH) + +# 6. 새로운 애플리케이션 실행 +echo "[6] 배포 시작!! 새로운 애플리케이션을 실행합니다. JAR 파일명: $JAR_NAME" +cd build/libs +nohup java -jar $JAR_NAME > output.log 2>&1 & + +echo "[7] 배포가 완료되었습니다."