diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 00000000..3de6ea90 --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,58 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "master" branch + push: + branches: [ "YoungGyo-00" ] + pull_request: + branches: [ "YoungGyo-00" ] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + + - name: checkout + uses: actions/checkout@v3 + + ## 버전 확인 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + + ## gradle build + - name: Build with Gradle + run: ./gradlew bootJar + + ## 웹 이미지 빌드 및 도커허브에 push + - name: web docker build and push + run: | + docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + docker build -t younggyolee/market . + docker push younggyolee/market + + - name: executing remote ssh commands using password + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + script: | + + ## 여러분이 원하는 경로로 이동합니다. + cd /home/ubuntu/ + + ## docker-compose를 실행합니다. + sudo chmod 666 /var/run/docker.sock + sudo docker rm -f $(docker ps -qa) + sudo docker pull younggyolee/market + docker-compose -f docker-compose.yml --env-file ./.env up -d + docker image prune -f \ No newline at end of file diff --git a/market/.gitignore b/.gitignore similarity index 100% rename from market/.gitignore rename to .gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b81..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 912d854b..00000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 933825b6..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index a639b9eb..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/spring-daagn-market-18th.iml b/.idea/spring-daagn-market-18th.iml deleted file mode 100644 index d6ebd480..00000000 --- a/.idea/spring-daagn-market-18th.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/market/Dockerfile b/Dockerfile similarity index 100% rename from market/Dockerfile rename to Dockerfile diff --git a/market/HELP.md b/HELP.md similarity index 100% rename from market/HELP.md rename to HELP.md diff --git a/README.md b/README.md index 218877eb..bfd50379 100644 --- a/README.md +++ b/README.md @@ -111,9 +111,9 @@ ResponseBody 구현하며 알았던 정보가 두가지 존재한다.
1. Entity 상에서 `User`를 저장하는 user column이 존재하는데, 이를 DTO로 값을 받을 때는 User 객체를 RequestBody에 전달할 수 없다는 것. - - 해결 방법은 단순했다. 원하는 user의 ID 값을 전달 받은 후, Service Layer에서 `findById`로 객체를 찾아서 DTO에서 Entity로 변결할 때 저장하는 방법이다. 오랜만에 해서 헷갈려서 적어봤습니다. + - 해결 방법은 단순했다. 원하는 user의 ID 값을 전달 받은 후, Service Layer에서 `findById`로 객체를 찾아서 DTO에서 Entity로 변결할 때 저장하는 방법이다. 오랜만에 해서 헷갈려서 적어봤습니다. 2. ENUM값도 RequestBody에 String으로 전달할 수 있다는 점. - - 정확한 워딩으로 작성해야 한다는 것이 문제이지만, String 형태로 Body에 전달하면 이를 DTO 상에서는 ENUM으로 받을 수 있다는 것을 알게 되었다. + - 정확한 워딩으로 작성해야 한다는 것이 문제이지만, String 형태로 Body에 전달하면 이를 DTO 상에서는 ENUM으로 받을 수 있다는 것을 알게 되었다. ### 모든 데이터 조회 - GET api/product @@ -170,15 +170,15 @@ ResponseBody ## 추가 학습한 부분 1. DTO를 만들 때 정적 팩토리 메서드 명칭 컨벤션? - - `of`는 매개변수를 2개 이상의 값을 받을 때 사용하고, `from`은 매개변수가 1개일 때 사용한다고 하는데 왜 이렇게 사용하는지 알 수는 없다. 물론 `toEntity`, `toDto`같은 명칭도 있지만 개인적으로 위와 같은 방법을 더 주로 사용한다. + - `of`는 매개변수를 2개 이상의 값을 받을 때 사용하고, `from`은 매개변수가 1개일 때 사용한다고 하는데 왜 이렇게 사용하는지 알 수는 없다. 물론 `toEntity`, `toDto`같은 명칭도 있지만 개인적으로 위와 같은 방법을 더 주로 사용한다. 2. 새로운 폴더 구조 - - 기본적으로 폴더 구조는 layer끼리 모아두는 방법, domain 별로 묶어두는 방법 크게 2가지가 보편적으로 사용되는 것 같다. 이번에는 새로운 방법을 도입해봤다. 서비스의 크기가 커지고, 멀티 모듈로 코드를 나눈다고 했을 때를 가정하고 mysql에 들어가는 Entity를 묶어두는 폴더, 다른 기능들은(Controller, Service, Repository) domain 별로 묶었고, 마지막으로 global 폴더를 만들었다. - - Entity와 Repository를 한 군데에 묶어 domain 폴더에는 Controller, Service, Dto 정도만 남겨두는 구조는 어떨까 고민하고 있다. 조금 바보같은 생각일까..?
- 스크린샷 2023-10-07 오후 6 11 18 + - 기본적으로 폴더 구조는 layer끼리 모아두는 방법, domain 별로 묶어두는 방법 크게 2가지가 보편적으로 사용되는 것 같다. 이번에는 새로운 방법을 도입해봤다. 서비스의 크기가 커지고, 멀티 모듈로 코드를 나눈다고 했을 때를 가정하고 mysql에 들어가는 Entity를 묶어두는 폴더, 다른 기능들은(Controller, Service, Repository) domain 별로 묶었고, 마지막으로 global 폴더를 만들었다. + - Entity와 Repository를 한 군데에 묶어 domain 폴더에는 Controller, Service, Dto 정도만 남겨두는 구조는 어떨까 고민하고 있다. 조금 바보같은 생각일까..?
+ 스크린샷 2023-10-07 오후 6 11 18 3. 한가지 궁금한 점 - - 항상 고민했던 부분이지만, `ProductController`는 `ProductService`를 참고하고, Service는 Repository를 참조하도록 설계가 되어있다. 여기서 `ProductService`가 `UserRepository`를 찾고하는 방법은 뭔가 이상하지 않은가..? 유저 정보가 필요하다고 해서 `ProductRepository` 이외의 다른 `Repoistory`를 참고하는 방법이 뭔가 이래도 되나? 라는 고민이 들긴 하지만 기능 구현을 위해 일단 작성했다. - - 여기서 궁금한 점은 한마디로 자신의 도메인이 아닌 다른 도메인의 `Repository`를 가져와서 사용해도 되는가? - - 이것도 바보같은 고민이다.. + - 항상 고민했던 부분이지만, `ProductController`는 `ProductService`를 참고하고, Service는 Repository를 참조하도록 설계가 되어있다. 여기서 `ProductService`가 `UserRepository`를 찾고하는 방법은 뭔가 이상하지 않은가..? 유저 정보가 필요하다고 해서 `ProductRepository` 이외의 다른 `Repoistory`를 참고하는 방법이 뭔가 이래도 되나? 라는 고민이 들긴 하지만 기능 구현을 위해 일단 작성했다. + - 여기서 궁금한 점은 한마디로 자신의 도메인이 아닌 다른 도메인의 `Repository`를 가져와서 사용해도 되는가? + - 이것도 바보같은 고민이다.. ## 생성자 대신 정적 팩터리 매서드를 고려하라 @@ -190,13 +190,13 @@ ResponseBody 정적 팩터리의 장점은 다음과 같다. 1. 이름을 가질 수 있다. - - public 생성자보다 객체의 특성을 제대로 설명 - - 한 클래스에 시그니처가 같은 생성자를 여러 개 생성 가능 + - public 생성자보다 객체의 특성을 제대로 설명 + - 한 클래스에 시그니처가 같은 생성자를 여러 개 생성 가능 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. - - 불변 클래스(immutable class)는 `Instance`를 재활용 -> 불필요한 객체 생성 X - - 인스턴스 통제 가능 -> 싱글턴으로 만들 수 있고, 인스턴스화 불가로 만들 수 있음 + - 불변 클래스(immutable class)는 `Instance`를 재활용 -> 불필요한 객체 생성 X + - 인스턴스 통제 가능 -> 싱글턴으로 만들 수 있고, 인스턴스화 불가로 만들 수 있음 3. 반환 타입의 하위 타입 객체를 반환할 능력이 있다. - - 객체 생성 시, 분기 처리를 통해 하위 타입의 객체를 반환할 수 있음
+ - 객체 생성 시, 분기 처리를 통해 하위 타입의 객체를 반환할 수 있음
``` public class Grade { ... @@ -218,7 +218,7 @@ ResponseBody 1. 상속하려면 public, protected 생성자가 필요함으로, 정적 팩터리 메서드만 제공할 시 하위 클래스를 만들 수 없다. 2. 정적 팩터리 메서드는 프로그래머가 찾기가 어렵다. - - 생성자처럼 API설명에 명확히 들어나지 않기 때문에 인스턴스화하는 방법을 알아야 한다. + - 생성자처럼 API설명에 명확히 들어나지 않기 때문에 인스턴스화하는 방법을 알아야 한다. ### 매서드 시그니처 @@ -227,11 +227,11 @@ ResponseBody ```java // 서로 다른 시그니처 void doSomething(String[] x); // doSomething(String[]) - 메서드 시그니처 예 1 -void doSomething(String x); // doSomething(String) + void doSomething(String x); // doSomething(String) // 같은 시그니처 -int doSomething(int x); // doSomething(int) -void doSomething(int y) throws Exception; // doSomething(int) + int doSomething(int x); // doSomething(int) + void doSomething(int y) throws Exception; // doSomething(int) ``` ## Builder 패턴 @@ -239,8 +239,8 @@ void doSomething(int y) throws Exception; // doSomething(int) - 점층적 생성자 패턴의 안정성 + 자바빈즈 패턴의 가독성 - **필요한 매개변수만으로 생성자를 호출**해 빌더 객체 생성 - 생성할 클래스 안에 **정적 멤버 클래스**로 만들어두는 게 일반적이다 - - **플루어트 API(fluent API)** - 물 흐르듯 연결된다는 의미 - - **메서드 연쇄(method chaining)** + - **플루어트 API(fluent API)** - 물 흐르듯 연결된다는 의미 + - **메서드 연쇄(method chaining)** ```java public class NutritionFacts { @@ -289,8 +289,8 @@ NutritionFacts food = new NutritionFacts.Builder(240,8) ``` - **빌더 패턴은 계층적으로 설계된 클래스와 함께 쓰기에 좋다** - - 가변인 매개변수를 여러 개 사용할 수 있다는 장점 - - 하단의 `addTopping` 메서드 참고 + - 가변인 매개변수를 여러 개 사용할 수 있다는 장점 + - 하단의 `addTopping` 메서드 참고 ```java // 루트 추상 클래스 @@ -521,3 +521,29 @@ docker-compose를 작동시킬 때는 도커 이미지 내의 mysql에 접근하 ### 소감 도커를 통해 처음으로 웹 애플리케이션을 띄워봤는데, 자동으로 이미지를 다운로드 받고 컨테이너를 만들어서 배포해주는 과정이 편리하다는 것을 이해할 수 있었다. 물론 중간에 서버를 개발할 때 만났던 오류와 다른 디비 연결 문제를 겪어서 해결하는 과정이 익숙하지 않아서 힘들었지만 환경에 구애받지 않고 모든 곳에서 사용할 수 있다는 것이 좋은 것 같다. + +# 6주차 Github Action을 이용한 CI/CD + +## 결과 이미지 + +### EC2 에서 docker ps 명령어를 통해 서버 띄워진 것을 확인 + +스크린샷 2023-11-25 오후 10 26 33 + +### Github Action 정상 작동 확인 + +![스크린샷 2023-11-25 오후 10 27 46](https://github.com/YoungGyo-00/react-HowWorthy/assets/89639470/1e378d35-f991-4b1a-acd0-1d4e753356d7) + +### API 테스트 확인 + +![스크린샷 2023-11-25 오후 10 27 54](https://github.com/YoungGyo-00/react-HowWorthy/assets/89639470/0112502c-b49d-4b16-a7af-9a5c0c3e069a) + +## 발생했던 오류 + +1. Repository 에 market 이라는 폴더로 모든 소스코드가 감싸져 있어서 repository에 들어오게 되면 .guthub/workflows 폴더가 존재하지 않아 git action이 적용되지 않았다. 모든 소스코드를 다시 폴더 밖으로 위치를 옮겨 해결하는 과정에서 gradle-wrapper.jar 파일이 존재하지 않아 build가 되지 않았으며, spring-initializer를 통해 새로운 프로젝트를 생성한 후 복사 붙여넣기로 해결하였다. + +2. env.yml 파일이 깃허브에 올라가지 않아 secret 값을 넣어주지 못 해 서버가 정상적으로 작동하지 않는 에러가 발생했었다. docker-compose.yml 파일을 깃 액션에서 생성하는 코드를 삭제한 후, 직접 ec2 에서 파일에 환경변수 값들을 저장해서 진행했다. + +### 소감 + +깃 액션을 사용해보면서 처음에는 환경변수 설정에 많은 오류를 겪었지만, 구현하고 보니 CI/CD가 매번 서버를 수정해야 하는 번거로움을 줄일 수 있다는 것을 보고 개발하기 너무 간편하고 좋은 것 같다. diff --git a/market/build.gradle b/build.gradle similarity index 100% rename from market/build.gradle rename to build.gradle diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..7ff7872e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3" + +services: +# db: +# container_name: db +# image: mysql:latest +# environment: +# MYSQL_ROOT_PASSWORD: 12345678 +# MYSQL_DATABASE: ceos18 +# volumes: +# - dbdata:/var/lib/mysql +# ports: +# - "3306:3306" +# restart: always + + web: + container_name: web + image: younggyolee/market + ports: + - "8080:8080" + restart: always + volumes: + - .:/app + +volumes: + app: + dbdata: \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..7f93135c Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/market/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 93% rename from market/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties index 9f4197d5..3fa8f862 100644 --- a/market/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/market/gradlew b/gradlew similarity index 92% rename from market/gradlew rename to gradlew index fcb6fca1..1aa94a42 100755 --- a/market/gradlew +++ b/gradlew @@ -83,7 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -201,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/market/gradlew.bat b/gradlew.bat similarity index 100% rename from market/gradlew.bat rename to gradlew.bat diff --git a/market/docker-compose.yml b/market/docker-compose.yml deleted file mode 100644 index 7c70f286..00000000 --- a/market/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: "3" - -services: - db: - container_name: db - image: mysql:latest - environment: - MYSQL_ROOT_PASSWORD: 12345678 - MYSQL_DATABASE: ceos18 - volumes: - - dbdata:/var/lib/mysql - ports: - - "3306:3306" - restart: always - - web: - container_name: web - build: . - ports: - - "8080:8080" - depends_on: - - db - environment: - mysql_host: db - restart: always - volumes: - - .:/app - -volumes: - app: - dbdata: \ No newline at end of file diff --git a/market/settings.gradle b/settings.gradle similarity index 100% rename from market/settings.gradle rename to settings.gradle diff --git a/market/src/main/java/com/ceos18/market/MarketApplication.java b/src/main/java/com/ceos18/market/MarketApplication.java similarity index 100% rename from market/src/main/java/com/ceos18/market/MarketApplication.java rename to src/main/java/com/ceos18/market/MarketApplication.java diff --git a/market/src/main/java/com/ceos18/market/database/Chat.java b/src/main/java/com/ceos18/market/database/Chat.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/Chat.java rename to src/main/java/com/ceos18/market/database/Chat.java diff --git a/market/src/main/java/com/ceos18/market/database/ChatMessage.java b/src/main/java/com/ceos18/market/database/ChatMessage.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/ChatMessage.java rename to src/main/java/com/ceos18/market/database/ChatMessage.java diff --git a/market/src/main/java/com/ceos18/market/database/Product.java b/src/main/java/com/ceos18/market/database/Product.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/Product.java rename to src/main/java/com/ceos18/market/database/Product.java diff --git a/market/src/main/java/com/ceos18/market/database/ProductImage.java b/src/main/java/com/ceos18/market/database/ProductImage.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/ProductImage.java rename to src/main/java/com/ceos18/market/database/ProductImage.java diff --git a/market/src/main/java/com/ceos18/market/database/RefreshToken.java b/src/main/java/com/ceos18/market/database/RefreshToken.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/RefreshToken.java rename to src/main/java/com/ceos18/market/database/RefreshToken.java diff --git a/market/src/main/java/com/ceos18/market/database/Review.java b/src/main/java/com/ceos18/market/database/Review.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/Review.java rename to src/main/java/com/ceos18/market/database/Review.java diff --git a/market/src/main/java/com/ceos18/market/database/User.java b/src/main/java/com/ceos18/market/database/User.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/User.java rename to src/main/java/com/ceos18/market/database/User.java diff --git a/market/src/main/java/com/ceos18/market/database/base/BaseTimeEntity.java b/src/main/java/com/ceos18/market/database/base/BaseTimeEntity.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/base/BaseTimeEntity.java rename to src/main/java/com/ceos18/market/database/base/BaseTimeEntity.java diff --git a/market/src/main/java/com/ceos18/market/database/enums/ClothesSize.java b/src/main/java/com/ceos18/market/database/enums/ClothesSize.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/enums/ClothesSize.java rename to src/main/java/com/ceos18/market/database/enums/ClothesSize.java diff --git a/market/src/main/java/com/ceos18/market/database/enums/ReviewStatus.java b/src/main/java/com/ceos18/market/database/enums/ReviewStatus.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/enums/ReviewStatus.java rename to src/main/java/com/ceos18/market/database/enums/ReviewStatus.java diff --git a/market/src/main/java/com/ceos18/market/database/enums/Role.java b/src/main/java/com/ceos18/market/database/enums/Role.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/enums/Role.java rename to src/main/java/com/ceos18/market/database/enums/Role.java diff --git a/market/src/main/java/com/ceos18/market/database/enums/StatusCode.java b/src/main/java/com/ceos18/market/database/enums/StatusCode.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/enums/StatusCode.java rename to src/main/java/com/ceos18/market/database/enums/StatusCode.java diff --git a/market/src/main/java/com/ceos18/market/database/enums/TradingCode.java b/src/main/java/com/ceos18/market/database/enums/TradingCode.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/enums/TradingCode.java rename to src/main/java/com/ceos18/market/database/enums/TradingCode.java diff --git a/market/src/main/java/com/ceos18/market/database/enums/TradingStatus.java b/src/main/java/com/ceos18/market/database/enums/TradingStatus.java similarity index 100% rename from market/src/main/java/com/ceos18/market/database/enums/TradingStatus.java rename to src/main/java/com/ceos18/market/database/enums/TradingStatus.java diff --git a/market/src/main/java/com/ceos18/market/domain/ChatMessageRepository.java b/src/main/java/com/ceos18/market/domain/ChatMessageRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/ChatMessageRepository.java rename to src/main/java/com/ceos18/market/domain/ChatMessageRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/ChatRepository.java b/src/main/java/com/ceos18/market/domain/ChatRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/ChatRepository.java rename to src/main/java/com/ceos18/market/domain/ChatRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/ProductImageRepository.java b/src/main/java/com/ceos18/market/domain/ProductImageRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/ProductImageRepository.java rename to src/main/java/com/ceos18/market/domain/ProductImageRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/ReviewRepository.java b/src/main/java/com/ceos18/market/domain/ReviewRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/ReviewRepository.java rename to src/main/java/com/ceos18/market/domain/ReviewRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/auth/AuthController.java b/src/main/java/com/ceos18/market/domain/auth/AuthController.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/auth/AuthController.java rename to src/main/java/com/ceos18/market/domain/auth/AuthController.java diff --git a/market/src/main/java/com/ceos18/market/domain/auth/AuthService.java b/src/main/java/com/ceos18/market/domain/auth/AuthService.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/auth/AuthService.java rename to src/main/java/com/ceos18/market/domain/auth/AuthService.java diff --git a/market/src/main/java/com/ceos18/market/domain/auth/RefreshTokenRepository.java b/src/main/java/com/ceos18/market/domain/auth/RefreshTokenRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/auth/RefreshTokenRepository.java rename to src/main/java/com/ceos18/market/domain/auth/RefreshTokenRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/auth/UserRepository.java b/src/main/java/com/ceos18/market/domain/auth/UserRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/auth/UserRepository.java rename to src/main/java/com/ceos18/market/domain/auth/UserRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/auth/dto/AuthRequestDto.java b/src/main/java/com/ceos18/market/domain/auth/dto/AuthRequestDto.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/auth/dto/AuthRequestDto.java rename to src/main/java/com/ceos18/market/domain/auth/dto/AuthRequestDto.java diff --git a/market/src/main/java/com/ceos18/market/domain/auth/dto/SigninRequestDto.java b/src/main/java/com/ceos18/market/domain/auth/dto/SigninRequestDto.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/auth/dto/SigninRequestDto.java rename to src/main/java/com/ceos18/market/domain/auth/dto/SigninRequestDto.java diff --git a/market/src/main/java/com/ceos18/market/domain/product/ProductController.java b/src/main/java/com/ceos18/market/domain/product/ProductController.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/product/ProductController.java rename to src/main/java/com/ceos18/market/domain/product/ProductController.java diff --git a/market/src/main/java/com/ceos18/market/domain/product/ProductRepository.java b/src/main/java/com/ceos18/market/domain/product/ProductRepository.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/product/ProductRepository.java rename to src/main/java/com/ceos18/market/domain/product/ProductRepository.java diff --git a/market/src/main/java/com/ceos18/market/domain/product/ProductService.java b/src/main/java/com/ceos18/market/domain/product/ProductService.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/product/ProductService.java rename to src/main/java/com/ceos18/market/domain/product/ProductService.java diff --git a/market/src/main/java/com/ceos18/market/domain/product/dto/ProductRequest.java b/src/main/java/com/ceos18/market/domain/product/dto/ProductRequest.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/product/dto/ProductRequest.java rename to src/main/java/com/ceos18/market/domain/product/dto/ProductRequest.java diff --git a/market/src/main/java/com/ceos18/market/domain/product/dto/ProductResponse.java b/src/main/java/com/ceos18/market/domain/product/dto/ProductResponse.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/product/dto/ProductResponse.java rename to src/main/java/com/ceos18/market/domain/product/dto/ProductResponse.java diff --git a/market/src/main/java/com/ceos18/market/domain/product/exception/ProductNotFoundException.java b/src/main/java/com/ceos18/market/domain/product/exception/ProductNotFoundException.java similarity index 100% rename from market/src/main/java/com/ceos18/market/domain/product/exception/ProductNotFoundException.java rename to src/main/java/com/ceos18/market/domain/product/exception/ProductNotFoundException.java diff --git a/market/src/main/java/com/ceos18/market/global/config/CorsConfig.java b/src/main/java/com/ceos18/market/global/config/CorsConfig.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/config/CorsConfig.java rename to src/main/java/com/ceos18/market/global/config/CorsConfig.java diff --git a/market/src/main/java/com/ceos18/market/global/config/WebSecurityConfig.java b/src/main/java/com/ceos18/market/global/config/WebSecurityConfig.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/config/WebSecurityConfig.java rename to src/main/java/com/ceos18/market/global/config/WebSecurityConfig.java diff --git a/market/src/main/java/com/ceos18/market/global/exception/GlobalExceptionHandler.java b/src/main/java/com/ceos18/market/global/exception/GlobalExceptionHandler.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/exception/GlobalExceptionHandler.java rename to src/main/java/com/ceos18/market/global/exception/GlobalExceptionHandler.java diff --git a/market/src/main/java/com/ceos18/market/global/exception/dto/ErrorResponse.java b/src/main/java/com/ceos18/market/global/exception/dto/ErrorResponse.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/exception/dto/ErrorResponse.java rename to src/main/java/com/ceos18/market/global/exception/dto/ErrorResponse.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/CustomUserDetails.java b/src/main/java/com/ceos18/market/global/jwt/CustomUserDetails.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/CustomUserDetails.java rename to src/main/java/com/ceos18/market/global/jwt/CustomUserDetails.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/JpaUserDetailsService.java b/src/main/java/com/ceos18/market/global/jwt/JpaUserDetailsService.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/JpaUserDetailsService.java rename to src/main/java/com/ceos18/market/global/jwt/JpaUserDetailsService.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/JwtAuthenticationFilter.java b/src/main/java/com/ceos18/market/global/jwt/JwtAuthenticationFilter.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/JwtAuthenticationFilter.java rename to src/main/java/com/ceos18/market/global/jwt/JwtAuthenticationFilter.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/JwtExceptionHandlerFilter.java b/src/main/java/com/ceos18/market/global/jwt/JwtExceptionHandlerFilter.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/JwtExceptionHandlerFilter.java rename to src/main/java/com/ceos18/market/global/jwt/JwtExceptionHandlerFilter.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/TokenProvider.java b/src/main/java/com/ceos18/market/global/jwt/TokenProvider.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/TokenProvider.java rename to src/main/java/com/ceos18/market/global/jwt/TokenProvider.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/dto/JwtErrorResponse.java b/src/main/java/com/ceos18/market/global/jwt/dto/JwtErrorResponse.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/dto/JwtErrorResponse.java rename to src/main/java/com/ceos18/market/global/jwt/dto/JwtErrorResponse.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/dto/TokenDto.java b/src/main/java/com/ceos18/market/global/jwt/dto/TokenDto.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/dto/TokenDto.java rename to src/main/java/com/ceos18/market/global/jwt/dto/TokenDto.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/exception/JwtAccessDeniedHandler.java b/src/main/java/com/ceos18/market/global/jwt/exception/JwtAccessDeniedHandler.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/exception/JwtAccessDeniedHandler.java rename to src/main/java/com/ceos18/market/global/jwt/exception/JwtAccessDeniedHandler.java diff --git a/market/src/main/java/com/ceos18/market/global/jwt/exception/JwtAuthenticationEntryPoint.java b/src/main/java/com/ceos18/market/global/jwt/exception/JwtAuthenticationEntryPoint.java similarity index 100% rename from market/src/main/java/com/ceos18/market/global/jwt/exception/JwtAuthenticationEntryPoint.java rename to src/main/java/com/ceos18/market/global/jwt/exception/JwtAuthenticationEntryPoint.java diff --git a/market/src/main/resources/application.yml b/src/main/resources/application.yml similarity index 79% rename from market/src/main/resources/application.yml rename to src/main/resources/application.yml index b0bcb60f..3dab0c28 100644 --- a/market/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,11 +1,9 @@ spring: - config: - import: env.yml datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://db:3306/ceos18 - username: root - password: 12345678 + url: ${DB_URL} + username: ${DB_USERNAME} + password: ${DB_PASSWORD} jpa: database: mysql database-platform: org.hibernate.dialect.MySQL8Dialect diff --git a/market/src/test/java/com/ceos18/market/MarketApplicationTests.java b/src/test/java/com/ceos18/market/MarketApplicationTests.java similarity index 100% rename from market/src/test/java/com/ceos18/market/MarketApplicationTests.java rename to src/test/java/com/ceos18/market/MarketApplicationTests.java