From 21f3bbeea059769a9182b4cd49cdc300a7491f6c Mon Sep 17 00:00:00 2001 From: choikyungsoo Date: Fri, 11 Apr 2025 17:26:33 +0900 Subject: [PATCH 01/12] =?UTF-8?q?CHORE:=204=EC=A3=BC=EC=B0=A8=20-=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=B4=88=EA=B8=B0=20?= =?UTF-8?q?=EC=84=B8=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gradle/8.13/checksums/checksums.lock" | Bin 0 -> 17 bytes .../executionHistory/executionHistory.bin" | Bin 0 -> 36157 bytes .../executionHistory/executionHistory.lock" | Bin 0 -> 17 bytes .../.gradle/8.13/fileChanges/last-build.bin" | Bin 0 -> 1 bytes .../.gradle/8.13/fileHashes/fileHashes.bin" | Bin 0 -> 19247 bytes .../.gradle/8.13/fileHashes/fileHashes.lock" | Bin 0 -> 17 bytes .../8.13/fileHashes/resourceHashesCache.bin" | Bin 0 -> 18531 bytes .../.gradle/8.13/gc.properties" | 0 .../buildOutputCleanup.lock" | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties" | 2 + .../buildOutputCleanup/outputFiles.bin" | Bin 0 -> 18947 bytes .../.gradle/file-system.probe" | Bin 0 -> 8 bytes .../.gradle/vcs-1/gc.properties" | 0 .../.idea/.gitignore" | 8 + .../.idea/compiler.xml" | 14 + .../.idea/dataSources.xml" | 17 ++ .../.idea/gradle.xml" | 15 ++ .../.idea/misc.xml" | 7 + .../.idea/modules.xml" | 9 + .../.idea/modules/1499227598/spring.main.iml" | 8 + .../.idea/vcs.xml" | 6 + ..._\354\265\234\352\262\275\354\210\230.iml" | 9 + .../HELP.md" | 25 ++ .../build.gradle" | 38 +++ .../build/.DS_Store" | Bin 0 -> 6148 bytes .../java/main/umc/spring/Application.class" | Bin 0 -> 709 bytes .../build/resources/main/application.yml" | 6 + .../previous-compilation-data.bin" | Bin 0 -> 24691 bytes .../delete.txt" | 1 - .../gradle/wrapper/gradle-wrapper.jar" | Bin 0 -> 43705 bytes .../gradle/wrapper/gradle-wrapper.properties" | 7 + .../gradlew" | 251 ++++++++++++++++++ .../gradlew.bat" | 94 +++++++ .../settings.gradle" | 1 + .../src/.DS_Store" | Bin 0 -> 6148 bytes .../src/main/.DS_Store" | Bin 0 -> 6148 bytes .../main/java/umc/spring/Application.java" | 13 + .../src/main/resources/application.yml" | 6 + .../java/umc/spring/ApplicationTests.java" | 13 + 39 files changed, 549 insertions(+), 1 deletion(-) create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/checksums/checksums.lock" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.bin" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.lock" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileChanges/last-build.bin" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.bin" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.lock" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/resourceHashesCache.bin" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/gc.properties" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/buildOutputCleanup/buildOutputCleanup.lock" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/buildOutputCleanup/cache.properties" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/buildOutputCleanup/outputFiles.bin" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/file-system.probe" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/vcs-1/gc.properties" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/.gitignore" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/compiler.xml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/misc.xml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules.xml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules/1499227598/spring.main.iml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/vcs.xml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/\354\210\230_\354\265\234\352\262\275\354\210\230.iml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/HELP.md" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build.gradle" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/.DS_Store" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/Application.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/resources/main/application.yml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/previous-compilation-data.bin" delete mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/delete.txt" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.jar" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.properties" create mode 100755 "\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew.bat" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/settings.gradle" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/.DS_Store" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/.DS_Store" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/Application.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/resources/application.yml" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/test/java/umc/spring/ApplicationTests.java" diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/checksums/checksums.lock" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/checksums/checksums.lock" new file mode 100644 index 0000000000000000000000000000000000000000..236eb7aa7d5a66587075eafbb6d1dd0cb8599b73 GIT binary patch literal 17 TcmZSHwy~k=o2vgh1}FdkIfw*( literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.bin" new file mode 100644 index 0000000000000000000000000000000000000000..aeefffff4b34fd8415a6d2b346a1fc80c68329fc GIT binary patch literal 36157 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 literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileChanges/last-build.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileChanges/last-build.bin" new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.bin" new file mode 100644 index 0000000000000000000000000000000000000000..2c45b89c6a34583eb517e0c47be0f224b828530b GIT binary patch literal 19247 zcmeI(Z!DB?00;2LpUZ^qB#yO3=|xu!)kUF9wS}2vF}rNB8>Z5VMy*9IQt9XoId?iF z|5B%6vPl+~LKA72Rcox7xspE@Q>W)V&og(PH?5cL``e!9`R)7szR&LYJooPIIYJPQ zyd`=NE5m+eiWvkT009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=|BFC4c_VA7n{nJ} zs-JLE3Bto#KgsA+%dg(G3Z_m6{bqhYkh|G5PKv@}s64Qb$tz_1#fr*oCn^sZWb(F! z-r^zuFLm^F;+cF%9#KSJY89;jq;yY~1y zH?@;8I!|PBZ?W~n@Pot&`Z^Dp+$VQtd#TE{300Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0ucB&fjwkRKyI7$8;|#`{(j$p1+TUzylXUM!#w%V^?Y&cR0(;KFt?fX zA`foH4Z9new{pk1p)JuqV_Zcl->^Xl?sc#mX(vR5NoMlak5Vhe_@VgyMh(6+kKJg| zMLzl|s&Oc*e1SZZVR|HohTsk(y48YC~~J+9{{*3>!Vr5iQ~VpAu(5&6Bw z-Tm=O;LdIccS-#Cmi5OES9$I$N_UnTHHdd&c4Ld_$miOqK5ay( zZ&B^2uFa^?_#}eeu-D3ZD|`>g7ge_#cJS5Y8xkwegD{uGvKvyr4098aZFS~b$N8_q z;1Ht*;iP0YbfVPk#<=N}yt#v=9Zz2m=^Kmkv-DdXCa&zpg73CMiJ(lWFbm{FHl_5E zjRM!1@=N4Oa+s>g-Kytdp~@HTRw^sIn@`y`$61lzisgoWB{`y#$=#|(7Pn_KXZ^1q dv!1R?>yC;umm3=I56cCDDE`aFOnJ9q;}5!~m~;RD literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.lock" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.lock" new file mode 100644 index 0000000000000000000000000000000000000000..152de67daad047e68f3c83316d436dff2170c7e1 GIT binary patch literal 17 UcmZSfyRt-RQTO|c3=kj&06EA6-v9sr literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/resourceHashesCache.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/resourceHashesCache.bin" new file mode 100644 index 0000000000000000000000000000000000000000..4fca17ac8b525e9f40bde20ac81ef172fb37dd44 GIT binary patch literal 18531 zcmeI%u?m4v6ae7Mq(9|1sNZ5&in3Z1gc>ohHVf7kb!DeAFDR~hlu6}=BLHbUe zdr#*q_k8Oeg^;DsPlRtYzNLx)0RjXF5FkK+009C72oNAZfB*pk1PBoL7lCP9B*~Y_ zI^}m!TZhoA#-cRd?5gv{?3Rxw!{Yy-xMRPa&zuAZ5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfWR*Z^y4F%G3)P4PsioM23qnF+^xl>4<_#6c#o@3(GL{psY+WX%fRCV_hPO3NNBF zS$I&8$V#kS-@zcz6chxd8dOk&sFMk4U}hV89;IvOq4*EJ?d8Asd&c|QadR0)%KCYE z7>keO#U(2Q5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q7UN1d5{vvBeLQvcno%B-ITZ|Iz&_vv1w@DcS#Fp-*}~ zkEd>UBl~Y?Us2e3#PYFdQ1*{#-jSnPX~qbxdc~9cUhs{!RPI$G2(<&kjwTfnV(gM3);&j zFPCm@@wUpGF74%>(Cdj~?H8pxw0kOMem#p+CQ5JCUTM8kw57-LRX+EO_H$2GPT4bU z-O}%BudSL}<$svAS^9D9=ba6%Q{moh>HXU4zL;Zuk)V9m-MdRa~oO2 literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/file-system.probe" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/file-system.probe" new file mode 100644 index 0000000000000000000000000000000000000000..de4e227e4885cc6b43af1b199e6c686a372f1071 GIT binary patch literal 8 PcmZQzV4SA>c_9}72dx5G literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/vcs-1/gc.properties" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/vcs-1/gc.properties" new file mode 100644 index 0000000..e69de29 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/.gitignore" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/.gitignore" new file mode 100644 index 0000000..13566b8 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/.gitignore" @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/compiler.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/compiler.xml" new file mode 100644 index 0000000..71c076c --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/compiler.xml" @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" new file mode 100644 index 0000000..129443a --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" @@ -0,0 +1,17 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + + + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" new file mode 100644 index 0000000..f262d3a --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/misc.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/misc.xml" new file mode 100644 index 0000000..acdb18a --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/misc.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules.xml" new file mode 100644 index 0000000..c4ecbf2 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules.xml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules/1499227598/spring.main.iml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules/1499227598/spring.main.iml" new file mode 100644 index 0000000..a667f5f --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/modules/1499227598/spring.main.iml" @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/vcs.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/vcs.xml" new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/vcs.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/\354\210\230_\354\265\234\352\262\275\354\210\230.iml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/\354\210\230_\354\265\234\352\262\275\354\210\230.iml" new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/\354\210\230_\354\265\234\352\262\275\354\210\230.iml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/HELP.md" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/HELP.md" new file mode 100644 index 0000000..bb9a828 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/HELP.md" @@ -0,0 +1,25 @@ +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Gradle documentation](https://docs.gradle.org) +* [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/3.4.4/gradle-plugin) +* [Create an OCI image](https://docs.spring.io/spring-boot/3.4.4/gradle-plugin/packaging-oci-image.html) +* [Spring Web](https://docs.spring.io/spring-boot/3.4.4/reference/web/servlet.html) +* [Spring Data JPA](https://docs.spring.io/spring-boot/3.4.4/reference/data/sql.html#data.sql.jpa-and-spring-data) + +### Guides +The following guides illustrate how to use some features concretely: + +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/) +* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) +* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/) + +### Additional Links +These additional references should also help you: + +* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle) + diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/build.gradle" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build.gradle" new file mode 100644 index 0000000..1571e51 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build.gradle" @@ -0,0 +1,38 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.4.4' + id 'io.spring.dependency-management' version '1.1.7' +} + +group = 'umc' +version = '0.0.1-SNAPSHOT' + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { +// implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-web' + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'com.mysql:mysql-connector-j' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/build/.DS_Store" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build/.DS_Store" new file mode 100644 index 0000000000000000000000000000000000000000..4036b68310f48449988bdb2b75bf425d3b72ed73 GIT binary patch literal 6148 zcmeHK!A`?=$qN0w6qdW zM$HVFear03?&}NPWr@fQSJMGepNP6}#?B#{2IFz|nzb~-#ZKnP=#H}aY%q$`TDApD z0aM_&DZuaU0mU?@Tgvb$-rr>5skUC~8A%#NlX*J9NcZ^cZGHXzdfAjU{YKW}o_CAQ zYD|ZEGy{(Z_!6uhfm6SyY_d41DXYxu>Ac|8Fkg~xx$V!a^3#=ha5JN%x7 zUoET5?`FCFP~Cc%WoN!Jzx|n2exhF+nkBTTavEpgq$6b>rx%4z#pqU>`e=1M{gH?) z*8DLAaAvc0k33py3YY?>K%oHd4*{GpRLnif)`3Q@0Kg8yV(7~m1PnL;3>9;ah`^jL z1^QB_R}AON5f3ykRLnj4a&odV=Fyd%-cX#Zj(8yHg)S| zwaC7i0;a&fQowbhQ8dIO>DgL)I6i9w_!!Q{dAUa^L8Hg9boeMffs0`*;0`cU%snCk Pvp)hNgEgkWk1Fs9ijkF& literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/Application.class" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/Application.class" new file mode 100644 index 0000000000000000000000000000000000000000..2b43c3bd04300a640719c19c280a518a8e1a62be GIT binary patch literal 709 zcmZuvO;6iE5Ph2u9Fnwz04dP+&|Am>-?#)Kl}Mc27Lh7Fa9TT?uwd^->oxGVI8pV$ z58y{t%$i8?!InIu`Fb<+c3%JgdjW8UuT4}?^-yc0jtz#+Ex+e}%+;B`Ir|Iyz;F(z0a(EP!AxBzS@o4?AR&%+?3=d;bXhCil9x~L% zdL|gQ0;$B$ED44A?Q$8qfsS}Q?)a0b| z%xdB&=SHla;GABg&|rvf@aP`gR{?VuL2`>MpEM&~A3TFS<>3xV7Y3DVlWe~ypo<-{ zHnEF60&&GBIT+CBdV{~%{Ijli#|OF^53K@513i2q|33Y7B9>GI2e~}NXVR|i7vK#6 C*t63B literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/build/resources/main/application.yml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build/resources/main/application.yml" new file mode 100644 index 0000000..f252bf2 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build/resources/main/application.yml" @@ -0,0 +1,6 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/umc8th + username: root + password: kyungsoo1! \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/previous-compilation-data.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/previous-compilation-data.bin" new file mode 100644 index 0000000000000000000000000000000000000000..6c78202e2e87d1775c851481c74812020646535d GIT binary patch literal 24691 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%0AskX=dooCUZD%GMZ~3RszfV&u)9!9p%U2XTNI=M zKE11;E;N2#W9`{lroD6FYYM#qUMmHvDGcS7Aea+~#s%NbM5|0cr59r?C@!PWTMAMO zr*4TU~Y=rf4!UPDW$b{HB`wLptMcMLjofNYAbtNS=zf6@TqzfX+tKMOK&~)^0vl|H z^V1V6e4CDM->*nYU72ZT*G#E*@!EN;BR@ntVPM@y6*j_uT9?wiZxs4YpDU#S)V z$;64PRT+y}1F!81KU8kfTzA&bd-FNr^`8{_#o+|p5D?M+dh+_FTQ0*U{akcaqq~(t zZ4_#!kkW4o^Kme=vVf`&Xk&PEeCnfq3zr9{`F;!b_4U&-4I$aR7HYoE&nKt&58D%{ z@o;xQ2c^+TsdZ6n6x|f&YXLPSaO5C6W7VtCj=v86uF`kGp3P`Av9r?co{G+Ov!yfB+I$~2^ zobvR~eiIzFUi<9MM;?5LypHq11#kqcqf2)SPumCVzd81(WzzB%O;5g#7hkoGr0(PF z@Mp~HqHT|#Us|q`+!Wh**PFk}hp+0(SDXKyqWoZCsi`4UuvkNh^45$?w{mI+Yfc@a z@@CWtzTQdxsz3-C?CRGlO(GRQx38`RD=%#6@@jN{3?h$n3tBmDws* zn=i)gs@kylP6^Idi{_HE+EmUP*}Y!izVgegaK2syfAuB4ZUr7mUgm?E;VjQnlC|C~ z9F!3B>|s|_$*hILUz$hq(QVMt+V`&R+3ALzxA%BMx{)mhuJBP5AJV_TMn%dw%WfrH z#A9#wdvmV9d&yP4UITs&NN#Uq1MV<8J?yTVZjr>uG`yc;=jfJE(R_5B56UfukGb1G z${lR;yvI)Y*Xcw*KmRLJ&RDg@@(tqns_}gN8+`o)J|r=yn=l=SkHX&e79gpR+ER&d zh2lE5du$^QSJ@ffpKDx(8nwhY)#jJ%;hMc^$rE-#o z{iS=qAFtaqzoTCkUpJd?ki%EK&)=NOH+aC;Psa23m@m|~Krjz*K`5A1z!k!4Pj9|u4ChSH($x_ePrzu{@VNGQ&_;}PikkSPHsSt=8ozhgD!_TOO{_Q z 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 ZJ&m)A@sVe7UoGx)T+hde7*O%W=QoZoie~@- literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/delete.txt" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/delete.txt" deleted file mode 100644 index 12cf216..0000000 --- "a/\354\210\230_\354\265\234\352\262\275\354\210\230/delete.txt" +++ /dev/null @@ -1 +0,0 @@ -나중에 삭제해주시면 됩니당! diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.jar" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..9bbc975c742b298b441bfb90dbc124400a3751b9 GIT binary patch literal 43705 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 DHx0+F literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.properties" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.properties" new file mode 100644 index 0000000..37f853b --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradle/wrapper/gradle-wrapper.properties" @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew" new file mode 100755 index 0000000..faf9300 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew" @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +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=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +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 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" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew.bat" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew.bat" new file mode 100644 index 0000000..9d21a21 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/gradlew.bat" @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/settings.gradle" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/settings.gradle" new file mode 100644 index 0000000..ebf1ef8 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/settings.gradle" @@ -0,0 +1 @@ +rootProject.name = 'spring' diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/src/.DS_Store" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/.DS_Store" new file mode 100644 index 0000000000000000000000000000000000000000..5017f0f76db2eede1aaba0bbe0d7ffd983f26f7d GIT binary patch literal 6148 zcmeHKJ5B>J5S@W7R-#D>ov)A^m}ogcIw}Z3fRrVX2>lk6oC7X`XlXbDN1*1-hp-ka zN`%6UWIyjbk7xHq@z_MfliT^2XhcLcnjp(yz{EXB?f7INS=LxwjHhSIb~UibUv*19JBNh=p+G1Q3jA{gP_xDAJ;Ufjflwe6*eD?TLqZeGj-8=y z9q9B50Ic9v!&uLlz$6Y}cI*t{fw6@GEtLI=!4?jG@_E^@GqiAG&5U(C^XKJ-{e;U& zrxRzx=tF@}pj2Sj9!FCDkMLI-yyTZ5@e~S#0$Zj4SIxAU;G?{@e)~MBwF&J6O-$x> qGJs*Mr5LEC7!R_K>?>(}k}>$~*cr+y;@5Cs90XL5=t6;CP~ZdAvPK~Q literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/.DS_Store" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/.DS_Store" new file mode 100644 index 0000000000000000000000000000000000000000..f499090afed5eeef7fd850ab088497e4f73f2748 GIT binary patch literal 6148 zcmeHKJ5Iwu5SiARD{>YyCq(&EKz!`7`4v_)$Y?0xyp^wghGvEyD z7?AHnfC`og8$4I z-5KkoojILQSa*j#XgG0c=%X{>4CD+P+2vUJ|Hbd;|2)aBoB?OxpcvqynpIQWQtGXp vo0DD}pjS{4iE9jZDVS(0My#~r6Q~O8K_(D_Vw literal 0 HcmV?d00001 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/Application.java" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/Application.java" new file mode 100644 index 0000000..ff807df --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/Application.java" @@ -0,0 +1,13 @@ +package umc.spring; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/resources/application.yml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/resources/application.yml" new file mode 100644 index 0000000..f252bf2 --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/resources/application.yml" @@ -0,0 +1,6 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/umc8th + username: root + password: kyungsoo1! \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/src/test/java/umc/spring/ApplicationTests.java" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/test/java/umc/spring/ApplicationTests.java" new file mode 100644 index 0000000..dc36e6c --- /dev/null +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/src/test/java/umc/spring/ApplicationTests.java" @@ -0,0 +1,13 @@ +package umc.spring; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ApplicationTests { + + @Test + void contextLoads() { + } + +} From 5b19fb2ec2def6698523d51fc88d1c5309289a0f Mon Sep 17 00:00:00 2001 From: choikyungsoo Date: Wed, 30 Apr 2025 18:54:34 +0900 Subject: [PATCH 02/12] =?UTF-8?q?FEAT=20:=205=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=EB=B6=81=20=EB=82=B4=EC=9A=A9=20entity=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 --- .../executionHistory/executionHistory.bin" | Bin 36157 -> 83319 bytes .../executionHistory/executionHistory.lock" | Bin 17 -> 17 bytes .../.gradle/8.13/fileHashes/fileHashes.bin" | Bin 19247 -> 21247 bytes .../.gradle/8.13/fileHashes/fileHashes.lock" | Bin 17 -> 17 bytes .../8.13/fileHashes/resourceHashesCache.bin" | Bin 18531 -> 19245 bytes .../buildOutputCleanup.lock" | Bin 17 -> 17 bytes .../.gradle/file-system.probe" | Bin 8 -> 8 bytes .../.idea/dataSources.xml" | 12 + .../.idea/gradle.xml" | 1 + .../.idea/misc.xml" | 3 + .../build.gradle" | 2 +- .../java/main/umc/spring/Application.class" | Bin 709 -> 782 bytes .../FoodCategory$FoodCategoryBuilder.class" | Bin 0 -> 1771 bytes .../umc/spring/domain/FoodCategory.class" | Bin 0 -> 1336 bytes .../spring/domain/Member$MemberBuilder.class" | Bin 0 -> 5572 bytes .../java/main/umc/spring/domain/Member.class" | Bin 0 -> 5449 bytes .../domain/Mission$MissionBuilder.class" | Bin 0 -> 3114 bytes .../main/umc/spring/domain/Mission.class" | Bin 0 -> 2867 bytes .../spring/domain/Region$RegionBuilder.class" | Bin 0 -> 1687 bytes .../java/main/umc/spring/domain/Region.class" | Bin 0 -> 1288 bytes .../spring/domain/Review$ReviewBuilder.class" | Bin 0 -> 2261 bytes .../java/main/umc/spring/domain/Review.class" | Bin 0 -> 1805 bytes .../spring/domain/Store$StoreBuilder.class" | Bin 0 -> 2129 bytes .../java/main/umc/spring/domain/Store.class" | Bin 0 -> 1620 bytes .../spring/domain/Terms$TermsBuilder.class" | Bin 0 -> 2651 bytes .../java/main/umc/spring/domain/Terms.class" | Bin 0 -> 2365 bytes .../spring/domain/common/BaseEntity.class" | Bin 0 -> 995 bytes .../umc/spring/domain/enums/Gender.class" | Bin 0 -> 1123 bytes .../spring/domain/enums/MemberStatus.class" | Bin 0 -> 1169 bytes .../spring/domain/enums/MissionStatus.class" | Bin 0 -> 1181 bytes .../umc/spring/domain/enums/SocialType.class" | Bin 0 -> 1249 bytes .../MemberAgree$MemberAgreeBuilder.class" | Bin 0 -> 2158 bytes .../spring/domain/mapping/MemberAgree.class" | Bin 0 -> 1804 bytes .../MemberMission$MemberMissionBuilder.class" | Bin 0 -> 2581 bytes .../domain/mapping/MemberMission.class" | Bin 0 -> 2130 bytes .../MemberPrefer$MemberPreferBuilder.class" | Bin 0 -> 2216 bytes .../spring/domain/mapping/MemberPrefer.class" | Bin 0 -> 1850 bytes .../reports/problems/problems-report.html" | 663 ++++++++++++++++++ .../build/resources/main/application.yml" | 15 +- .../Member$MemberBuilder.class.uniqueId11" | Bin 0 -> 5572 bytes .../stash-dir/Member.class.uniqueId10" | Bin 0 -> 5449 bytes ...rAgree$MemberAgreeBuilder.class.uniqueId0" | Bin 0 -> 2158 bytes .../stash-dir/MemberAgree.class.uniqueId5" | Bin 0 -> 1804 bytes ...sion$MemberMissionBuilder.class.uniqueId9" | Bin 0 -> 2248 bytes .../stash-dir/MemberMission.class.uniqueId8" | Bin 0 -> 1873 bytes ...refer$MemberPreferBuilder.class.uniqueId7" | Bin 0 -> 2216 bytes .../stash-dir/MemberPrefer.class.uniqueId2" | Bin 0 -> 1850 bytes .../Mission$MissionBuilder.class.uniqueId3" | Bin 0 -> 3421 bytes .../stash-dir/Mission.class.uniqueId12" | Bin 0 -> 3144 bytes .../Review$ReviewBuilder.class.uniqueId13" | Bin 0 -> 2261 bytes .../stash-dir/Review.class.uniqueId1" | Bin 0 -> 1805 bytes .../Terms$TermsBuilder.class.uniqueId6" | Bin 0 -> 2651 bytes .../stash-dir/Terms.class.uniqueId4" | Bin 0 -> 2365 bytes .../previous-compilation-data.bin" | Bin 24691 -> 35968 bytes .../main/java/umc/spring/Application.java" | 2 + .../java/umc/spring/domain/FoodCategory.java" | 20 + .../main/java/umc/spring/domain/Member.java" | 65 ++ .../main/java/umc/spring/domain/Mission.java" | 35 + .../main/java/umc/spring/domain/Region.java" | 18 + .../main/java/umc/spring/domain/Review.java" | 24 + .../main/java/umc/spring/domain/Store.java" | 22 + .../main/java/umc/spring/domain/Terms.java" | 29 + .../umc/spring/domain/common/BaseEntity.java" | 22 + .../java/umc/spring/domain/enums/Gender.java" | 5 + .../spring/domain/enums/MemberStatus.java" | 5 + .../spring/domain/enums/MissionStatus.java" | 5 + .../umc/spring/domain/enums/SocialType.java" | 5 + .../spring/domain/mapping/MemberAgree.java" | 27 + .../spring/domain/mapping/MemberMission.java" | 30 + .../spring/domain/mapping/MemberPrefer.java" | 27 + .../src/main/resources/application.yml" | 15 +- 71 files changed, 1049 insertions(+), 3 deletions(-) create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/FoodCategory$FoodCategoryBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/FoodCategory.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Member$MemberBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Member.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Mission$MissionBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Mission.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Region$RegionBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Region.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Review$ReviewBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Review.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Store$StoreBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Store.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Terms$TermsBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/Terms.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/common/BaseEntity.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/enums/Gender.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/enums/MemberStatus.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/enums/MissionStatus.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/enums/SocialType.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/mapping/MemberAgree$MemberAgreeBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/mapping/MemberAgree.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/mapping/MemberMission$MemberMissionBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/mapping/MemberMission.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/mapping/MemberPrefer$MemberPreferBuilder.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/classes/java/main/umc/spring/domain/mapping/MemberPrefer.class" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/reports/problems/problems-report.html" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Member$MemberBuilder.class.uniqueId11" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Member.class.uniqueId10" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/MemberAgree$MemberAgreeBuilder.class.uniqueId0" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/MemberAgree.class.uniqueId5" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/MemberMission$MemberMissionBuilder.class.uniqueId9" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/MemberMission.class.uniqueId8" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/MemberPrefer$MemberPreferBuilder.class.uniqueId7" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/MemberPrefer.class.uniqueId2" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Mission$MissionBuilder.class.uniqueId3" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Mission.class.uniqueId12" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Review$ReviewBuilder.class.uniqueId13" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Review.class.uniqueId1" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Terms$TermsBuilder.class.uniqueId6" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/build/tmp/compileJava/compileTransaction/stash-dir/Terms.class.uniqueId4" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/FoodCategory.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/Member.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/Mission.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/Region.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/Review.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/Store.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/Terms.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/common/BaseEntity.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/enums/Gender.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/enums/MemberStatus.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/enums/MissionStatus.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/enums/SocialType.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/mapping/MemberAgree.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/mapping/MemberMission.java" create mode 100644 "\354\210\230_\354\265\234\352\262\275\354\210\230/src/main/java/umc/spring/domain/mapping/MemberPrefer.java" diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.bin" index aeefffff4b34fd8415a6d2b346a1fc80c68329fc..9d742bbe4ddb114c4e8afd562731854261b97450 100644 GIT binary patch delta 10263 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 diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.lock" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/executionHistory/executionHistory.lock" index e9cf399bf4afb1c4ea86e2029fe37d09f3954b7b..9e0c31c67e8017bc412909eff2ee9131748d7ffb 100644 GIT binary patch literal 17 UcmZQ}w>T~NS7vGk0|ZC_04n_hl>h($ literal 17 UcmZQ}w>T~NS7vGk0|c-D04nJNfdBvi diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.bin" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/8.13/fileHashes/fileHashes.bin" index 2c45b89c6a34583eb517e0c47be0f224b828530b..8d37517ddebe7744d5d003ac0a895480ed361528 100644 GIT binary patch literal 21247 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 delta 339 zcmeyrlyUtu#tkMCg8YrgkIt^0!0p2T23~(B_ev;CJ}MzGSyfVE@>wAM3&gHc5|j4= z@lk1m$)Pe5lUsp!D-b`GG2rs}eb^1oK&=pd#B|D0{BuVonWS66FIA!L` z%8*(krY4;jMK^UwLXJr&n{WAYakqQFncn|^+3U8e&z|?%`|cjsZ|!_IPRRdBZrq>S zpg)(mf&c^{009U<00Izz00bZa0SG_<0uX=z1Rwwb2teR}5m;<`Bes?|BOGgGzUZIG zapQTWi@|Bj9(CN43u`S82b`k+KT!4Q?XY$6hHOjsUr2kgN44ukt@I_?52yV~NXqR@ zt$qO6D`>CLh_A2Wv^uh%MSK1JxDbsr`w`jqqy2f8F{HCDwUqQ6+70tvk4Xl7bhdQA zG}^7N6^LAxj%gz2-=y8Pw1vl)DK3$7zSC|WmlfG3bE-AzWwejbjmtP6eRLN&{|)U< z3salUl_Z9f^LPC2itQ=aT$jxy{Wa|_-toKbPUy4AM|m#T_* zQLAL+_4|3z9@s2wEnHJI-m>>wN&A8-#}nIpZyL$@9<;CQ!82%8XH=FR5JmesNw6|V z-X$jI6wsb@=7*EJ@yip^Z_!SFbDWjL@)&+X00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX?}za}ur^nygDyS@3&udRvC z`D%N=(PQHcUFTJs8Kx-yd+{RDxVqg}9IcE!&?{y|dndc7aGE1d*6lL5`J^l_XgeFh zF5HvyYZIzJtIHqv?XnyG+Wb9%?$4sEl!raD7kv{RSshhW>&`9?k6x=u<2UK`BSz*% zs3Z2V3+uas(;LFa4Y_b=w?b)iN6#*5G@gYHK~Lv|m5wT#(5a|r7csg;%J#g%$-Yj! z&8ZEJ0(Mbe?;=|A>cL&3v-hj_2S)d27bk-&1&X}m3m!-mnwI?H26nMV_-;dho9z^d zz<&OPO*=E$McrPvqwC)!r>~n{^T}?APRcF}8MmSvb3z)_Q*1iU$-?%qi|LhtGI>U9 z?2_V^F;nNp^kf&ClS{H^*6AHWV`t~)d)_e(x_>S&4J*PGxz*<#;@5xNuiH|^E|L$o ze%Kr4^R}eIu}+{3p2#ke4#vr{{P`KjgA?0qMz+pl7eQsy)LwSZs#6_;eYe%EL)k^b r&?3W)1o^{?30J)MU8l|85b5?8)YiQHa-Qc!PS7lhw2G4sG%tPueDdQi delta 62 zcmZ2Gjq&jW#tkMCs*J8Z>v$4VB5pH)frsONGyoLV+^G0Ne51ij@refPlN~*j0Esdk A$N&HU diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/buildOutputCleanup/buildOutputCleanup.lock" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/buildOutputCleanup/buildOutputCleanup.lock" index e710b9acd6d2a60ae80c7ac6ea217e178c3e2569..040522236e8813bdf0957919e6675df03fa0d171 100644 GIT binary patch literal 17 TcmZS1jkEaKw9~_o0Rln*FEa!P literal 17 TcmZS1jkEaKw9~_o0Rof(F9HMC diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/file-system.probe" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.gradle/file-system.probe" index de4e227e4885cc6b43af1b199e6c686a372f1071..0253d243a915f005b18618c179b338fc93234bc0 100644 GIT binary patch literal 8 PcmZQzV4T(_zDFMb2LJ*f literal 8 PcmZQzV4SA>c_9}72dx5G diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" index 129443a..b409643 100644 --- "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/dataSources.xml" @@ -13,5 +13,17 @@ $ProjectFileDir$ + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306/umc8th + + + + + + $ProjectFileDir$ + \ No newline at end of file diff --git "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" index f262d3a..9caef3e 100644 --- "a/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" +++ "b/\354\210\230_\354\265\234\352\262\275\354\210\230/.idea/gradle.xml" @@ -1,5 +1,6 @@ + + {} + { + "isMigrated": true +} { "associatedIndex": 7 } @@ -47,13 +52,21 @@ "node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)", "nodejs_package_manager_path": "npm", + "project.structure.last.edited": "Modules", + "project.structure.proportion": "0.0", + "project.structure.side.proportion": "0.0", "vue.rearranger.settings.migration": "true" + }, + "keyToStringList": { + "DatabaseDriversLRU": [ + "mysql" + ] } } - diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/build.gradle" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/build.gradle" index 1a2b46d..74ff360 100644 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/build.gradle" +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/build.gradle" @@ -13,12 +13,6 @@ java { } } -configurations { - compileOnly { - extendsFrom annotationProcessor - } -} - repositories { mavenCentral() } @@ -26,13 +20,37 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' + + // ✅ QueryDSL + implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' + annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' + annotationProcessor 'jakarta.annotation:jakarta.annotation-api' + annotationProcessor 'jakarta.persistence:jakarta.persistence-api' + compileOnly 'org.projectlombok:lombok' - runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' + + runtimeOnly 'com.mysql:mysql-connector-j' + testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } +// ✅ Q파일 생성 위치 설정 +def querydslDir = "$buildDir/generated/querydsl" + +sourceSets { + main { + java { + srcDirs += [querydslDir] + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir) +} + tasks.named('test') { useJUnitPlatform() } diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/spring/Application.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/spring/Application.java" deleted file mode 100644 index 1712ec5..0000000 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/spring/Application.java" +++ /dev/null @@ -1,15 +0,0 @@ -package umc.spring; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; - -@SpringBootApplication -@EnableJpaAuditing -public class Application { - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } - -} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/Application.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/Application.java" new file mode 100644 index 0000000..1d813c0 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/Application.java" @@ -0,0 +1,39 @@ +package umc.study; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import umc.study.service.store.StoreQueryService; + +@SpringBootApplication +@EnableJpaAuditing +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Bean + public CommandLineRunner run(ApplicationContext context) { + return args -> { + StoreQueryService storeService = context.getBean(StoreQueryService.class); + + // 파라미터 값 설정 + String name = "요아정"; + Float score = 4.0f; + + // 쿼리 메서드 호출 및 쿼리 문자열과 파라미터 출력 + System.out.println("Executing findStoresByNameAndScore with parameters:"); + System.out.println("Name: " + name); + System.out.println("Score: " + score); + + storeService.findStoresByNameAndScore(name, score) + .forEach(System.out::println); + }; + } + + +} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/config/QueryDSLConfig.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/config/QueryDSLConfig.java" new file mode 100644 index 0000000..c0ec3bb --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/config/QueryDSLConfig.java" @@ -0,0 +1,19 @@ +package umc.study.config; + +import com.querydsl.jpa.impl.JPAQueryFactory; +import jakarta.persistence.EntityManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import lombok.RequiredArgsConstructor; + +@Configuration +@RequiredArgsConstructor +public class QueryDSLConfig { + + private final EntityManager entityManager; + + @Bean + public JPAQueryFactory jpaQueryFactory() { + return new JPAQueryFactory(entityManager); + } +} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/mapping/Quest.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Quest.java" similarity index 62% rename from "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/mapping/Quest.java" rename to "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Quest.java" index bf8e71f..29ebf5e 100644 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/mapping/Quest.java" +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Quest.java" @@ -1,25 +1,20 @@ -package umc.study.domain.mapping; +package umc.study.domain; import jakarta.persistence.*; import lombok.*; -import umc.study.domain.Customer; -import umc.study.domain.Mission; +import umc.study.domain.common.BaseEntity; @Entity @Getter @Builder @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor -public class Quest { +public class Quest extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - private Integer amount; - - private Boolean isComplete; - @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "customer_id") private Customer customer; @@ -27,4 +22,12 @@ public class Quest { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "mission_id") private Mission mission; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "store_id") + private Store store; + + private int amount; + + private boolean isComplete; } diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Store.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Store.java" index ea35de7..cc414eb 100644 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Store.java" +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Store.java" @@ -24,6 +24,17 @@ public class Store extends BaseEntity { private String image; + private float score; + @Column(nullable = false, length = 100) private String description; + + @Override + public String toString() { + return "Store{" + + "id=" + id + + ", name='" + name + '\'' + + ", score=" + score + + '}'; + } } \ No newline at end of file diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepository.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepository.java" new file mode 100644 index 0000000..e638eb7 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepository.java" @@ -0,0 +1,7 @@ +package umc.study.repository.quest; + +import org.springframework.data.jpa.repository.JpaRepository; +import umc.study.domain.Quest; + +public interface QuestRepository extends JpaRepository, QuestRepositoryCustom { +} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryCustom.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryCustom.java" new file mode 100644 index 0000000..20527d8 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryCustom.java" @@ -0,0 +1,19 @@ +package umc.study.repository.quest; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import umc.study.domain.Quest; +import umc.study.web.dto.MissionResponse; + +public interface QuestRepositoryCustom { + + /** + * 내가 진행중인 미션 조회 (isComplete = false) + */ + Page findInProgressQuests(Long customerId, Pageable pageable); + + /** + * 내가 완료한 미션 조회 (isComplete = true) + */ + Page findCompletedQuests(Long customerId, Pageable pageable); +} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryImpl.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryImpl.java" new file mode 100644 index 0000000..01fd9f3 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryImpl.java" @@ -0,0 +1,95 @@ +package umc.study.repository.quest; + +import com.querydsl.core.types.Projections; +import com.querydsl.jpa.impl.JPAQueryFactory; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import umc.study.domain.QMission; +import umc.study.domain.QQuest; +import umc.study.domain.QStore; +import umc.study.domain.Quest; +import umc.study.web.dto.MissionResponse; + +import java.util.List; + +@RequiredArgsConstructor +public class QuestRepositoryImpl implements QuestRepositoryCustom { + + private final JPAQueryFactory queryFactory; + + @Override + public Page findInProgressQuests(Long customerId, Pageable pageable) { + QQuest quest = QQuest.quest; + QMission mission = QMission.mission; + QStore store = QStore.store; + + List results = queryFactory + .select(Projections.constructor(MissionResponse.class, + mission.id, + store.name, + mission.amount, + quest.isComplete, + mission.createdAt + )) + .from(quest) + .join(quest.mission, mission) + .join(quest.store, store) + .where( + quest.customer.id.eq(customerId), + quest.isComplete.isFalse() + ) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) + .fetch(); + + long total = queryFactory + .select(quest.count()) + .from(quest) + .where( + quest.customer.id.eq(customerId), + quest.isComplete.isFalse() + ) + .fetchOne(); + + return new PageImpl<>(results, pageable, total); + } + + + @Override + public Page findCompletedQuests(Long customerId, Pageable pageable) { + QQuest quest = QQuest.quest; + QMission mission = QMission.mission; + QStore store = QStore.store; + + List content = queryFactory + .select(Projections.constructor(MissionResponse.class, + mission.id, + mission.amount, + store.name, + store.description, + quest.isComplete)) + .from(quest) + .join(quest.mission, mission) + .join(quest.store, store) + .where( + quest.customer.id.eq(customerId), + quest.isComplete.eq(true) + ) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) + .fetch(); + + Long count = queryFactory + .select(quest.count()) + .from(quest) + .where( + quest.customer.id.eq(customerId), + quest.isComplete.eq(true) + ) + .fetchOne(); + + return new PageImpl<>(content, pageable, count); + } +} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepository.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepository.java" new file mode 100644 index 0000000..5b59935 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepository.java" @@ -0,0 +1,8 @@ +package umc.study.repository.store; + +import org.springframework.data.jpa.repository.JpaRepository; +import umc.study.domain.Store; +import umc.study.repository.store.StoreRepositoryCustom; + +public interface StoreRepository extends JpaRepository, StoreRepositoryCustom { +} \ No newline at end of file diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryCustom.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryCustom.java" new file mode 100644 index 0000000..e7f895a --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryCustom.java" @@ -0,0 +1,8 @@ +package umc.study.repository.store; + +import umc.study.domain.Store; +import java.util.List; + +public interface StoreRepositoryCustom { + List dynamicQueryWithBooleanBuilder(String name, Float score); +} \ No newline at end of file diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryImpl.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryImpl.java" new file mode 100644 index 0000000..f4c915d --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryImpl.java" @@ -0,0 +1,35 @@ +package umc.study.repository.store; + +import com.querydsl.core.BooleanBuilder; +import com.querydsl.jpa.impl.JPAQueryFactory; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; +import umc.study.domain.QStore; +import umc.study.domain.Store; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class StoreRepositoryImpl implements StoreRepositoryCustom{ + private final JPAQueryFactory jpaQueryFactory; + private final QStore store = QStore.store; + + @Override + public List dynamicQueryWithBooleanBuilder(String name, Float score) { + BooleanBuilder predicate = new BooleanBuilder(); + + if (name != null) { + predicate.and(store.name.eq(name)); + } + + if (score != null) { + predicate.and(store.score.goe(4.0f)); + } + + return jpaQueryFactory + .selectFrom(store) + .where(predicate) + .fetch(); + } +} \ No newline at end of file diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/quest/QuestQueryService.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/quest/QuestQueryService.java" new file mode 100644 index 0000000..95bc096 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/quest/QuestQueryService.java" @@ -0,0 +1,25 @@ +package umc.study.service.quest; + +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import umc.study.repository.quest.QuestRepository; +import umc.study.web.dto.MissionResponse; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class QuestQueryService { + + private final QuestRepository questRepository; + + public Page getInProgressMissions(Long customerId, Pageable pageable) { + return questRepository.findInProgressQuests(customerId, pageable); + } + + public Page getCompletedMissions(Long customerId, Pageable pageable) { + return questRepository.findCompletedQuests(customerId, pageable); + } +} diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryService.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryService.java" new file mode 100644 index 0000000..4be4680 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryService.java" @@ -0,0 +1,12 @@ +package umc.study.service.store; + +import umc.study.domain.Store; + +import java.util.List; +import java.util.Optional; + +public interface StoreQueryService { + + Optional findStore(Long id); + List findStoresByNameAndScore(String name, Float score); +} \ No newline at end of file diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryServiceImpl.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryServiceImpl.java" new file mode 100644 index 0000000..fc31cfc --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryServiceImpl.java" @@ -0,0 +1,35 @@ +package umc.study.service.store; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import umc.study.domain.Store; +import umc.study.repository.store.StoreRepository; + +import java.util.List; +import java.util.Optional; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class StoreQueryServiceImpl implements StoreQueryService{ + + private final StoreRepository storeRepository; + + @Override + public Optional findStore(Long id) { + return storeRepository.findById(id); + } + + @Override + public List findStoresByNameAndScore(String name, Float score) { + List filteredStores = storeRepository.dynamicQueryWithBooleanBuilder(name, score); + + System.out.println("=== 최종 Store 개수: " + filteredStores.size()); + + filteredStores.forEach(store -> System.out.println("Store: " + store)); + + + return filteredStores; + } +} \ No newline at end of file diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/web/dto/MissionResponse.java" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/web/dto/MissionResponse.java" new file mode 100644 index 0000000..3d38719 --- /dev/null +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/web/dto/MissionResponse.java" @@ -0,0 +1,13 @@ +package umc.study.web.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class MissionResponse { + private Long missionId; + private String storeName; + private Integer rewardAmount; + private Boolean isComplete; +} From b38512b57b8dbd746cf08774c4bf4daa8d3df724 Mon Sep 17 00:00:00 2001 From: L3416yst Date: Mon, 12 May 2025 15:03:21 +0900 Subject: [PATCH 12/12] =?UTF-8?q?6=EC=A3=BC=EC=B0=A8=5F=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/.gitattributes" | 3 - .../spring/.gitignore" | 2 - .../spring/.idea/workspace.xml" | 72 ++++++------- .../spring/build.gradle" | 37 +------ .../spring/gradle/wrapper/gradle-wrapper.jar" | Bin 43705 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties" | 2 +- .../spring/gradlew" | 6 +- .../spring/gradlew.bat" | 2 - .../main/java/hello/spring/Application.java" | 13 +++ .../src/main/java/umc/study/Application.java" | 39 ------- .../umc/study/config/QueryDSLConfig.java" | 19 ---- .../java/umc/study/domain/Categories.java" | 20 ---- .../main/java/umc/study/domain/Customer.java" | 42 -------- .../main/java/umc/study/domain/Mission.java" | 23 ----- .../main/java/umc/study/domain/Quest.java" | 33 ------ .../main/java/umc/study/domain/Store.java" | 40 -------- .../umc/study/domain/common/BaseEntity.java" | 22 ---- .../java/umc/study/domain/enums/Gender.java" | 5 - .../umc/study/domain/enums/MemberStatus.java" | 5 - .../umc/study/domain/mapping/Favorite.java" | 22 ---- .../repository/quest/QuestRepository.java" | 7 -- .../quest/QuestRepositoryCustom.java" | 19 ---- .../quest/QuestRepositoryImpl.java" | 95 ------------------ .../repository/store/StoreRepository.java" | 8 -- .../store/StoreRepositoryCustom.java" | 8 -- .../store/StoreRepositoryImpl.java" | 35 ------- .../service/quest/QuestQueryService.java" | 25 ----- .../service/store/StoreQueryService.java" | 12 --- .../service/store/StoreQueryServiceImpl.java" | 35 ------- .../umc/study/web/dto/MissionResponse.java" | 13 --- .../main/resources/application.properties" | 1 + .../src/main/resources/application.yml" | 19 ---- .../java/hello/spring/ApplicationTests.java" | 2 +- 33 files changed, 53 insertions(+), 633 deletions(-) delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitattributes" create mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/hello/spring/Application.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/Application.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/config/QueryDSLConfig.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Categories.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Customer.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Mission.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Quest.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/Store.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/common/BaseEntity.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/enums/Gender.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/enums/MemberStatus.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/domain/mapping/Favorite.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepository.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryCustom.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/quest/QuestRepositoryImpl.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepository.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryCustom.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/repository/store/StoreRepositoryImpl.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/quest/QuestQueryService.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryService.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/service/store/StoreQueryServiceImpl.java" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/java/umc/study/web/dto/MissionResponse.java" create mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/resources/application.properties" delete mode 100644 "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/main/resources/application.yml" rename "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/test/java/umc/spring/ApplicationTests.java" => "\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/src/test/java/hello/spring/ApplicationTests.java" (88%) diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitattributes" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitattributes" deleted file mode 100644 index 8af972c..0000000 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitattributes" +++ /dev/null @@ -1,3 +0,0 @@ -/gradlew text eol=lf -*.bat text eol=crlf -*.jar binary diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitignore" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitignore" index 2d0d3b7..c2065bc 100644 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitignore" +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.gitignore" @@ -35,5 +35,3 @@ out/ ### VS Code ### .vscode/ -/build/ -/src/main/generated/ diff --git "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.idea/workspace.xml" "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.idea/workspace.xml" index b9b9f06..f771b90 100644 --- "a/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.idea/workspace.xml" +++ "b/\354\230\210\354\212\254_\354\235\264\354\234\244\354\204\234/spring/.idea/workspace.xml" @@ -4,7 +4,7 @@