diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
new file mode 100644
index 0000000..657abc8
--- /dev/null
+++ b/.github/workflows/gradle.yml
@@ -0,0 +1,71 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
+
+name: Java CI with Gradle
+
+on:
+  push:
+    branches: [ "main" ]
+  pull_request:
+    branches: [ "main" ]
+
+permissions:
+  contents: read
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+
+    steps:
+    - uses: actions/checkout@v3
+    - name: Set up JDK 17
+      uses: actions/setup-java@v3
+      with:
+        java-version: '17'
+        distribution: 'temurin'
+
+    - name: make application-api-key.properties
+      run: |
+        cd ./src/main/resources
+        touch ./application-api-key.properties
+        echo "${{ secrets.APPLICATION_API_KEY }}" > ./application-api-key.properties
+
+    - name: make db-application.properties
+      run: |
+        cd ./src/main/resources
+        touch ./db-application.properties
+        echo "${{ secrets.DB_APPLICATION }}" > ./db-application.properties
+    
+    - name: Make gradlew executable
+      run: chmod +x ./gradlew
+    - name: Build with Gradle
+      #uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 # v2.6.0
+      #with:
+        #arguments: build
+      run : ./gradlew clean build --exclude-task test
+
+
+## 도커 이미지 빌드 후 도커허브에 push하기
+    - name: web docker build and push
+      run: |
+        docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
+        docker build -t ${{ secrets.DOCKER_REPO }} .
+        docker push ${{ secrets.DOCKER_REPO }}
+         
+    ## 서버에 접속하여 도커 이미지를 pull 받고 실행하기
+    - name: executing remote ssh commands using ssh key
+      uses: appleboy/ssh-action@v1.0.0
+      with:
+        host: ${{ secrets.HOST }}
+        username: ec2-user
+        key: ${{ secrets.PRIVATE_KEY }}
+        port: ${{ secrets.PORT }}
+        script: |
+          docker rm -f $(docker ps -qa)
+          sudo docker pull ${{ secrets.DOCKER_REPO }}
+          sudo docker run -d -p 80:8080 ${{ secrets.DOCKER_REPO }}
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..dc4302a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,4 @@
+FROM openjdk:17-oracle
+ARG JAR_FILE=build/libs/*.jar
+COPY ${JAR_FILE} app.jar
+ENTRYPOINT ["java","-jar","/app.jar"]\
diff --git a/src/test/java/mvc/promiseme/project/projectTest.java b/src/test/java/mvc/promiseme/project/projectTest.java
index 4ca6aae..4074030 100644
--- a/src/test/java/mvc/promiseme/project/projectTest.java
+++ b/src/test/java/mvc/promiseme/project/projectTest.java
@@ -1,6 +1,7 @@
 package mvc.promiseme.project;
 
 import mvc.promiseme.project.dto.*;
+
 import mvc.promiseme.project.service.ProjectService;
 import mvc.promiseme.project.service.RecommendService;
 import mvc.promiseme.users.service.UserService;