From 0dadac95de5fd3a17d6d97876592b23c3fe69c9c Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 13:52:15 +0900 Subject: [PATCH 01/30] =?UTF-8?q?[CICD]=20deploy.yml=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 68 +++++++++++++++++++ .gitignore | 0 .../java/fitfit/global/config/WebConfig.java | 0 src/main/resources/application.properties | 1 - src/main/resources/application.yml | 0 5 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore create mode 100644 src/main/java/fitfit/global/config/WebConfig.java delete mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/application.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..24ddb5e --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,68 @@ +# 워크플로우의 전체 이름 +name: 픽픽 CI/CD 배포 + +# 워크플로우가 언제 실행될지 정의하는 트리거 +on: + # main 브랜치에 push 이벤트가 발생했을 때 실행 + push: + branches: [ "main" ] + +# 실행될 작업(Job)들을 정의 +jobs: + # '빌드와 배포' 작업 + build-and-deploy: + # 이 작업이 실행될 가상 머신의 종류 (최신 우분투) + runs-on: ubuntu-latest + + # 작업 내에서 순서대로 실행될 단계(Step)들 + steps: + # 1. 소스 코드 체크아웃 + - name: 소스 코드 체크아웃 + uses: actions/checkout@v4 + + # 2. JDK 17 설치 + - name: JDK 17 설치 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + # 3. Gradle 캐시 설정 + # 매번 Gradle 의존성 받을 필요 없어 빌드 속도 빨라짐 + - name: Gradle 캐시 설정 + uses: actions/cache@v4 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + + # 4. gradlew 실행 권한 부여 + - name: gradlew 실행 권한 부여 + run: chmod +x ./gradlew + + # 5. Gradle로 빌드하기 + - name: Gradle로 빌드하기 + run: ./gradlew bootJar + + # 6. EC2에 배포 스크립트와 JAR 파일 업로드 + - name: EC2에 파일 업로드 + uses: appleboy/scp-action@master + with: + host: 3.39.96.123 + username: ec2-user + key: ${{ secrets.EC2_SSH_KEY }} + source: "build/libs/*.jar,deploy.sh" # .jar 파일과 deploy.sh 파일을 함께 업로드 + target: "/home/ec2-user/app" + + # 7. EC2에서 배포 스크립트 실행 + - name: EC2에서 배포 스크립트 실행 + uses: appleboy/ssh-action@master + with: + host: 15.164.215.46 # EC2 퍼블릿 IP + username: ec2-user + key: ${{ secrets.EC2_SSH_KEY }} + script: | + cd /home/ec2-user/app + chmod +x deploy.sh # 스크립트 실행 권한 부여 + ./deploy.sh # 스크립트 실행 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/fitfit/global/config/WebConfig.java b/src/main/java/fitfit/global/config/WebConfig.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index b3459a0..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=fitfit diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..e69de29 From 62d9ed8a6b411f0df4b4392a25097fabc9807878 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 13:53:29 +0900 Subject: [PATCH 02/30] =?UTF-8?q?[CICD]=20gradle=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 41 ++++++++++++++++++ .../executionHistory/executionHistory.bin | Bin 36151 -> 52883 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 18947 -> 19147 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 18531 -> 18565 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes build/resources/main/application.properties | 1 - .../compileJava/previous-compilation-data.bin | Bin 24711 -> 34094 bytes .../java/fitfit/global/config/WebConfig.java | 19 ++++++++ 11 files changed, 60 insertions(+), 1 deletion(-) delete mode 100644 build/resources/main/application.properties diff --git a/.gitignore b/.gitignore index e69de29..d6d4638 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,41 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ +src/main/generated/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +/src/main/resources/*.yml +.DS_Store \ No newline at end of file diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index f749ae9a0afc4bc3902d77ae597758b004a4ba95..88551ab7be659519ad24389b44107768b83d6424 100644 GIT binary patch delta 692 zcmdl!i)r#)<_RK#j0|Al;mE+?5Cmi@ZdCjtK3P)2iK*9obF73@fqnh#?8*Y;$||Ge zJk#XDs)Ew;%*yl}bJMb%vO)okw|cK`c>ms>6eyP25ht=t07GQ+y^dLojF%=CbO%p9 z)5W7+nVZ8b@FA}5PscpJ+Y1-|I3TcO;y1<#i3J5YnaPPInfZBoKqV)^>Jz%p3f%U! z$*9+}f0Jr%I91~D(Up^Jdn%03l`~+NIN|)V151pLu`sk3mjF#oo_w)gcv7!oJ-Tr$ zzyM(BDT>qCd+2^zecNvz;UH~`IQ&& z2%rlwY|bxA*Gn%-oSf+=wt0;Qw+$21ZJ-xDCo{DMGd={dqOuap67|zEOMpl}JtsdY zF-Jc+KQApaT|YcE$r;Sj1F2ya$X?gic(9s3=QrcEo5dMr6Bw7^*ETtzHAG;!b5`@^ z9p+Ca_SpvC?mJ#Fc}wf=dWLq0O$_Z2s~9IB>`Kl_EG}jch-&Z+KC${!`)Y>F7jI*d zuWUO93fP}K%nSlQqBHu9SH4?Q7~b5wPp{YnD0E77{a<@UlhZSI1lic<=BEOMUY74y zEqGn-dQfA=TdRz=2%u2=jYT_NiZMuW?3-g8xjZe2Z}Zf)`;79^5 T;R_efyaHRbu8Rp2A&wCM$&($W delta 258 zcmbO{mwEdvrU@df3_u{d(eQ=%L_w3NQ3=qHp05$vsNB{r; literal 17 UcmZR+zEE&>_w3NQ3=qHq05$joL;wH) diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index bdbf38a4ae53a5a2101703462b9a29135e83b9d8..a3227550070a97d9cfb21842f8adc3f27693294d 100644 GIT binary patch delta 361 zcmZpk!gzWr;|3E6M&8M$5(XOV%l|fV^QY7>fPvS{|4<-g#AQVzg4kw94=Y9mX^9>G zUud&`e8J@M;qZlvXBZe5XL)cghZ^6iH~Flm`s72Nj`hYsV>E$S5rhS*I(+A|uwR~~ z`JCfot5I@2NSph|4^0ren3aIE9;%M02H)Tlt3S1`X2^W;HYWKB)FLy84z@~69UtQA m{&dXqyS;GXj{^dpOD28;YhkTOgJ@xLBcKJQgLC-=WE}uXO=ofd delta 84 zcmX>-m9cpW;|3E6M$XBm5(bl}N_b5EDj_jhRWgW);pIlfAL1Jg48%7(dRQ?kJPO~t nrQnO3LJzAII2Ees5dvrPUqTwnl$g!aj2J=G^4@^l0M`(GYi diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 8d7143b6f6faa179908c3f91d7a49ddb8050e587..74d6b5f078796bb27d3865ed862ec36b55554774 100644 GIT binary patch literal 17 UcmZP$dcEV?luWq%&7bp|@!HMejIs$pK{)^eBp@XK delta 32 ocmZpj$oO~y;|3E6M#jm$63UF48x?9Rs`sNa0|Y1o04_WO^#A|> literal 17 UcmZQB3}>9Rs`sNa0|dwb04_BH?f?J) diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 89e0f3d55b0ef4c7bcbfd6c3cb1c59b178c8df71..54e81b710971c1ef700adba8c36c23fad47dd700 100644 GIT binary patch literal 8 PcmZQzV4UT_xsVe81(pGq literal 8 PcmZQzV4P+0FIo!#2f6}N diff --git a/build/resources/main/application.properties b/build/resources/main/application.properties deleted file mode 100644 index b3459a0..0000000 --- a/build/resources/main/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=fitfit diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 7efd6a6d675fdd8b85514d3d29c628e383e64293..93285e65d760d2325987b436b3d5629a73a2ff58 100644 GIT binary patch literal 34094 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 Date: Mon, 3 Nov 2025 13:59:17 +0900 Subject: [PATCH 03/30] =?UTF-8?q?[CICD]=20application.yml=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/application.yml diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml deleted file mode 100644 index e69de29..0000000 From f748aaeb2022a10ba2157973598348917a73ba41 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 13:59:58 +0900 Subject: [PATCH 04/30] =?UTF-8?q?[CICD]=20deploy.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 24ddb5e..2fb4be2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -50,7 +50,7 @@ jobs: uses: appleboy/scp-action@master with: host: 3.39.96.123 - username: ec2-user + username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} source: "build/libs/*.jar,deploy.sh" # .jar 파일과 deploy.sh 파일을 함께 업로드 target: "/home/ec2-user/app" From 7ecee4ad35622eae5b15710d44a1c9fd97a56b89 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 14:03:59 +0900 Subject: [PATCH 05/30] =?UTF-8?q?[CICD]=20deploy.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2fb4be2..45866ca 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -53,16 +53,16 @@ jobs: username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} source: "build/libs/*.jar,deploy.sh" # .jar 파일과 deploy.sh 파일을 함께 업로드 - target: "/home/ec2-user/app" + target: "/home/ubuntu/app" # 7. EC2에서 배포 스크립트 실행 - name: EC2에서 배포 스크립트 실행 uses: appleboy/ssh-action@master with: host: 15.164.215.46 # EC2 퍼블릿 IP - username: ec2-user + username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} script: | - cd /home/ec2-user/app + cd /home/ubuntu/app chmod +x deploy.sh # 스크립트 실행 권한 부여 ./deploy.sh # 스크립트 실행 \ No newline at end of file From cdc6ec8548a7645b4d7ea387eabf9f3845e9e184 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 14:10:15 +0900 Subject: [PATCH 06/30] =?UTF-8?q?[CICD]=20deploy.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 45866ca..ff52b14 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -49,7 +49,7 @@ jobs: - name: EC2에 파일 업로드 uses: appleboy/scp-action@master with: - host: 3.39.96.123 + host: 13.209.76.247 username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} source: "build/libs/*.jar,deploy.sh" # .jar 파일과 deploy.sh 파일을 함께 업로드 @@ -59,7 +59,7 @@ jobs: - name: EC2에서 배포 스크립트 실행 uses: appleboy/ssh-action@master with: - host: 15.164.215.46 # EC2 퍼블릿 IP + host: 13.209.76.247 # EC2 퍼블릿 IP username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} script: | From d2aeb60e35c9dedaf152fc946eb6db449c178016 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 14:17:11 +0900 Subject: [PATCH 07/30] =?UTF-8?q?[CICD]=20deploy.sh=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..b77ed16 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,15 @@ +#!/bin/bash + BUILD_JAR=$(ls /home/ubuntu/app/build/libs/*.jar) + JAR_NAME=$(basename $BUILD_JAR) +echo ">>> build file name: $JAR_NAME" >> /home/ubuntu/app/deploy.log + + echo ">>> kill existing process" >> /home/ubuntu/app/deploy.log + PID=$(pgrep -f .jar) + if [ -n "$PID" ]; then + sudo kill -15 $PID + sleep 5 + fi + + echo ">>> execute new jar file" >> /home/ubuntu/app/deploy.log + cd /home/ubuntu/app + nohup sudo java -jar $BUILD_JAR > /dev/null 2>&1 & \ No newline at end of file From a2d95aeb41ed16d0042691c2bdbd5b4000526008 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Mon, 3 Nov 2025 14:24:48 +0900 Subject: [PATCH 08/30] =?UTF-8?q?[FEAT]=20Swagger=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.14.3/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/8.14.3/checksums/md5-checksums.bin | Bin 23447 -> 23597 bytes .gradle/8.14.3/checksums/sha1-checksums.bin | Bin 30215 -> 30863 bytes .../executionHistory/executionHistory.bin | Bin 52883 -> 74595 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 19147 -> 19247 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 18565 -> 18599 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes build.gradle | 3 ++ .../compileJava/previous-compilation-data.bin | Bin 34094 -> 37790 bytes .../fitfit/global/config/SwaggerConfig.java | 38 ++++++++++++++++++ 13 files changed, 41 insertions(+) create mode 100644 src/main/java/fitfit/global/config/SwaggerConfig.java diff --git a/.gradle/8.14.3/checksums/checksums.lock b/.gradle/8.14.3/checksums/checksums.lock index 2333d56729ca443465b13f831680abcd5838710b..111e981206ae1f7856647d44ed81d0f6f4bf036a 100644 GIT binary patch literal 17 UcmZSPEVbNl){;G%0Sp*J03(|NC;$Ke literal 17 UcmZSPEVbNl){;G%0Sp)&0V9Y56#xJL diff --git a/.gradle/8.14.3/checksums/md5-checksums.bin b/.gradle/8.14.3/checksums/md5-checksums.bin index bc704527688b92c901fcf3fb96e83094e07d97bb..9c1748a2085ac7b571a7c4e3cf452d169ea6ac89 100644 GIT binary patch delta 246 zcmbQfopJ3B#tkMCjA@%qB`z=t9GaJTDO+@1CIc8mPv87k%94#=*eZ$7+e{cLcyh9? zqJ==ER6V^Un9MHLxIYKssFjedoF#1XkinAXb~|1X#oIFovj_!qG-zz(xPNLCYK CY!7At diff --git a/.gradle/8.14.3/checksums/sha1-checksums.bin b/.gradle/8.14.3/checksums/sha1-checksums.bin index f2d6a0d7dbe937cfc220a30e564467c234c8cb60..67241e8b3145cc5bed0cd6899b06135d5d177615 100644 GIT binary patch delta 944 zcmZpF!`T0kaf68jneO|03UQQ4^;tKn36ahk`@%GB0I|uFHg)uyXTSnFCA$ zkKfnpB`0+qhKk;woGSl7;BDX=kz4OuIiW^)PqtNP5cm=lRo!BK`3Xd@LV5F6g$6bO zr@sllK|(54P|?WEy6P7h`Tf?$$7!ED4mFg0^H+^RMt<4-LUNi(3m}5!+c(E*X)p>D zb5E0~>O5QrRcgDrR$GdZNwjmL;t%nS1{0VzJ9-?`tv3cr>jJSV2#ahr&CB_I)61## z!nrzk|6(VVL~D5l2F6()+ALQf=5Y4`X(Lo!J#nsE+|zhoN$6d+^yU*j_C>S&5=0kk zI7AokWK3PBewSC~)<4Ua+;fWYZ^wuG-`*Sy4gzYMshsW;2hpat1XCM%mf1fly1s+) z$9?;yOXp6!EO_n0qBo8pC)Rstvk5^g6EVTGY+6b3KJDUwb6@`X$gXj*@-nuvehAby zvGqi}1w>bs1kt*Hp~$unO;p>9VCTNptB;-Sqg4RPaZH%!Ym)+(BP raN|A0s~~pn{i$~4ypqlkFgQvwb0W o2D1$)$pN$ODQE$+ZYv)Fv!yH&0Rj|hu_5>uu`sX$vq4D4EuzjLKL7v# diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index 88551ab7be659519ad24389b44107768b83d6424..ad3143723038e7a64584279da22878012f98307a 100644 GIT binary patch delta 4159 zcmd6qdvp}l9mjWeNx~t3vxG;GL$D_l1>N15xifQT+s1%E3czSd_7g{VSnRM+~&kstpHj>c9 z#AoxK5Pf2iRs#Ile(WpOa{c}(x!JyaL&AuC?2PmD{ulmTt-aLK^ZKOjt8Ag&uV1xw zICj0NCbavvAE&$sES8Kq`ra0PFV2&I8y6Slm1x-|`F_)@l}y2IobSsnVTY!z>)Ac_ z+Gmrh*EDsSo?AaJ>9#GB^|OAVwWAKjGA?4Te~ToIIm~=Sm`q5@y`4(+0ColQ@;!bx zT{!}Ih9Bj59KiyVUtr`riVV$Hh#gZrF2M<$oJ$jt33x-*MNR@LRz*|M4NWtl%<(|f zRhb6>U_ty}BpqSNUYs)r<=fcUGuriDPuT-y6|=I>F8jMHbgn|TGIjqSCM9p>G!#QN zMA;BDs6YwxP*I^G=s*!Dx2$P`uE>hU!@F~a-4L98=*>q#PaK$6v*bui)zS;`g9n~D z_Net3Id7zsX}+`t8MV~kAsN&&dP_l9un4)`)I(~Xp-#!$sPfSkaY z0;Z@O)D6Mpbr}h=M5)@2I-*C((BJi9ZqO^G+@)YR;PVCitu7#J0$CC{MbLo3ahxt` zl8Uhk0T2X8ua1xeO(^|<3sJpDsiFqhS<Ipbo*_}9$Z#WA<+r5OpJ91DiZ7f9j1ShY$cum8cYHCQt9Kr&Cl8&Gx1FUgCH+9aW z*pTPAJBm=Kut>Bl`!sH3=h#l&CZ(OY6!)IB&l993LnTKy^W^Qx?hTn6nJ6GB-gxxs+np`!v6-Ex#5 zpO+d*9S~d^;yI|QBBvuHb1EnEwEMBbX;8qDM3*Au6_Mk=Pltkqb)sI*{LQJI9)8dJ z*^hwZv6oY~H(2W_*kH2kl`Q7l$f_Crglyk7F;ukbU>sR6ZU|{cai!5#3A$Q89bV*j z0~c`eFg!STs0%!hO-__K9b--xI9{e^nHVWh0Ge)!h5@u3JaiP2=8Qo<)PKnD4-}vRPr!d$RWYw{x&kp&bRa_rX3CgA>32jxqgI1)p58rIZ^uN@*FBxgGH(z|DOYyo9)z;I*UinmMvCr$& zJbs;)A@UqJZ*Dlkqf4YSMs(@2E&u_VK%thY2mk~$SyN2G;3cHW8Ws$QOda1*!x7Pl z`ZXt%e6DH6x_?fve>9>uJZZI_i!c--uZMOK^`TAS)>ecgJnICPDrm9{cv(_upVQFd zR6`UMDC)q_R3IC=X&8nCgzr(IrK2iQk|)!b&v`fF{Du#USI+G4i$t=FJXHB~DK797 zw&y@?TM-W0lhhBDCZ>Qmoz4c`fIQ+fL&u`7>6#%zI^L0_V~I1BHjefx;m&r7QH}#O zdsF)lKhb67nKx=%VrJRSS;L9=COPLh^x!07&&Zr*M|^qu#jj^1K0c~2c6t2RYbBwY zs)-L!AogwzM0WD@f@gkjU6>bd9pCrNjvjL(aTuEB>%xS?Fy~%`VYry==k^=RZ+!U4 zr>An0f{#92d+9~BJy|(K zsp`**j&0m9t$JW_BrQYbTc2a@S5&eEGYg@sPkO`q;=~E|4rS>xZw6&5S-9DLD=b6X zxAp7D9Bs|cdmWW*3v5&eRF54#a_Rcaka@PEeNY;K1?FS-J1G;RNy+Zm&Yo&my6GRI z_pG&X5Qsl|PO^15v1`^(N#5$(7q@Eq;>0oGP)Mj8T6!xK+mhwh*1gC{cE~&Mi^B`| zKAC!P`8yt)|C7fFTbc5s$0X~$QbwRV>sju2)1VNsCd>;RscU3xwnGfz$0U%fT`8pN ztdZ7}H@~J07#sb&@=U;Qdfaq67a|*5F@Ef#{-xt~Y+S9zU-)_aNoEb%v#Uq<+kblO zrp^iWAU_M4}Q^g{wA__w3NQ3=qH%05$^zPXGV_ literal 17 UcmZR+zEE&>_w3NQ3=qHp05$vsNB{r; diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index a3227550070a97d9cfb21842f8adc3f27693294d..ac948c0639fb6e20e77790ed2de67cb95ab4b1f6 100644 GIT binary patch delta 252 zcmX>-m2v$v#tkMCn*6i%c(=ZZ3QA-E1COQuq2P0pwE1$q+0P*2UVkUMN}Lezjx27v zxP)I8DtLM_t7I`_#08ZkmodJZR_ikqrLQ*wNLgcFW8c z??PE_9n-LCzYaD)Yu;ms0c^*Bw4O1L&;(*d5Ed{jyc-=qRhZ|W>zu`cCni=vtz-vE L0s&VikkA7F@EudC delta 136 zcmZ2Kjq&tU#tkMCg1oc!c(=ZZ3QA-E1COPXVZww26g^xUZULwuvb1+mSJ9x{w9 zCjTn_PEPccQjnI|@&AQ3`^OhdE*}nGxOj$vfpL}x=khFw0j+wI&w8p)KIA!#nRB_> gy>J0iuq{4M^(&0Q2=N1poj5 diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 74d6b5f078796bb27d3865ed862ec36b55554774..a2aac0fca9ff7baeeda36eb2d717e1eede6109c4 100644 GIT binary patch literal 17 UcmZP$dcEV?l78eD*h1P qXmCJ$vZIHKk}*(D5{LysSYT>+@GO=3&?8%xTXKI2<9-Shlmh@`yCmfR delta 45 ycmZ2Jk+F3m;|3E6L8cA!jwaP-rR`$?1CQj%u@c&hjvEz!h;KBwAwJpB!vz3fEe{g_ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 45bebada9d48a7ad65b756f2fae58e9e502e2b8e..a8bd8f1f8a3d61b0fddfa7c29e160dbd3e7b1a9b 100644 GIT binary patch literal 17 UcmZQB3}>9Rs`sNa0|XcX04_=d0{{R3 literal 17 UcmZQB3}>9Rs`sNa0|Y1o04_WO^#A|> diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 54e81b710971c1ef700adba8c36c23fad47dd700..74bd8377ae99653f6b2f0807278272ea1653c5b4 100644 GIT binary patch literal 8 PcmZQzV4UTlt$h*z1<(Qm literal 8 PcmZQzV4UT_xsVe81(pGq diff --git a/build.gradle b/build.gradle index f86e8e1..d7fb5c6 100644 --- a/build.gradle +++ b/build.gradle @@ -31,6 +31,9 @@ dependencies { annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + + // Swagger + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' } tasks.named('test') { diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 93285e65d760d2325987b436b3d5629a73a2ff58..45a476ad70110ee1c087e96e32d490b5ccc99a0d 100644 GIT binary patch literal 37790 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

l!H4GYz>06-;<5Wh{Hk6xWxHC6CYct*Ne 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 F{tpZRR!RT> literal 34094 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 Date: Tue, 4 Nov 2025 13:50:39 +0900 Subject: [PATCH 09/30] =?UTF-8?q?[CICD]=20nginx.conf=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 19247 -> 19597 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .idea/gradle.xml | 6 ++ .idea/misc.xml | 3 + .idea/workspace.xml | 82 +++++++++++++++--- nginx.conf | 26 ++++++ .../java/fitfit/global/config/WebConfig.java | 2 +- 7 files changed, 104 insertions(+), 15 deletions(-) create mode 100644 nginx.conf diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index ac948c0639fb6e20e77790ed2de67cb95ab4b1f6..42e791f2f9183a4be53a32939de6733e2865be20 100644 GIT binary patch delta 562 zcmZ2Kjj?wo;|3FnNU_;^yj$Ny1tl_ofydJSQ1BpLG*RT?{DTm2A5EC}<5&L}{@nU- z9U|_n4-F86-=C5D)GP}=xFLGg-=^dpn^wX zCZzwYy5JMV#t9Yw4inGJQYqSZ?CoucxKH$CU&$yYCdG}4Kg2g0{1Dyj=<$xJ-WVvW z3B-yZEMWfa=h}i-llK&#xxic@X)4aZz&L%j?zsa%NgzmI1QL3vI{vJ6{2JEza>~X% z`_+ANOXdT0%;Z06*az0I^+7VGj*FaCG6u4pt`krF+Mrn<{HGqGW&Z?_78W7bTud!* zcU%mT5#D^|iDlw0y;|lQD9+Ld*22``yExC8LSP1 z=}18MJ^o7kw4EkdZ_P|f=iSKrpMYWsgS + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6ed36dd..bc22706 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8405bdb..7fbecb3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,28 +10,63 @@ + + + + + + - { + "lastFilter": { + "state": "OPEN", + "assignee": "simhyunmin" } -}]]> +} + + + - - - + {} + { + "isMigrated": true +} + { + "associatedIndex": 7 +} + + + + + @@ -67,6 +120,7 @@ diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..5b6a5d7 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,26 @@ +server { + listen 443 ssl; + server_name api.fitfit.site; + + # SSL 인증서 경로도 api.fitfit.site에 맞게 새로 발급 + # (예: sudo certbot --nginx -d api.fitfit.site) + ssl_certificate /etc/letsencrypt/live/api.fitfit.site/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/api.fitfit.site/privkey.pem; + include /etc/letsencrypt/options-ssl-nginx.conf; + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; + + location / { + # 요청을 내부 스프링 앱(8080 포트)으로 전달하는 것은 동일합니다. + proxy_pass http://127.0.0.1:8080; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} + +server { + listen 80; + server_name api.fitfit.site; + return 301 https://$host$request_uri; +} diff --git a/src/main/java/fitfit/global/config/WebConfig.java b/src/main/java/fitfit/global/config/WebConfig.java index 01190dd..31b5ec0 100644 --- a/src/main/java/fitfit/global/config/WebConfig.java +++ b/src/main/java/fitfit/global/config/WebConfig.java @@ -10,7 +10,7 @@ public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 모든 경로에 대해 - .allowedOrigins("https://d2nzr3y6e8k3zl.cloudfront.net/", "http://localhost:3000", "https://algogaza.site/") // CloudFront와 로컬 개발 환경 허용 + .allowedOrigins("https://d3trbid3w75opm.cloudfront.net/", "http://localhost:3000", "https://fitfit.site/", "http://localhost:5173") // CloudFront와 로컬 개발 환경 허용 .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .allowCredentials(true) From 8df9532f7079a121bce08fdb1509307923bdf396 Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Tue, 4 Nov 2025 13:54:49 +0900 Subject: [PATCH 10/30] =?UTF-8?q?[CICD]=20=ED=83=84=EB=A0=A5=EC=A0=81=20IP?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 4 ++-- .idea/workspace.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ff52b14..d4105b5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -49,7 +49,7 @@ jobs: - name: EC2에 파일 업로드 uses: appleboy/scp-action@master with: - host: 13.209.76.247 + host: 3.39.139.208 username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} source: "build/libs/*.jar,deploy.sh" # .jar 파일과 deploy.sh 파일을 함께 업로드 @@ -59,7 +59,7 @@ jobs: - name: EC2에서 배포 스크립트 실행 uses: appleboy/ssh-action@master with: - host: 13.209.76.247 # EC2 퍼블릿 IP + host: 3.39.139.208 # EC2 퍼블릿 IP username: ubuntu key: ${{ secrets.EC2_SSH_KEY }} script: | diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7fbecb3..87c7f6f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -120,7 +120,7 @@ From 66a3a0c5d71a3be329cd4c9914f321af02c86b7a Mon Sep 17 00:00:00 2001 From: simhyunmin Date: Tue, 4 Nov 2025 17:26:11 +0900 Subject: [PATCH 11/30] =?UTF-8?q?[CHORE]=20application.yml=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 -- .idea/workspace.xml | 2 +- src/main/resources/application.yml | 29 +++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/application.yml diff --git a/.gitignore b/.gitignore index d6d4638..c8c62ae 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,4 @@ out/ ### VS Code ### .vscode/ - -/src/main/resources/*.yml .DS_Store \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 87c7f6f..de04be5 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -120,7 +120,7 @@