diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..e69de29
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10/checksums/checksums.lock b/.gradle/8.10/checksums/checksums.lock
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10/dependencies-accessors/gc.properties b/.gradle/8.10/dependencies-accessors/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10/executionHistory/executionHistory.lock b/.gradle/8.10/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10/fileChanges/last-build.bin b/.gradle/8.10/fileChanges/last-build.bin
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10/fileHashes/fileHashes.lock b/.gradle/8.10/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10/gc.properties b/.gradle/8.10/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.13/checksums/checksums.lock b/.gradle/8.13/checksums/checksums.lock
new file mode 100644
index 0000000..e3b28a8
Binary files /dev/null and b/.gradle/8.13/checksums/checksums.lock differ
diff --git a/.gradle/8.13/executionHistory/executionHistory.bin b/.gradle/8.13/executionHistory/executionHistory.bin
new file mode 100644
index 0000000..840bdb5
Binary files /dev/null and b/.gradle/8.13/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.13/executionHistory/executionHistory.lock b/.gradle/8.13/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..fa6b080
Binary files /dev/null and b/.gradle/8.13/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.13/fileChanges/last-build.bin b/.gradle/8.13/fileChanges/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/.gradle/8.13/fileChanges/last-build.bin differ
diff --git a/.gradle/8.13/fileHashes/fileHashes.bin b/.gradle/8.13/fileHashes/fileHashes.bin
new file mode 100644
index 0000000..c459486
Binary files /dev/null and b/.gradle/8.13/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.13/fileHashes/fileHashes.lock b/.gradle/8.13/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..e7205c8
Binary files /dev/null and b/.gradle/8.13/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.13/fileHashes/resourceHashesCache.bin b/.gradle/8.13/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000..7937a98
Binary files /dev/null and b/.gradle/8.13/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/8.13/gc.properties b/.gradle/8.13/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000..7de669a
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..7cbc510
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Mon May 26 16:23:13 KST 2025
+gradle.version=8.13
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000..b5e9e76
Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
new file mode 100644
index 0000000..6e23814
Binary files /dev/null and b/.gradle/file-system.probe differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..c3f502a
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 디폴트 무시된 파일
+/shelf/
+/workspace.xml
+# 에디터 기반 HTTP 클라이언트 요청
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..b453fa5
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..bc16866
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306
+
+
+
+
+
+ $ProjectFileDir$
+
+
+ mysql.8
+ true
+ true
+ $PROJECT_DIR$/src/main/resources/application.yml
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306/study
+
+
+
+
+
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..4568975
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..c049206
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..69a5b1e
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/spring.main.iml b/.idea/modules/spring.main.iml
new file mode 100644
index 0000000..afc1871
--- /dev/null
+++ b/.idea/modules/spring.main.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HELP.md b/HELP.md
new file mode 100644
index 0000000..ec679ff
--- /dev/null
+++ b/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.3.11/gradle-plugin)
+* [Create an OCI image](https://docs.spring.io/spring-boot/3.3.11/gradle-plugin/packaging-oci-image.html)
+* [Spring Web](https://docs.spring.io/spring-boot/3.3.11/reference/web/servlet.html)
+* [Spring Data JPA](https://docs.spring.io/spring-boot/3.3.11/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/build.gradle b/build.gradle
new file mode 100644
index 0000000..65c91ad
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,64 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot' version '3.3.11'
+ id 'io.spring.dependency-management' version '1.1.7'
+}
+
+group = 'com.example'
+version = '0.0.1-SNAPSHOT'
+sourceCompatibility = '17'
+
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(17)
+ }
+}
+
+configurations {
+ compileOnly {
+ extendsFrom annotationProcessor
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ // Spring Boot
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+ implementation 'org.springframework.boot:spring-boot-starter-web'
+ implementation 'org.springframework.boot:spring-boot-starter-validation'
+ implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final' // 명시적 추가
+ implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
+ implementation 'org.springframework.boot:spring-boot-starter-validation'
+
+ // Lombok
+ compileOnly 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok'
+
+ // MySQL
+ runtimeOnly 'com.mysql:mysql-connector-j'
+
+ // QueryDSL (jakarta 버전, Hibernate 6 이상 호환)
+ 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'
+
+ // 테스트
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
+ testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
+}
+
+sourceSets {
+ main {
+ java {
+ srcDirs = ['src/main/java', 'src/main/resources']
+ }
+ }
+}
+
+tasks.named('test') {
+ useJUnitPlatform()
+}
\ No newline at end of file
diff --git a/build/classes/java/main/com/example/Application.class b/build/classes/java/main/com/example/Application.class
new file mode 100644
index 0000000..1ab5228
Binary files /dev/null and b/build/classes/java/main/com/example/Application.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/ApiResponse.class b/build/classes/java/main/com/example/apiPayload/ApiResponse.class
new file mode 100644
index 0000000..a31212c
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/ApiResponse.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/BaseCode.class b/build/classes/java/main/com/example/apiPayload/BaseCode.class
new file mode 100644
index 0000000..8e7edbf
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/BaseCode.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/BaseErrorCode.class b/build/classes/java/main/com/example/apiPayload/BaseErrorCode.class
new file mode 100644
index 0000000..368856a
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/BaseErrorCode.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/ErrorReasonDTO$ErrorReasonDTOBuilder.class b/build/classes/java/main/com/example/apiPayload/ErrorReasonDTO$ErrorReasonDTOBuilder.class
new file mode 100644
index 0000000..88d6522
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/ErrorReasonDTO$ErrorReasonDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/ErrorReasonDTO.class b/build/classes/java/main/com/example/apiPayload/ErrorReasonDTO.class
new file mode 100644
index 0000000..0e71ff3
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/ErrorReasonDTO.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/ReasonDTO$ReasonDTOBuilder.class b/build/classes/java/main/com/example/apiPayload/ReasonDTO$ReasonDTOBuilder.class
new file mode 100644
index 0000000..cbc47dd
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/ReasonDTO$ReasonDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/ReasonDTO.class b/build/classes/java/main/com/example/apiPayload/ReasonDTO.class
new file mode 100644
index 0000000..fdfbd61
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/ReasonDTO.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/code/status/ErrorStatus.class b/build/classes/java/main/com/example/apiPayload/code/status/ErrorStatus.class
new file mode 100644
index 0000000..e047223
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/code/status/ErrorStatus.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/code/status/SuccessStatus.class b/build/classes/java/main/com/example/apiPayload/code/status/SuccessStatus.class
new file mode 100644
index 0000000..3e77e1f
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/code/status/SuccessStatus.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/exception/ExceptionAdvice.class b/build/classes/java/main/com/example/apiPayload/exception/ExceptionAdvice.class
new file mode 100644
index 0000000..52e75af
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/exception/ExceptionAdvice.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/exception/GeneralException.class b/build/classes/java/main/com/example/apiPayload/exception/GeneralException.class
new file mode 100644
index 0000000..8ff15c1
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/exception/GeneralException.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/exception/handler/FoodCategoryHandler.class b/build/classes/java/main/com/example/apiPayload/exception/handler/FoodCategoryHandler.class
new file mode 100644
index 0000000..50449e7
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/exception/handler/FoodCategoryHandler.class differ
diff --git a/build/classes/java/main/com/example/apiPayload/exception/handler/TempHandler.class b/build/classes/java/main/com/example/apiPayload/exception/handler/TempHandler.class
new file mode 100644
index 0000000..1fa3887
Binary files /dev/null and b/build/classes/java/main/com/example/apiPayload/exception/handler/TempHandler.class differ
diff --git a/build/classes/java/main/com/example/config/QueryDSLConfig.class b/build/classes/java/main/com/example/config/QueryDSLConfig.class
new file mode 100644
index 0000000..4368f76
Binary files /dev/null and b/build/classes/java/main/com/example/config/QueryDSLConfig.class differ
diff --git a/build/classes/java/main/com/example/config/SwaggerConfig.class b/build/classes/java/main/com/example/config/SwaggerConfig.class
new file mode 100644
index 0000000..1359c17
Binary files /dev/null and b/build/classes/java/main/com/example/config/SwaggerConfig.class differ
diff --git a/build/classes/java/main/com/example/converter/MemberConverter.class b/build/classes/java/main/com/example/converter/MemberConverter.class
new file mode 100644
index 0000000..29e5020
Binary files /dev/null and b/build/classes/java/main/com/example/converter/MemberConverter.class differ
diff --git a/build/classes/java/main/com/example/converter/MemberPreferConverter.class b/build/classes/java/main/com/example/converter/MemberPreferConverter.class
new file mode 100644
index 0000000..9a427ab
Binary files /dev/null and b/build/classes/java/main/com/example/converter/MemberPreferConverter.class differ
diff --git a/build/classes/java/main/com/example/converter/StoreConverter.class b/build/classes/java/main/com/example/converter/StoreConverter.class
new file mode 100644
index 0000000..d564540
Binary files /dev/null and b/build/classes/java/main/com/example/converter/StoreConverter.class differ
diff --git a/build/classes/java/main/com/example/converter/TempConverter.class b/build/classes/java/main/com/example/converter/TempConverter.class
new file mode 100644
index 0000000..d371a9a
Binary files /dev/null and b/build/classes/java/main/com/example/converter/TempConverter.class differ
diff --git a/build/classes/java/main/com/example/domain/FoodCategory$FoodCategoryBuilder.class b/build/classes/java/main/com/example/domain/FoodCategory$FoodCategoryBuilder.class
new file mode 100644
index 0000000..d122fe7
Binary files /dev/null and b/build/classes/java/main/com/example/domain/FoodCategory$FoodCategoryBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/FoodCategory.class b/build/classes/java/main/com/example/domain/FoodCategory.class
new file mode 100644
index 0000000..a4e349d
Binary files /dev/null and b/build/classes/java/main/com/example/domain/FoodCategory.class differ
diff --git a/build/classes/java/main/com/example/domain/Member$MemberBuilder.class b/build/classes/java/main/com/example/domain/Member$MemberBuilder.class
new file mode 100644
index 0000000..73dac0a
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Member$MemberBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/Member.class b/build/classes/java/main/com/example/domain/Member.class
new file mode 100644
index 0000000..f0a9721
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Member.class differ
diff --git a/build/classes/java/main/com/example/domain/Mission$MissionBuilder.class b/build/classes/java/main/com/example/domain/Mission$MissionBuilder.class
new file mode 100644
index 0000000..d85f5bd
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Mission$MissionBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/Mission.class b/build/classes/java/main/com/example/domain/Mission.class
new file mode 100644
index 0000000..3f16998
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Mission.class differ
diff --git a/build/classes/java/main/com/example/domain/QFoodCategory.class b/build/classes/java/main/com/example/domain/QFoodCategory.class
new file mode 100644
index 0000000..f3b91bd
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QFoodCategory.class differ
diff --git a/build/classes/java/main/com/example/domain/QMember.class b/build/classes/java/main/com/example/domain/QMember.class
new file mode 100644
index 0000000..998e9a9
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QMember.class differ
diff --git a/build/classes/java/main/com/example/domain/QMission.class b/build/classes/java/main/com/example/domain/QMission.class
new file mode 100644
index 0000000..929a5fd
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QMission.class differ
diff --git a/build/classes/java/main/com/example/domain/QRegion.class b/build/classes/java/main/com/example/domain/QRegion.class
new file mode 100644
index 0000000..381bd42
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QRegion.class differ
diff --git a/build/classes/java/main/com/example/domain/QReview.class b/build/classes/java/main/com/example/domain/QReview.class
new file mode 100644
index 0000000..1a7727b
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QReview.class differ
diff --git a/build/classes/java/main/com/example/domain/QStore.class b/build/classes/java/main/com/example/domain/QStore.class
new file mode 100644
index 0000000..cf3da4e
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QStore.class differ
diff --git a/build/classes/java/main/com/example/domain/QTerms.class b/build/classes/java/main/com/example/domain/QTerms.class
new file mode 100644
index 0000000..ffec4a4
Binary files /dev/null and b/build/classes/java/main/com/example/domain/QTerms.class differ
diff --git a/build/classes/java/main/com/example/domain/Region$RegionBuilder.class b/build/classes/java/main/com/example/domain/Region$RegionBuilder.class
new file mode 100644
index 0000000..70d156c
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Region$RegionBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/Region.class b/build/classes/java/main/com/example/domain/Region.class
new file mode 100644
index 0000000..1795148
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Region.class differ
diff --git a/build/classes/java/main/com/example/domain/Review$ReviewBuilder.class b/build/classes/java/main/com/example/domain/Review$ReviewBuilder.class
new file mode 100644
index 0000000..72e8e33
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Review$ReviewBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/Review.class b/build/classes/java/main/com/example/domain/Review.class
new file mode 100644
index 0000000..b56c15f
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Review.class differ
diff --git a/build/classes/java/main/com/example/domain/Store$StoreBuilder.class b/build/classes/java/main/com/example/domain/Store$StoreBuilder.class
new file mode 100644
index 0000000..cd57045
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Store$StoreBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/Store.class b/build/classes/java/main/com/example/domain/Store.class
new file mode 100644
index 0000000..3ce281b
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Store.class differ
diff --git a/build/classes/java/main/com/example/domain/Terms$TermsBuilder.class b/build/classes/java/main/com/example/domain/Terms$TermsBuilder.class
new file mode 100644
index 0000000..8a03461
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Terms$TermsBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/Terms.class b/build/classes/java/main/com/example/domain/Terms.class
new file mode 100644
index 0000000..cd4201b
Binary files /dev/null and b/build/classes/java/main/com/example/domain/Terms.class differ
diff --git a/build/classes/java/main/com/example/domain/common/BaseEntity.class b/build/classes/java/main/com/example/domain/common/BaseEntity.class
new file mode 100644
index 0000000..a037652
Binary files /dev/null and b/build/classes/java/main/com/example/domain/common/BaseEntity.class differ
diff --git a/build/classes/java/main/com/example/domain/common/QBaseEntity.class b/build/classes/java/main/com/example/domain/common/QBaseEntity.class
new file mode 100644
index 0000000..70ce739
Binary files /dev/null and b/build/classes/java/main/com/example/domain/common/QBaseEntity.class differ
diff --git a/build/classes/java/main/com/example/domain/enums/Gender.class b/build/classes/java/main/com/example/domain/enums/Gender.class
new file mode 100644
index 0000000..1e0fa50
Binary files /dev/null and b/build/classes/java/main/com/example/domain/enums/Gender.class differ
diff --git a/build/classes/java/main/com/example/domain/enums/MemberStatus.class b/build/classes/java/main/com/example/domain/enums/MemberStatus.class
new file mode 100644
index 0000000..7892956
Binary files /dev/null and b/build/classes/java/main/com/example/domain/enums/MemberStatus.class differ
diff --git a/build/classes/java/main/com/example/domain/enums/MissionStatus.class b/build/classes/java/main/com/example/domain/enums/MissionStatus.class
new file mode 100644
index 0000000..c0aa7c5
Binary files /dev/null and b/build/classes/java/main/com/example/domain/enums/MissionStatus.class differ
diff --git a/build/classes/java/main/com/example/domain/enums/SocialType.class b/build/classes/java/main/com/example/domain/enums/SocialType.class
new file mode 100644
index 0000000..bdf66d8
Binary files /dev/null and b/build/classes/java/main/com/example/domain/enums/SocialType.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/MemberAgree$MemberAgreeBuilder.class b/build/classes/java/main/com/example/domain/mapping/MemberAgree$MemberAgreeBuilder.class
new file mode 100644
index 0000000..195bf60
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/MemberAgree$MemberAgreeBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/MemberAgree.class b/build/classes/java/main/com/example/domain/mapping/MemberAgree.class
new file mode 100644
index 0000000..c700446
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/MemberAgree.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/MemberMission$MemberMissionBuilder.class b/build/classes/java/main/com/example/domain/mapping/MemberMission$MemberMissionBuilder.class
new file mode 100644
index 0000000..f90c7b0
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/MemberMission$MemberMissionBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/MemberMission.class b/build/classes/java/main/com/example/domain/mapping/MemberMission.class
new file mode 100644
index 0000000..78df2b8
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/MemberMission.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/MemberPrefer$MemberPreferBuilder.class b/build/classes/java/main/com/example/domain/mapping/MemberPrefer$MemberPreferBuilder.class
new file mode 100644
index 0000000..3854c31
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/MemberPrefer$MemberPreferBuilder.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/MemberPrefer.class b/build/classes/java/main/com/example/domain/mapping/MemberPrefer.class
new file mode 100644
index 0000000..3c6e1e0
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/MemberPrefer.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/QMemberAgree.class b/build/classes/java/main/com/example/domain/mapping/QMemberAgree.class
new file mode 100644
index 0000000..14131d5
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/QMemberAgree.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/QMemberMission.class b/build/classes/java/main/com/example/domain/mapping/QMemberMission.class
new file mode 100644
index 0000000..56a3a25
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/QMemberMission.class differ
diff --git a/build/classes/java/main/com/example/domain/mapping/QMemberPrefer.class b/build/classes/java/main/com/example/domain/mapping/QMemberPrefer.class
new file mode 100644
index 0000000..a838cfb
Binary files /dev/null and b/build/classes/java/main/com/example/domain/mapping/QMemberPrefer.class differ
diff --git a/build/classes/java/main/com/example/repository/FoodCategoryRepository/FoodCategoryRepository.class b/build/classes/java/main/com/example/repository/FoodCategoryRepository/FoodCategoryRepository.class
new file mode 100644
index 0000000..7274814
Binary files /dev/null and b/build/classes/java/main/com/example/repository/FoodCategoryRepository/FoodCategoryRepository.class differ
diff --git a/build/classes/java/main/com/example/repository/MemberRepository/MemberRepository.class b/build/classes/java/main/com/example/repository/MemberRepository/MemberRepository.class
new file mode 100644
index 0000000..a856787
Binary files /dev/null and b/build/classes/java/main/com/example/repository/MemberRepository/MemberRepository.class differ
diff --git a/build/classes/java/main/com/example/repository/ReviewRepository.class b/build/classes/java/main/com/example/repository/ReviewRepository.class
new file mode 100644
index 0000000..8274caf
Binary files /dev/null and b/build/classes/java/main/com/example/repository/ReviewRepository.class differ
diff --git a/build/classes/java/main/com/example/repository/StoreRepository/StoreRepository.class b/build/classes/java/main/com/example/repository/StoreRepository/StoreRepository.class
new file mode 100644
index 0000000..9908e70
Binary files /dev/null and b/build/classes/java/main/com/example/repository/StoreRepository/StoreRepository.class differ
diff --git a/build/classes/java/main/com/example/repository/StoreRepository/StoreRepositoryCustom.class b/build/classes/java/main/com/example/repository/StoreRepository/StoreRepositoryCustom.class
new file mode 100644
index 0000000..8681034
Binary files /dev/null and b/build/classes/java/main/com/example/repository/StoreRepository/StoreRepositoryCustom.class differ
diff --git a/build/classes/java/main/com/example/repository/StoreRepository/StoreRepositoryImpl.class b/build/classes/java/main/com/example/repository/StoreRepository/StoreRepositoryImpl.class
new file mode 100644
index 0000000..8aa38b6
Binary files /dev/null and b/build/classes/java/main/com/example/repository/StoreRepository/StoreRepositoryImpl.class differ
diff --git a/build/classes/java/main/com/example/service/MemberService/MemberCommandService.class b/build/classes/java/main/com/example/service/MemberService/MemberCommandService.class
new file mode 100644
index 0000000..c48d25a
Binary files /dev/null and b/build/classes/java/main/com/example/service/MemberService/MemberCommandService.class differ
diff --git a/build/classes/java/main/com/example/service/MemberService/MemberCommandServiceImpl.class b/build/classes/java/main/com/example/service/MemberService/MemberCommandServiceImpl.class
new file mode 100644
index 0000000..5203e7f
Binary files /dev/null and b/build/classes/java/main/com/example/service/MemberService/MemberCommandServiceImpl.class differ
diff --git a/build/classes/java/main/com/example/service/MemberService/MemberQureyService.class b/build/classes/java/main/com/example/service/MemberService/MemberQureyService.class
new file mode 100644
index 0000000..18497da
Binary files /dev/null and b/build/classes/java/main/com/example/service/MemberService/MemberQureyService.class differ
diff --git a/build/classes/java/main/com/example/service/MemberService/MemberQureyServiceImpl.class b/build/classes/java/main/com/example/service/MemberService/MemberQureyServiceImpl.class
new file mode 100644
index 0000000..749c8ac
Binary files /dev/null and b/build/classes/java/main/com/example/service/MemberService/MemberQureyServiceImpl.class differ
diff --git a/build/classes/java/main/com/example/service/StoreService/StoreQueryService.class b/build/classes/java/main/com/example/service/StoreService/StoreQueryService.class
new file mode 100644
index 0000000..6320155
Binary files /dev/null and b/build/classes/java/main/com/example/service/StoreService/StoreQueryService.class differ
diff --git a/build/classes/java/main/com/example/service/StoreService/StoreQueryServiceImpl.class b/build/classes/java/main/com/example/service/StoreService/StoreQueryServiceImpl.class
new file mode 100644
index 0000000..2fb2bd0
Binary files /dev/null and b/build/classes/java/main/com/example/service/StoreService/StoreQueryServiceImpl.class differ
diff --git a/build/classes/java/main/com/example/service/TempService/TempCommandService.class b/build/classes/java/main/com/example/service/TempService/TempCommandService.class
new file mode 100644
index 0000000..12e3af8
Binary files /dev/null and b/build/classes/java/main/com/example/service/TempService/TempCommandService.class differ
diff --git a/build/classes/java/main/com/example/service/TempService/TempCommandServiceImpl.class b/build/classes/java/main/com/example/service/TempService/TempCommandServiceImpl.class
new file mode 100644
index 0000000..2f4daa6
Binary files /dev/null and b/build/classes/java/main/com/example/service/TempService/TempCommandServiceImpl.class differ
diff --git a/build/classes/java/main/com/example/service/TempService/TempQueryService.class b/build/classes/java/main/com/example/service/TempService/TempQueryService.class
new file mode 100644
index 0000000..5ef0a7c
Binary files /dev/null and b/build/classes/java/main/com/example/service/TempService/TempQueryService.class differ
diff --git a/build/classes/java/main/com/example/service/TempService/TempQueryServiceImpl.class b/build/classes/java/main/com/example/service/TempService/TempQueryServiceImpl.class
new file mode 100644
index 0000000..043d6d7
Binary files /dev/null and b/build/classes/java/main/com/example/service/TempService/TempQueryServiceImpl.class differ
diff --git a/build/classes/java/main/com/example/validation/annotation/ExistCategories.class b/build/classes/java/main/com/example/validation/annotation/ExistCategories.class
new file mode 100644
index 0000000..d239af5
Binary files /dev/null and b/build/classes/java/main/com/example/validation/annotation/ExistCategories.class differ
diff --git a/build/classes/java/main/com/example/validation/annotation/ExistStore.class b/build/classes/java/main/com/example/validation/annotation/ExistStore.class
new file mode 100644
index 0000000..aad3b6f
Binary files /dev/null and b/build/classes/java/main/com/example/validation/annotation/ExistStore.class differ
diff --git a/build/classes/java/main/com/example/validation/validator/CategoriesExistValidator.class b/build/classes/java/main/com/example/validation/validator/CategoriesExistValidator.class
new file mode 100644
index 0000000..93a014c
Binary files /dev/null and b/build/classes/java/main/com/example/validation/validator/CategoriesExistValidator.class differ
diff --git a/build/classes/java/main/com/example/validation/validator/StoreExistValidator.class b/build/classes/java/main/com/example/validation/validator/StoreExistValidator.class
new file mode 100644
index 0000000..f11abcb
Binary files /dev/null and b/build/classes/java/main/com/example/validation/validator/StoreExistValidator.class differ
diff --git a/build/classes/java/main/com/example/web/controller/MemberRestController.class b/build/classes/java/main/com/example/web/controller/MemberRestController.class
new file mode 100644
index 0000000..e8d4aa8
Binary files /dev/null and b/build/classes/java/main/com/example/web/controller/MemberRestController.class differ
diff --git a/build/classes/java/main/com/example/web/controller/StoreRestController.class b/build/classes/java/main/com/example/web/controller/StoreRestController.class
new file mode 100644
index 0000000..a9c5e02
Binary files /dev/null and b/build/classes/java/main/com/example/web/controller/StoreRestController.class differ
diff --git a/build/classes/java/main/com/example/web/controller/TempRestController.class b/build/classes/java/main/com/example/web/controller/TempRestController.class
new file mode 100644
index 0000000..e3ba007
Binary files /dev/null and b/build/classes/java/main/com/example/web/controller/TempRestController.class differ
diff --git a/build/classes/java/main/com/example/web/dto/MemberRequestDTO$JoinDto.class b/build/classes/java/main/com/example/web/dto/MemberRequestDTO$JoinDto.class
new file mode 100644
index 0000000..923579f
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/MemberRequestDTO$JoinDto.class differ
diff --git a/build/classes/java/main/com/example/web/dto/MemberRequestDTO.class b/build/classes/java/main/com/example/web/dto/MemberRequestDTO.class
new file mode 100644
index 0000000..e83ec1d
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/MemberRequestDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/MemberResponseDTO$JoinResultDTO$JoinResultDTOBuilder.class b/build/classes/java/main/com/example/web/dto/MemberResponseDTO$JoinResultDTO$JoinResultDTOBuilder.class
new file mode 100644
index 0000000..5c7b246
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/MemberResponseDTO$JoinResultDTO$JoinResultDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/web/dto/MemberResponseDTO$JoinResultDTO.class b/build/classes/java/main/com/example/web/dto/MemberResponseDTO$JoinResultDTO.class
new file mode 100644
index 0000000..69fed80
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/MemberResponseDTO$JoinResultDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/MemberResponseDTO.class b/build/classes/java/main/com/example/web/dto/MemberResponseDTO.class
new file mode 100644
index 0000000..90f55bb
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/MemberResponseDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/StoreRequestDTO.class b/build/classes/java/main/com/example/web/dto/StoreRequestDTO.class
new file mode 100644
index 0000000..339d5f0
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/StoreRequestDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewDTO$ReviewPreViewDTOBuilder.class b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewDTO$ReviewPreViewDTOBuilder.class
new file mode 100644
index 0000000..1f4d818
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewDTO$ReviewPreViewDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewDTO.class b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewDTO.class
new file mode 100644
index 0000000..55249bd
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewListDTO$ReviewPreViewListDTOBuilder.class b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewListDTO$ReviewPreViewListDTOBuilder.class
new file mode 100644
index 0000000..3ed8eea
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewListDTO$ReviewPreViewListDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewListDTO.class b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewListDTO.class
new file mode 100644
index 0000000..2ceffc7
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/StoreResponseDTO$ReviewPreViewListDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/StoreResponseDTO.class b/build/classes/java/main/com/example/web/dto/StoreResponseDTO.class
new file mode 100644
index 0000000..26e29c4
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/StoreResponseDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/TempRequest.class b/build/classes/java/main/com/example/web/dto/TempRequest.class
new file mode 100644
index 0000000..6bdf2b9
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/TempRequest.class differ
diff --git a/build/classes/java/main/com/example/web/dto/TempResponse$TempExceptionDTO$TempExceptionDTOBuilder.class b/build/classes/java/main/com/example/web/dto/TempResponse$TempExceptionDTO$TempExceptionDTOBuilder.class
new file mode 100644
index 0000000..2c606b7
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/TempResponse$TempExceptionDTO$TempExceptionDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/web/dto/TempResponse$TempExceptionDTO.class b/build/classes/java/main/com/example/web/dto/TempResponse$TempExceptionDTO.class
new file mode 100644
index 0000000..8a3eb0d
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/TempResponse$TempExceptionDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/TempResponse$TempTestDTO$TempTestDTOBuilder.class b/build/classes/java/main/com/example/web/dto/TempResponse$TempTestDTO$TempTestDTOBuilder.class
new file mode 100644
index 0000000..01328a9
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/TempResponse$TempTestDTO$TempTestDTOBuilder.class differ
diff --git a/build/classes/java/main/com/example/web/dto/TempResponse$TempTestDTO.class b/build/classes/java/main/com/example/web/dto/TempResponse$TempTestDTO.class
new file mode 100644
index 0000000..7a1c448
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/TempResponse$TempTestDTO.class differ
diff --git a/build/classes/java/main/com/example/web/dto/TempResponse.class b/build/classes/java/main/com/example/web/dto/TempResponse.class
new file mode 100644
index 0000000..7c25a8f
Binary files /dev/null and b/build/classes/java/main/com/example/web/dto/TempResponse.class differ
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QFoodCategory.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QFoodCategory.java
new file mode 100644
index 0000000..2559586
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QFoodCategory.java
@@ -0,0 +1,47 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+
+
+/**
+ * QFoodCategory is a Querydsl query type for FoodCategory
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QFoodCategory extends EntityPathBase {
+
+ private static final long serialVersionUID = -1774211307L;
+
+ public static final QFoodCategory foodCategory = new QFoodCategory("foodCategory");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final StringPath name = createString("name");
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QFoodCategory(String variable) {
+ super(FoodCategory.class, forVariable(variable));
+ }
+
+ public QFoodCategory(Path extends FoodCategory> path) {
+ super(path.getType(), path.getMetadata());
+ }
+
+ public QFoodCategory(PathMetadata metadata) {
+ super(FoodCategory.class, metadata);
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QMember.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QMember.java
new file mode 100644
index 0000000..2827182
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QMember.java
@@ -0,0 +1,72 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QMember is a Querydsl query type for Member
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QMember extends EntityPathBase {
+
+ private static final long serialVersionUID = -1016450829L;
+
+ public static final QMember member = new QMember("member1");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ public final StringPath address = createString("address");
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final StringPath email = createString("email");
+
+ public final EnumPath gender = createEnum("gender", com.example.domain.enums.Gender.class);
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final DatePath inactiveDate = createDate("inactiveDate", java.time.LocalDate.class);
+
+ public final ListPath memberAgreeList = this.createList("memberAgreeList", com.example.domain.mapping.MemberAgree.class, com.example.domain.mapping.QMemberAgree.class, PathInits.DIRECT2);
+
+ public final ListPath memberMissionList = this.createList("memberMissionList", com.example.domain.mapping.MemberMission.class, com.example.domain.mapping.QMemberMission.class, PathInits.DIRECT2);
+
+ public final ListPath memberPreferList = this.createList("memberPreferList", com.example.domain.mapping.MemberPrefer.class, com.example.domain.mapping.QMemberPrefer.class, PathInits.DIRECT2);
+
+ public final StringPath name = createString("name");
+
+ public final NumberPath point = createNumber("point", Integer.class);
+
+ public final ListPath reviewList = this.createList("reviewList", Review.class, QReview.class, PathInits.DIRECT2);
+
+ public final EnumPath socialType = createEnum("socialType", com.example.domain.enums.SocialType.class);
+
+ public final StringPath specAddress = createString("specAddress");
+
+ public final EnumPath status = createEnum("status", com.example.domain.enums.MemberStatus.class);
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QMember(String variable) {
+ super(Member.class, forVariable(variable));
+ }
+
+ public QMember(Path extends Member> path) {
+ super(path.getType(), path.getMetadata());
+ }
+
+ public QMember(PathMetadata metadata) {
+ super(Member.class, metadata);
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QMission.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QMission.java
new file mode 100644
index 0000000..b5abb4f
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QMission.java
@@ -0,0 +1,70 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QMission is a Querydsl query type for Mission
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QMission extends EntityPathBase {
+
+ private static final long serialVersionUID = -1324636589L;
+
+ private static final PathInits INITS = PathInits.DIRECT2;
+
+ public static final QMission mission = new QMission("mission");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final DatePath deadline = createDate("deadline", java.time.LocalDate.class);
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final QMember member;
+
+ public final ListPath memberMissionList = this.createList("memberMissionList", com.example.domain.mapping.MemberMission.class, com.example.domain.mapping.QMemberMission.class, PathInits.DIRECT2);
+
+ public final StringPath missionSpec = createString("missionSpec");
+
+ public final NumberPath reward = createNumber("reward", Integer.class);
+
+ public final QStore store;
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QMission(String variable) {
+ this(Mission.class, forVariable(variable), INITS);
+ }
+
+ public QMission(Path extends Mission> path) {
+ this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
+ }
+
+ public QMission(PathMetadata metadata) {
+ this(metadata, PathInits.getFor(metadata, INITS));
+ }
+
+ public QMission(PathMetadata metadata, PathInits inits) {
+ this(Mission.class, metadata, inits);
+ }
+
+ public QMission(Class extends Mission> type, PathMetadata metadata, PathInits inits) {
+ super(type, metadata, inits);
+ this.member = inits.isInitialized("member") ? new QMember(forProperty("member")) : null;
+ this.store = inits.isInitialized("store") ? new QStore(forProperty("store"), inits.get("store")) : null;
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QRegion.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QRegion.java
new file mode 100644
index 0000000..7e64716
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QRegion.java
@@ -0,0 +1,47 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+
+
+/**
+ * QRegion is a Querydsl query type for Region
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QRegion extends EntityPathBase {
+
+ private static final long serialVersionUID = -873476787L;
+
+ public static final QRegion region = new QRegion("region");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final StringPath name = createString("name");
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QRegion(String variable) {
+ super(Region.class, forVariable(variable));
+ }
+
+ public QRegion(Path extends Region> path) {
+ super(path.getType(), path.getMetadata());
+ }
+
+ public QRegion(PathMetadata metadata) {
+ super(Region.class, metadata);
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QReview.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QReview.java
new file mode 100644
index 0000000..7faf53e
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QReview.java
@@ -0,0 +1,68 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QReview is a Querydsl query type for Review
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QReview extends EntityPathBase {
+
+ private static final long serialVersionUID = -873030223L;
+
+ private static final PathInits INITS = PathInits.DIRECT2;
+
+ public static final QReview review = new QReview("review");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ public final StringPath body = createString("body");
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final QMember member;
+
+ public final NumberPath score = createNumber("score", Float.class);
+
+ public final QStore store;
+
+ public final StringPath title = createString("title");
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QReview(String variable) {
+ this(Review.class, forVariable(variable), INITS);
+ }
+
+ public QReview(Path extends Review> path) {
+ this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
+ }
+
+ public QReview(PathMetadata metadata) {
+ this(metadata, PathInits.getFor(metadata, INITS));
+ }
+
+ public QReview(PathMetadata metadata, PathInits inits) {
+ this(Review.class, metadata, inits);
+ }
+
+ public QReview(Class extends Review> type, PathMetadata metadata, PathInits inits) {
+ super(type, metadata, inits);
+ this.member = inits.isInitialized("member") ? new QMember(forProperty("member")) : null;
+ this.store = inits.isInitialized("store") ? new QStore(forProperty("store"), inits.get("store")) : null;
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QStore.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QStore.java
new file mode 100644
index 0000000..f43706e
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QStore.java
@@ -0,0 +1,69 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QStore is a Querydsl query type for Store
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QStore extends EntityPathBase {
+
+ private static final long serialVersionUID = -996629656L;
+
+ private static final PathInits INITS = PathInits.DIRECT2;
+
+ public static final QStore store = new QStore("store");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ public final StringPath address = createString("address");
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final ListPath missionList = this.createList("missionList", Mission.class, QMission.class, PathInits.DIRECT2);
+
+ public final StringPath name = createString("name");
+
+ public final QRegion region;
+
+ public final ListPath reviewList = this.createList("reviewList", Review.class, QReview.class, PathInits.DIRECT2);
+
+ public final NumberPath score = createNumber("score", Float.class);
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QStore(String variable) {
+ this(Store.class, forVariable(variable), INITS);
+ }
+
+ public QStore(Path extends Store> path) {
+ this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
+ }
+
+ public QStore(PathMetadata metadata) {
+ this(metadata, PathInits.getFor(metadata, INITS));
+ }
+
+ public QStore(PathMetadata metadata, PathInits inits) {
+ this(Store.class, metadata, inits);
+ }
+
+ public QStore(Class extends Store> type, PathMetadata metadata, PathInits inits) {
+ super(type, metadata, inits);
+ this.region = inits.isInitialized("region") ? new QRegion(forProperty("region")) : null;
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/QTerms.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QTerms.java
new file mode 100644
index 0000000..92a430f
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/QTerms.java
@@ -0,0 +1,54 @@
+package com.example.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QTerms is a Querydsl query type for Terms
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QTerms extends EntityPathBase {
+
+ private static final long serialVersionUID = -996150258L;
+
+ public static final QTerms terms = new QTerms("terms");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ public final StringPath body = createString("body");
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final ListPath memberAgreeList = this.createList("memberAgreeList", com.example.domain.mapping.MemberAgree.class, com.example.domain.mapping.QMemberAgree.class, PathInits.DIRECT2);
+
+ public final BooleanPath optional = createBoolean("optional");
+
+ public final StringPath title = createString("title");
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QTerms(String variable) {
+ super(Terms.class, forVariable(variable));
+ }
+
+ public QTerms(Path extends Terms> path) {
+ super(path.getType(), path.getMetadata());
+ }
+
+ public QTerms(PathMetadata metadata) {
+ super(Terms.class, metadata);
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/common/QBaseEntity.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/common/QBaseEntity.java
new file mode 100644
index 0000000..b2097d3
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/common/QBaseEntity.java
@@ -0,0 +1,39 @@
+package com.example.domain.common;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+
+
+/**
+ * QBaseEntity is a Querydsl query type for BaseEntity
+ */
+@Generated("com.querydsl.codegen.DefaultSupertypeSerializer")
+public class QBaseEntity extends EntityPathBase {
+
+ private static final long serialVersionUID = 118984254L;
+
+ public static final QBaseEntity baseEntity = new QBaseEntity("baseEntity");
+
+ public final DateTimePath createdAt = createDateTime("createdAt", java.time.LocalDateTime.class);
+
+ public final DateTimePath updatedAt = createDateTime("updatedAt", java.time.LocalDateTime.class);
+
+ public QBaseEntity(String variable) {
+ super(BaseEntity.class, forVariable(variable));
+ }
+
+ public QBaseEntity(Path extends BaseEntity> path) {
+ super(path.getType(), path.getMetadata());
+ }
+
+ public QBaseEntity(PathMetadata metadata) {
+ super(BaseEntity.class, metadata);
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberAgree.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberAgree.java
new file mode 100644
index 0000000..f9b564e
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberAgree.java
@@ -0,0 +1,62 @@
+package com.example.domain.mapping;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QMemberAgree is a Querydsl query type for MemberAgree
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QMemberAgree extends EntityPathBase {
+
+ private static final long serialVersionUID = 1811719513L;
+
+ private static final PathInits INITS = PathInits.DIRECT2;
+
+ public static final QMemberAgree memberAgree = new QMemberAgree("memberAgree");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final com.example.domain.QMember member;
+
+ public final com.example.domain.QTerms terms;
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QMemberAgree(String variable) {
+ this(MemberAgree.class, forVariable(variable), INITS);
+ }
+
+ public QMemberAgree(Path extends MemberAgree> path) {
+ this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
+ }
+
+ public QMemberAgree(PathMetadata metadata) {
+ this(metadata, PathInits.getFor(metadata, INITS));
+ }
+
+ public QMemberAgree(PathMetadata metadata, PathInits inits) {
+ this(MemberAgree.class, metadata, inits);
+ }
+
+ public QMemberAgree(Class extends MemberAgree> type, PathMetadata metadata, PathInits inits) {
+ super(type, metadata, inits);
+ this.member = inits.isInitialized("member") ? new com.example.domain.QMember(forProperty("member")) : null;
+ this.terms = inits.isInitialized("terms") ? new com.example.domain.QTerms(forProperty("terms")) : null;
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberMission.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberMission.java
new file mode 100644
index 0000000..171a8e1
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberMission.java
@@ -0,0 +1,64 @@
+package com.example.domain.mapping;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QMemberMission is a Querydsl query type for MemberMission
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QMemberMission extends EntityPathBase {
+
+ private static final long serialVersionUID = -575554311L;
+
+ private static final PathInits INITS = PathInits.DIRECT2;
+
+ public static final QMemberMission memberMission = new QMemberMission("memberMission");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final com.example.domain.QMember member;
+
+ public final com.example.domain.QMission mission;
+
+ public final EnumPath status = createEnum("status", com.example.domain.enums.MissionStatus.class);
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QMemberMission(String variable) {
+ this(MemberMission.class, forVariable(variable), INITS);
+ }
+
+ public QMemberMission(Path extends MemberMission> path) {
+ this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
+ }
+
+ public QMemberMission(PathMetadata metadata) {
+ this(metadata, PathInits.getFor(metadata, INITS));
+ }
+
+ public QMemberMission(PathMetadata metadata, PathInits inits) {
+ this(MemberMission.class, metadata, inits);
+ }
+
+ public QMemberMission(Class extends MemberMission> type, PathMetadata metadata, PathInits inits) {
+ super(type, metadata, inits);
+ this.member = inits.isInitialized("member") ? new com.example.domain.QMember(forProperty("member")) : null;
+ this.mission = inits.isInitialized("mission") ? new com.example.domain.QMission(forProperty("mission"), inits.get("mission")) : null;
+ }
+
+}
+
diff --git a/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberPrefer.java b/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberPrefer.java
new file mode 100644
index 0000000..65ec1e0
--- /dev/null
+++ b/build/generated/sources/annotationProcessor/java/main/com/example/domain/mapping/QMemberPrefer.java
@@ -0,0 +1,62 @@
+package com.example.domain.mapping;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+import com.querydsl.core.types.dsl.PathInits;
+
+
+/**
+ * QMemberPrefer is a Querydsl query type for MemberPrefer
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QMemberPrefer extends EntityPathBase {
+
+ private static final long serialVersionUID = 767939843L;
+
+ private static final PathInits INITS = PathInits.DIRECT2;
+
+ public static final QMemberPrefer memberPrefer = new QMemberPrefer("memberPrefer");
+
+ public final com.example.domain.common.QBaseEntity _super = new com.example.domain.common.QBaseEntity(this);
+
+ //inherited
+ public final DateTimePath createdAt = _super.createdAt;
+
+ public final com.example.domain.QFoodCategory foodCategory;
+
+ public final NumberPath id = createNumber("id", Long.class);
+
+ public final com.example.domain.QMember member;
+
+ //inherited
+ public final DateTimePath updatedAt = _super.updatedAt;
+
+ public QMemberPrefer(String variable) {
+ this(MemberPrefer.class, forVariable(variable), INITS);
+ }
+
+ public QMemberPrefer(Path extends MemberPrefer> path) {
+ this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
+ }
+
+ public QMemberPrefer(PathMetadata metadata) {
+ this(metadata, PathInits.getFor(metadata, INITS));
+ }
+
+ public QMemberPrefer(PathMetadata metadata, PathInits inits) {
+ this(MemberPrefer.class, metadata, inits);
+ }
+
+ public QMemberPrefer(Class extends MemberPrefer> type, PathMetadata metadata, PathInits inits) {
+ super(type, metadata, inits);
+ this.foodCategory = inits.isInitialized("foodCategory") ? new com.example.domain.QFoodCategory(forProperty("foodCategory")) : null;
+ this.member = inits.isInitialized("member") ? new com.example.domain.QMember(forProperty("member")) : null;
+ }
+
+}
+
diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html
new file mode 100644
index 0000000..63a9f51
--- /dev/null
+++ b/build/reports/problems/problems-report.html
@@ -0,0 +1,663 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Gradle Configuration Cache
+
+
+
+
+
+
+ Loading...
+
+
+
+
+
+
+
diff --git a/build/resources/main/application.yml b/build/resources/main/application.yml
new file mode 100644
index 0000000..bb2a42f
--- /dev/null
+++ b/build/resources/main/application.yml
@@ -0,0 +1,19 @@
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/study
+ username: root
+ password: yejin0618*
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ sql:
+ init:
+ mode: never
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.MySQL8Dialect
+ show_sql: true
+ format_sql: true
+ use_sql_comments: true
+ hbm2ddl:
+ auto: create
+ default_batch_fetch_size: 1000
\ No newline at end of file
diff --git a/build/resources/main/data.sql b/build/resources/main/data.sql
new file mode 100644
index 0000000..e69de29
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
new file mode 100644
index 0000000..a75ab4b
Binary files /dev/null and b/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..9bbc975
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..37f853b
--- /dev/null
+++ b/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/gradlew b/gradlew
new file mode 100644
index 0000000..e69de29
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..e69de29
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..ebf1ef8
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+rootProject.name = 'spring'
diff --git a/src/main/java/com/example/Application.java b/src/main/java/com/example/Application.java
new file mode 100644
index 0000000..23a4912
--- /dev/null
+++ b/src/main/java/com/example/Application.java
@@ -0,0 +1,17 @@
+package com.example;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
+
+@SpringBootApplication
+//@EnableJpaAuditing
+@EntityScan(basePackages = "com.example.domain")
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/src/main/java/com/example/StudyApplication.java b/src/main/java/com/example/StudyApplication.java
new file mode 100644
index 0000000..08f409f
--- /dev/null
+++ b/src/main/java/com/example/StudyApplication.java
@@ -0,0 +1,36 @@
+//package com.example;
+//
+//import com.example.service.StoreService.StoreQueryService;
+//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;
+//
+//@SpringBootApplication
+//@EnableJpaAuditing
+//public class StudyApplication {
+// public static void main(String[] args) {
+// SpringApplication.run(StudyApplication.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/src/main/java/com/example/apiPayload/ApiResponse.java b/src/main/java/com/example/apiPayload/ApiResponse.java
new file mode 100644
index 0000000..6be8217
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/ApiResponse.java
@@ -0,0 +1,38 @@
+package com.example.apiPayload;
+
+import com.example.apiPayload.code.status.SuccessStatus;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@JsonPropertyOrder({"isSuccess", "code", "message", "result"})
+public class ApiResponse {
+
+ @JsonProperty("isSuccess")
+ private final Boolean isSuccess;
+ private final String code;
+ private final String message;
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private T result;
+
+
+ // 성공한 경우 응답 생성
+
+ public static ApiResponse onSuccess(T result){
+ return new ApiResponse<>(true, SuccessStatus._OK.getCode() , SuccessStatus._OK.getMessage(), result);
+ }
+
+ public static ApiResponse of(BaseCode code, T result){
+ return new ApiResponse<>(true, code.getReasonHttpStatus().getCode() , code.getReasonHttpStatus().getMessage(), result);
+ }
+
+
+ // 실패한 경우 응답 생성
+ public static ApiResponse onFailure(String code, String message, T data){
+ return new ApiResponse<>(false, code, message, data);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/apiPayload/BaseCode.java b/src/main/java/com/example/apiPayload/BaseCode.java
new file mode 100644
index 0000000..e0ba3c7
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/BaseCode.java
@@ -0,0 +1,10 @@
+package com.example.apiPayload;
+
+import java.awt.desktop.UserSessionEvent;
+
+public interface BaseCode {
+
+ ReasonDTO getReason();
+
+ ReasonDTO getReasonHttpStatus();
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/apiPayload/BaseErrorCode.java b/src/main/java/com/example/apiPayload/BaseErrorCode.java
new file mode 100644
index 0000000..10a9726
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/BaseErrorCode.java
@@ -0,0 +1,7 @@
+package com.example.apiPayload;
+
+public interface BaseErrorCode {
+ ErrorReasonDTO getReason();
+
+ ErrorReasonDTO getReasonHttpStatus();
+}
diff --git a/src/main/java/com/example/apiPayload/ErrorReasonDTO.java b/src/main/java/com/example/apiPayload/ErrorReasonDTO.java
new file mode 100644
index 0000000..b9dd976
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/ErrorReasonDTO.java
@@ -0,0 +1,18 @@
+package com.example.apiPayload;
+
+import lombok.Builder;
+import lombok.Getter;
+import org.springframework.http.HttpStatus;
+
+@Getter
+@Builder
+public class ErrorReasonDTO {
+
+ private HttpStatus httpStatus;
+
+ private final boolean isSuccess;
+ private final String code;
+ private final String message;
+
+ public boolean getIsSuccess(){return isSuccess;}
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/apiPayload/ReasonDTO.java b/src/main/java/com/example/apiPayload/ReasonDTO.java
new file mode 100644
index 0000000..eef5960
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/ReasonDTO.java
@@ -0,0 +1,18 @@
+package com.example.apiPayload;
+
+import lombok.Builder;
+import lombok.Getter;
+import org.springframework.http.HttpStatus;
+
+@Getter
+@Builder
+public class ReasonDTO {
+
+ private HttpStatus httpStatus;
+
+ private final boolean isSuccess;
+ private final String code;
+ private final String message;
+
+ public boolean getIsSuccess(){return isSuccess;}
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/apiPayload/code/status/ErrorStatus.java b/src/main/java/com/example/apiPayload/code/status/ErrorStatus.java
new file mode 100644
index 0000000..db3d283
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/code/status/ErrorStatus.java
@@ -0,0 +1,62 @@
+package com.example.apiPayload.code.status;
+
+import com.example.apiPayload.BaseErrorCode;
+import com.example.apiPayload.ErrorReasonDTO;
+import com.example.domain.FoodCategory;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.springframework.http.HttpStatus;
+
+@Getter
+@AllArgsConstructor
+public enum ErrorStatus implements BaseErrorCode {
+
+ // 가장 일반적인 응답
+ _INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "COMMON500", "서버 에러, 관리자에게 문의 바랍니다."),
+ _BAD_REQUEST(HttpStatus.BAD_REQUEST,"COMMON400","잘못된 요청입니다."),
+ _UNAUTHORIZED(HttpStatus.UNAUTHORIZED,"COMMON401","인증이 필요합니다."),
+ _FORBIDDEN(HttpStatus.FORBIDDEN, "COMMON403", "금지된 요청입니다."),
+
+ // For test
+ TEMP_EXCEPTION(HttpStatus.BAD_REQUEST, "TEMP4001", "이거는 테스트"),
+
+ // Member Error
+ MEMBER_NOT_FOUND(HttpStatus.BAD_REQUEST, "MEMBER4001", "사용자가 없습니다."),
+ NICKNAME_NOT_EXIST(HttpStatus.BAD_REQUEST, "MEMBER4002", "닉네임은 필수 입니다."),
+
+ // Article Error
+ ARTICLE_NOT_FOUND(HttpStatus.NOT_FOUND, "ARTICLE4001", "게시글이 없습니다."),
+
+ // FoodCategory Error
+ FOOD_CATEGORY_NOT_FOUND(HttpStatus.NOT_FOUND, "FOOD4001", "해당 음식 카테고리를 찾을 수 없습니다."),
+
+ // Store Error
+ STORE_NOT_FOUND(HttpStatus.NOT_FOUND, "STORE_4001","가게가 없습니다.");
+
+ // Article Error
+ // ARTICLE_NOT_FOUND(HttpStatus.NOT_FOUND, "ARTICLE4001", "게시글이 없습니다.");
+
+ private final HttpStatus httpStatus;
+ private final String code;
+ private final String message;
+
+ @Override
+ public ErrorReasonDTO getReason() {
+ return ErrorReasonDTO.builder()
+ .message(message)
+ .code(code)
+ .isSuccess(false)
+ .build();
+ }
+
+ @Override
+ public ErrorReasonDTO getReasonHttpStatus() {
+ return ErrorReasonDTO.builder()
+ .message(message)
+ .code(code)
+ .isSuccess(false)
+ .httpStatus(httpStatus)
+ .build()
+ ;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/apiPayload/code/status/SuccessStatus.java b/src/main/java/com/example/apiPayload/code/status/SuccessStatus.java
new file mode 100644
index 0000000..22ed1d5
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/code/status/SuccessStatus.java
@@ -0,0 +1,39 @@
+package com.example.apiPayload.code.status;
+
+import com.example.apiPayload.BaseCode;
+import com.example.apiPayload.ReasonDTO;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.springframework.http.HttpStatus;
+
+@Getter
+@AllArgsConstructor
+public enum SuccessStatus implements BaseCode {
+
+ // 일반적인 응답
+ _OK(HttpStatus.OK, "COMMON200", "성공입니다.");
+
+ private final HttpStatus httpStatus;
+ private final String code;
+ private final String message;
+
+ @Override
+ public ReasonDTO getReason() {
+ return ReasonDTO.builder()
+ .message(message)
+ .code(code)
+ .isSuccess(true)
+ .build();
+ }
+
+ @Override
+ public ReasonDTO getReasonHttpStatus() {
+ return ReasonDTO.builder()
+ .message(message)
+ .code(code)
+ .isSuccess(true)
+ .httpStatus(httpStatus)
+ .build()
+ ;
+ }
+}
diff --git a/src/main/java/com/example/apiPayload/exception/ExceptionAdvice.java b/src/main/java/com/example/apiPayload/exception/ExceptionAdvice.java
new file mode 100644
index 0000000..9c33f74
--- /dev/null
+++ b/src/main/java/com/example/apiPayload/exception/ExceptionAdvice.java
@@ -0,0 +1,119 @@
+package com.example.apiPayload.exception;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.ConstraintViolationException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.HttpStatusCode;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.context.request.ServletWebRequest;
+import org.springframework.web.context.request.WebRequest;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
+import com.example.apiPayload.ApiResponse;
+import com.example.apiPayload.ErrorReasonDTO;
+import com.example.apiPayload.code.status.ErrorStatus;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Optional;
+
+@Slf4j
+@RestControllerAdvice(annotations = {RestController.class})
+public class ExceptionAdvice extends ResponseEntityExceptionHandler {
+
+
+ @ExceptionHandler
+ public ResponseEntity