diff --git a/README.md b/README.md
index 6f267b5f..0a59e339 100644
--- a/README.md
+++ b/README.md
@@ -1,42 +1,48 @@
-# π ASAP : AS SOON AS POSSIBLE
-μ΅μ μ νμμκ°λλ₯Ό κ²°μ ν΄ νμ μ΄μ λΆνμν μκ°μ , κ°μ μ μλΉλ₯Ό μ€μ¬μ£Όλ μΉμλΉμ€
-
-# π¨π»βπ» Contributors
-|
κ°μμ©
| λμν
|
-|:----------|:----------|
-| [KWY0218](https://github.com/KWY0218)
| [sohyundoh](https://github.com/sohyundoh)
|
-| | |
-| [μ°Έμ¬μ : νμ κ°λ₯ μκ° λ·°]
μ°Έμ¬μ μ 보 λ° νμ κ°λ₯ μκ° μ
λ ₯ API |[λ§ν¬ μ
μ₯ λ·°] μ ν¨ν νμ νμΈ API,
ν ν° μ ν¨μ± νμΈ API |
-| [λ°©μ₯μΌλ‘ μ
μ₯] λ°©μ₯ μ 보 μ
λ ₯ API | [λ°©μ₯ : νμ κ°λ₯ μκ° λ·°]
νμ κ°λ₯ μκ° μ
λ ₯ API|
-| [λ°©μ₯ λ·°] μ΅μ μ νμμκ° API | [λ°©μ₯ λ·°] μ’
ν© μΌμ μκ°ν API |
-| [λ°©μ₯ λ·°] νμ μκ° νμ API| [νμ μμ± λ·°] νμ μμ± API |
-| [λ°©μ₯ λ·°] νμΉ΄λ μ 보 λΆλ¬μ€λ API |[κ°λ₯ μκ° μ
λ ₯ λ·°] μ νμ§ μ 곡 |
-
-# πΌ Server Architecture
-![image](https://github.com/ASAP-as-soon-as-possible/ASAP_Server/assets/79795051/d1aae75e-4ce9-4b1e-9b70-8a5ea07e37e2)
-
-# ποΈ Directory
+### **πββοΈ Introduction**
+
+![image](https://github.com/user-attachments/assets/e9d91189-cecd-4f55-8a2b-9bbf4aa1045c)
+![image](https://github.com/user-attachments/assets/5ab65502-bdc4-4ab1-955b-9b23c9c5498f)
+
+
+ASAPμμ νΈλ λΆμμ ν΅ν΄ μ΅λ μΈμμ΄ μ°Έμ κ°λ₯ν νμμκ°μ μλμΌλ‘ κ²°μ ν΄ μ€μΌλ‘μ¨, **λ€μκ° μκ°μ μ‘°μ¨νλ©° λλ μ΄λλ μκ°μ μ€μ¬μ£Όλ μλΉμ€** μ
λλ€.
+
+νμ κ΄λ ¨ μ 보λ₯Ό νλμ νμΉ΄λλ‘ μ λ¦¬ν΄ μ 곡ν¨μΌλ‘μ¨ νμ μκ° μΈ μΆκ° 곡μ§μ¬νμ λ¨ν‘λ°©μ μ¬λ¦¬λ μκ³ λ‘μ λν λμ΄μ£Όκ³ μ ν©λλ€.
+
+νλ§λλ‘ ASAPμ **νμλ₯Ό μ§ννλ μ
무μκ° μΈ μΌλ ¨μ μ¬μ μμ
λ€μ μ½κ³ λΉ λ₯΄κ³ κ°νΈνκ² μ²λ¦¬ν΄μ£Όλ μΉμλΉμ€**μ
λλ€.
+
+### **π Architecture**
+
+![image](https://github.com/user-attachments/assets/cae98903-bc3d-4e4c-b60f-b499747b227f)
+
+
+### **π DataBase Schema**
+
+![image](https://github.com/user-attachments/assets/abdca3ac-b608-44fe-aa9b-c623864b7bee)
+
+
+### **ποΈ Directory**
+
```
-βββ java
-βΒ Β βββ com
-βΒ Β βββ asap
-βΒ Β βββ server
-βΒ Β βββ common
-βΒ Β βΒ Β βββ advice
-βΒ Β βΒ Β βββ dto
-βΒ Β βΒ Β βββ utils
-βΒ Β βββ config
-βΒ Β βΒ Β βββ jwt
-βΒ Β βΒ Β βββ resolver
-βΒ Β βΒ Β βΒ Β βββ meeting
-βΒ Β βΒ Β βΒ Β βββ user
-βΒ Β βΒ Β βββ swagger
-βΒ Β βββ controller
-βΒ Β βββ domain
-βΒ Β βΒ Β βββ enums
-βΒ Β βββ exception
-βΒ Β βΒ Β βββ model
-βΒ Β βββ repository
-βΒ Β βββ service
-βββ test
+ββcommon # κ° κ³μΈ΅μμ 곡ν΅μΌλ‘ μ¬μ©νλ μ νΈλ¦¬ν°μ μμΈ μ²λ¦¬ κΈ°λ₯μ μ 곡ν©λλ€.
+β ββexception
+β ββjwt
+β ββutils
+ββinfra # μΈλΆ API ν΅ν© λ° μΈλΆ μμ€ν
κ³Όμ μ°λ μ€μ μ λ΄λΉν©λλ€.
+β ββredis
+β ββslack
+ββpersistence # λ°μ΄ν°λ² μ΄μ€μμ μνΈμμ©μ μν μμμ± κ΄λ ¨ κΈ°λ₯μ μ 곡ν©λλ€.
+β ββconfig
+β ββdomain
+β ββrepository
+ββpresentation # μ¬μ©μμ μμ²μ μ²λ¦¬νκ³ μλ΅μ λ°ννλ UI κ΄λ ¨ κΈ°λ₯μ μ 곡ν©λλ€.
+β ββcommon
+β ββconfig
+β ββcontroller
+ββservice # μ ν리μΌμ΄μ
μ ν΅μ¬ λΉμ¦λμ€ λ‘μ§μ ꡬνν©λλ€.
```
+
+### **π₯ Contributors**
+
+| κ°μμ©| λμν|
+|:-----:|:------:|
+| [KWY0218](https://github.com/KWY0218) | [sohyundoh](https://github.com/sohyundoh) |
diff --git a/build.gradle b/build.gradle
index 9b51aa02..15c40713 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ plugins {
}
group = 'com.asap'
-version = '1.1.1'
+version = '1.2.0'
java {
sourceCompatibility = '17'
diff --git a/src/main/java/com/asap/server/exception/Error.java b/src/main/java/com/asap/server/common/exception/Error.java
similarity index 98%
rename from src/main/java/com/asap/server/exception/Error.java
rename to src/main/java/com/asap/server/common/exception/Error.java
index 5ee57600..ab0402ee 100644
--- a/src/main/java/com/asap/server/exception/Error.java
+++ b/src/main/java/com/asap/server/common/exception/Error.java
@@ -1,4 +1,4 @@
-package com.asap.server.exception;
+package com.asap.server.common.exception;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/exception/Success.java b/src/main/java/com/asap/server/common/exception/Success.java
similarity index 97%
rename from src/main/java/com/asap/server/exception/Success.java
rename to src/main/java/com/asap/server/common/exception/Success.java
index 70f5e4a5..35b0de75 100644
--- a/src/main/java/com/asap/server/exception/Success.java
+++ b/src/main/java/com/asap/server/common/exception/Success.java
@@ -1,4 +1,4 @@
-package com.asap.server.exception;
+package com.asap.server.common.exception;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/exception/model/AsapException.java b/src/main/java/com/asap/server/common/exception/model/AsapException.java
similarity index 76%
rename from src/main/java/com/asap/server/exception/model/AsapException.java
rename to src/main/java/com/asap/server/common/exception/model/AsapException.java
index 86222c05..343b87a6 100644
--- a/src/main/java/com/asap/server/exception/model/AsapException.java
+++ b/src/main/java/com/asap/server/common/exception/model/AsapException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
import lombok.Getter;
@Getter
diff --git a/src/main/java/com/asap/server/exception/model/BadRequestException.java b/src/main/java/com/asap/server/common/exception/model/BadRequestException.java
similarity index 58%
rename from src/main/java/com/asap/server/exception/model/BadRequestException.java
rename to src/main/java/com/asap/server/common/exception/model/BadRequestException.java
index 899bda45..fae4ddd8 100644
--- a/src/main/java/com/asap/server/exception/model/BadRequestException.java
+++ b/src/main/java/com/asap/server/common/exception/model/BadRequestException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class BadRequestException extends AsapException {
public BadRequestException(Error error) {
diff --git a/src/main/java/com/asap/server/exception/model/ConflictException.java b/src/main/java/com/asap/server/common/exception/model/ConflictException.java
similarity index 57%
rename from src/main/java/com/asap/server/exception/model/ConflictException.java
rename to src/main/java/com/asap/server/common/exception/model/ConflictException.java
index b2b2c853..9d82b572 100644
--- a/src/main/java/com/asap/server/exception/model/ConflictException.java
+++ b/src/main/java/com/asap/server/common/exception/model/ConflictException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class ConflictException extends AsapException{
diff --git a/src/main/java/com/asap/server/exception/model/ForbiddenException.java b/src/main/java/com/asap/server/common/exception/model/ForbiddenException.java
similarity index 58%
rename from src/main/java/com/asap/server/exception/model/ForbiddenException.java
rename to src/main/java/com/asap/server/common/exception/model/ForbiddenException.java
index cf5b8bd9..5d9aee57 100644
--- a/src/main/java/com/asap/server/exception/model/ForbiddenException.java
+++ b/src/main/java/com/asap/server/common/exception/model/ForbiddenException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class ForbiddenException extends AsapException {
public ForbiddenException(Error error) {
diff --git a/src/main/java/com/asap/server/exception/model/HostTimeForbiddenException.java b/src/main/java/com/asap/server/common/exception/model/HostTimeForbiddenException.java
similarity index 61%
rename from src/main/java/com/asap/server/exception/model/HostTimeForbiddenException.java
rename to src/main/java/com/asap/server/common/exception/model/HostTimeForbiddenException.java
index be8d9f2b..bbcf530d 100644
--- a/src/main/java/com/asap/server/exception/model/HostTimeForbiddenException.java
+++ b/src/main/java/com/asap/server/common/exception/model/HostTimeForbiddenException.java
@@ -1,7 +1,7 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.controller.dto.response.HostLoginResponseDto;
-import com.asap.server.exception.Error;
+import com.asap.server.presentation.controller.dto.response.HostLoginResponseDto;
+import com.asap.server.common.exception.Error;
import lombok.Getter;
@Getter
diff --git a/src/main/java/com/asap/server/exception/model/InternalErrorException.java b/src/main/java/com/asap/server/common/exception/model/InternalErrorException.java
similarity index 60%
rename from src/main/java/com/asap/server/exception/model/InternalErrorException.java
rename to src/main/java/com/asap/server/common/exception/model/InternalErrorException.java
index 130349c9..4604e415 100644
--- a/src/main/java/com/asap/server/exception/model/InternalErrorException.java
+++ b/src/main/java/com/asap/server/common/exception/model/InternalErrorException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class InternalErrorException extends AsapException {
public InternalErrorException(final Error error) {
diff --git a/src/main/java/com/asap/server/exception/model/NotFoundException.java b/src/main/java/com/asap/server/common/exception/model/NotFoundException.java
similarity index 57%
rename from src/main/java/com/asap/server/exception/model/NotFoundException.java
rename to src/main/java/com/asap/server/common/exception/model/NotFoundException.java
index a845d6ad..cbae2c57 100644
--- a/src/main/java/com/asap/server/exception/model/NotFoundException.java
+++ b/src/main/java/com/asap/server/common/exception/model/NotFoundException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class NotFoundException extends AsapException {
public NotFoundException(Error error) {
diff --git a/src/main/java/com/asap/server/exception/model/TooManyRequestException.java b/src/main/java/com/asap/server/common/exception/model/TooManyRequestException.java
similarity index 61%
rename from src/main/java/com/asap/server/exception/model/TooManyRequestException.java
rename to src/main/java/com/asap/server/common/exception/model/TooManyRequestException.java
index 6ada2dba..6047a672 100644
--- a/src/main/java/com/asap/server/exception/model/TooManyRequestException.java
+++ b/src/main/java/com/asap/server/common/exception/model/TooManyRequestException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class TooManyRequestException extends AsapException {
diff --git a/src/main/java/com/asap/server/exception/model/UnauthorizedException.java b/src/main/java/com/asap/server/common/exception/model/UnauthorizedException.java
similarity index 59%
rename from src/main/java/com/asap/server/exception/model/UnauthorizedException.java
rename to src/main/java/com/asap/server/common/exception/model/UnauthorizedException.java
index ac46f810..e0662ff3 100644
--- a/src/main/java/com/asap/server/exception/model/UnauthorizedException.java
+++ b/src/main/java/com/asap/server/common/exception/model/UnauthorizedException.java
@@ -1,6 +1,6 @@
-package com.asap.server.exception.model;
+package com.asap.server.common.exception.model;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
public class UnauthorizedException extends AsapException {
public UnauthorizedException(Error error) {
diff --git a/src/main/java/com/asap/server/config/jwt/JwtService.java b/src/main/java/com/asap/server/common/jwt/JwtService.java
similarity index 93%
rename from src/main/java/com/asap/server/config/jwt/JwtService.java
rename to src/main/java/com/asap/server/common/jwt/JwtService.java
index 961f061e..e8a20ddc 100644
--- a/src/main/java/com/asap/server/config/jwt/JwtService.java
+++ b/src/main/java/com/asap/server/common/jwt/JwtService.java
@@ -1,7 +1,7 @@
-package com.asap.server.config.jwt;
+package com.asap.server.common.jwt;
-import com.asap.server.exception.model.UnauthorizedException;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.model.UnauthorizedException;
+import com.asap.server.common.exception.Error;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Header;
diff --git a/src/main/java/com/asap/server/controller/dto/request/PreferTimeSaveRequestDto.java b/src/main/java/com/asap/server/controller/dto/request/PreferTimeSaveRequestDto.java
deleted file mode 100644
index e3596ed4..00000000
--- a/src/main/java/com/asap/server/controller/dto/request/PreferTimeSaveRequestDto.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.asap.server.controller.dto.request;
-
-import com.asap.server.domain.enums.TimeSlot;
-import io.swagger.v3.oas.annotations.media.Schema;
-
-public record PreferTimeSaveRequestDto(
- @Schema(description = "μ νΈ μκ°(μμ)", example = "09:00")
- TimeSlot startTime,
-
- @Schema(description = "μ νΈ μκ°(λ)", example = "11:00")
- TimeSlot endTime
-) {
-}
diff --git a/src/main/java/com/asap/server/domain/PreferTime.java b/src/main/java/com/asap/server/domain/PreferTime.java
deleted file mode 100644
index 2892cf2a..00000000
--- a/src/main/java/com/asap/server/domain/PreferTime.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.asap.server.domain;
-
-import com.asap.server.domain.enums.TimeSlot;
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.EnumType;
-import jakarta.persistence.Enumerated;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
-
-@Entity
-@Getter
-@Builder
-@AllArgsConstructor
-@NoArgsConstructor(access = AccessLevel.PROTECTED)
-public class PreferTime extends AuditingTimeEntity {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- @ManyToOne
- @JoinColumn(name = "meeting_id")
- private Meeting meeting;
-
- @Column(nullable = false)
- @Enumerated(value = EnumType.STRING)
- private TimeSlot startTime;
-
- @Column(nullable = false)
- @Enumerated(value = EnumType.STRING)
- private TimeSlot endTime;
-
-}
diff --git a/src/main/java/com/asap/server/config/redis/RedisConfig.java b/src/main/java/com/asap/server/infra/redis/RedisConfig.java
similarity index 95%
rename from src/main/java/com/asap/server/config/redis/RedisConfig.java
rename to src/main/java/com/asap/server/infra/redis/RedisConfig.java
index d3f8c2c7..67acc8ef 100644
--- a/src/main/java/com/asap/server/config/redis/RedisConfig.java
+++ b/src/main/java/com/asap/server/infra/redis/RedisConfig.java
@@ -1,4 +1,4 @@
-package com.asap.server.config.redis;
+package com.asap.server.infra.redis;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
diff --git a/src/main/java/com/asap/server/common/utils/SlackUtil.java b/src/main/java/com/asap/server/infra/slack/SlackUtil.java
similarity index 99%
rename from src/main/java/com/asap/server/common/utils/SlackUtil.java
rename to src/main/java/com/asap/server/infra/slack/SlackUtil.java
index ff4614bb..8a44713c 100644
--- a/src/main/java/com/asap/server/common/utils/SlackUtil.java
+++ b/src/main/java/com/asap/server/infra/slack/SlackUtil.java
@@ -1,4 +1,4 @@
-package com.asap.server.common.utils;
+package com.asap.server.infra.slack;
import com.slack.api.Slack;
import com.slack.api.model.block.Blocks;
diff --git a/src/main/java/com/asap/server/config/querydsl/QueryDslConfig.java b/src/main/java/com/asap/server/persistence/config/querydsl/QueryDslConfig.java
similarity index 90%
rename from src/main/java/com/asap/server/config/querydsl/QueryDslConfig.java
rename to src/main/java/com/asap/server/persistence/config/querydsl/QueryDslConfig.java
index b6002d55..be82f82e 100644
--- a/src/main/java/com/asap/server/config/querydsl/QueryDslConfig.java
+++ b/src/main/java/com/asap/server/persistence/config/querydsl/QueryDslConfig.java
@@ -1,4 +1,4 @@
-package com.asap.server.config.querydsl;
+package com.asap.server.persistence.config.querydsl;
import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.context.annotation.Bean;
diff --git a/src/main/java/com/asap/server/domain/AuditingTimeEntity.java b/src/main/java/com/asap/server/persistence/domain/AuditingTimeEntity.java
similarity index 92%
rename from src/main/java/com/asap/server/domain/AuditingTimeEntity.java
rename to src/main/java/com/asap/server/persistence/domain/AuditingTimeEntity.java
index bb33afc4..929d3216 100644
--- a/src/main/java/com/asap/server/domain/AuditingTimeEntity.java
+++ b/src/main/java/com/asap/server/persistence/domain/AuditingTimeEntity.java
@@ -1,4 +1,4 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
import java.time.LocalDateTime;
import jakarta.persistence.EntityListeners;
diff --git a/src/main/java/com/asap/server/domain/AvailableDate.java b/src/main/java/com/asap/server/persistence/domain/AvailableDate.java
similarity index 94%
rename from src/main/java/com/asap/server/domain/AvailableDate.java
rename to src/main/java/com/asap/server/persistence/domain/AvailableDate.java
index d9fd52c5..43173da6 100644
--- a/src/main/java/com/asap/server/domain/AvailableDate.java
+++ b/src/main/java/com/asap/server/persistence/domain/AvailableDate.java
@@ -1,4 +1,4 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
diff --git a/src/main/java/com/asap/server/domain/ConfirmedDateTime.java b/src/main/java/com/asap/server/persistence/domain/ConfirmedDateTime.java
similarity index 90%
rename from src/main/java/com/asap/server/domain/ConfirmedDateTime.java
rename to src/main/java/com/asap/server/persistence/domain/ConfirmedDateTime.java
index 9520d415..0730afcf 100644
--- a/src/main/java/com/asap/server/domain/ConfirmedDateTime.java
+++ b/src/main/java/com/asap/server/persistence/domain/ConfirmedDateTime.java
@@ -1,4 +1,4 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/domain/Meeting.java b/src/main/java/com/asap/server/persistence/domain/Meeting.java
similarity index 95%
rename from src/main/java/com/asap/server/domain/Meeting.java
rename to src/main/java/com/asap/server/persistence/domain/Meeting.java
index f8ff1ba2..f87032ba 100644
--- a/src/main/java/com/asap/server/domain/Meeting.java
+++ b/src/main/java/com/asap/server/persistence/domain/Meeting.java
@@ -1,6 +1,6 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
-import com.asap.server.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.Duration;
import jakarta.persistence.Column;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
diff --git a/src/main/java/com/asap/server/domain/Place.java b/src/main/java/com/asap/server/persistence/domain/Place.java
similarity index 84%
rename from src/main/java/com/asap/server/domain/Place.java
rename to src/main/java/com/asap/server/persistence/domain/Place.java
index b99c42b0..10c9cec8 100644
--- a/src/main/java/com/asap/server/domain/Place.java
+++ b/src/main/java/com/asap/server/persistence/domain/Place.java
@@ -1,6 +1,6 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
-import com.asap.server.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.PlaceType;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/domain/TimeBlock.java b/src/main/java/com/asap/server/persistence/domain/TimeBlock.java
similarity index 93%
rename from src/main/java/com/asap/server/domain/TimeBlock.java
rename to src/main/java/com/asap/server/persistence/domain/TimeBlock.java
index cca4cc4e..40bae8e7 100644
--- a/src/main/java/com/asap/server/domain/TimeBlock.java
+++ b/src/main/java/com/asap/server/persistence/domain/TimeBlock.java
@@ -1,6 +1,6 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.FetchType;
diff --git a/src/main/java/com/asap/server/domain/TimeBlockUser.java b/src/main/java/com/asap/server/persistence/domain/TimeBlockUser.java
similarity index 95%
rename from src/main/java/com/asap/server/domain/TimeBlockUser.java
rename to src/main/java/com/asap/server/persistence/domain/TimeBlockUser.java
index d8db05c6..7d0047f6 100644
--- a/src/main/java/com/asap/server/domain/TimeBlockUser.java
+++ b/src/main/java/com/asap/server/persistence/domain/TimeBlockUser.java
@@ -1,4 +1,4 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
diff --git a/src/main/java/com/asap/server/domain/User.java b/src/main/java/com/asap/server/persistence/domain/User.java
similarity index 92%
rename from src/main/java/com/asap/server/domain/User.java
rename to src/main/java/com/asap/server/persistence/domain/User.java
index fab1abc6..0251a1f9 100644
--- a/src/main/java/com/asap/server/domain/User.java
+++ b/src/main/java/com/asap/server/persistence/domain/User.java
@@ -1,6 +1,6 @@
-package com.asap.server.domain;
+package com.asap.server.persistence.domain;
-import com.asap.server.domain.enums.Role;
+import com.asap.server.persistence.domain.enums.Role;
import jakarta.persistence.FetchType;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/domain/enums/Duration.java b/src/main/java/com/asap/server/persistence/domain/enums/Duration.java
similarity index 83%
rename from src/main/java/com/asap/server/domain/enums/Duration.java
rename to src/main/java/com/asap/server/persistence/domain/enums/Duration.java
index 59fc8519..2ad346f6 100644
--- a/src/main/java/com/asap/server/domain/enums/Duration.java
+++ b/src/main/java/com/asap/server/persistence/domain/enums/Duration.java
@@ -1,7 +1,7 @@
-package com.asap.server.domain.enums;
+package com.asap.server.persistence.domain.enums;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.BadRequestException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.stream.Stream;
diff --git a/src/main/java/com/asap/server/domain/enums/PlaceType.java b/src/main/java/com/asap/server/persistence/domain/enums/PlaceType.java
similarity index 81%
rename from src/main/java/com/asap/server/domain/enums/PlaceType.java
rename to src/main/java/com/asap/server/persistence/domain/enums/PlaceType.java
index b5ed0c34..c924016e 100644
--- a/src/main/java/com/asap/server/domain/enums/PlaceType.java
+++ b/src/main/java/com/asap/server/persistence/domain/enums/PlaceType.java
@@ -1,7 +1,7 @@
-package com.asap.server.domain.enums;
+package com.asap.server.persistence.domain.enums;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.BadRequestException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/domain/enums/Role.java b/src/main/java/com/asap/server/persistence/domain/enums/Role.java
similarity index 82%
rename from src/main/java/com/asap/server/domain/enums/Role.java
rename to src/main/java/com/asap/server/persistence/domain/enums/Role.java
index d6c4f083..f1d1e182 100644
--- a/src/main/java/com/asap/server/domain/enums/Role.java
+++ b/src/main/java/com/asap/server/persistence/domain/enums/Role.java
@@ -1,4 +1,4 @@
-package com.asap.server.domain.enums;
+package com.asap.server.persistence.domain.enums;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/domain/enums/TimeSlot.java b/src/main/java/com/asap/server/persistence/domain/enums/TimeSlot.java
similarity index 93%
rename from src/main/java/com/asap/server/domain/enums/TimeSlot.java
rename to src/main/java/com/asap/server/persistence/domain/enums/TimeSlot.java
index ad520ff1..f1cbab1a 100644
--- a/src/main/java/com/asap/server/domain/enums/TimeSlot.java
+++ b/src/main/java/com/asap/server/persistence/domain/enums/TimeSlot.java
@@ -1,7 +1,7 @@
-package com.asap.server.domain.enums;
+package com.asap.server.persistence.domain.enums;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.BadRequestException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/repository/AvailableDateRepository.java b/src/main/java/com/asap/server/persistence/repository/AvailableDateRepository.java
similarity index 73%
rename from src/main/java/com/asap/server/repository/AvailableDateRepository.java
rename to src/main/java/com/asap/server/persistence/repository/AvailableDateRepository.java
index 4a602612..7a73304c 100644
--- a/src/main/java/com/asap/server/repository/AvailableDateRepository.java
+++ b/src/main/java/com/asap/server/persistence/repository/AvailableDateRepository.java
@@ -1,7 +1,7 @@
-package com.asap.server.repository;
+package com.asap.server.persistence.repository;
-import com.asap.server.domain.AvailableDate;
-import com.asap.server.domain.Meeting;
+import com.asap.server.persistence.domain.AvailableDate;
+import com.asap.server.persistence.domain.Meeting;
import org.springframework.data.repository.Repository;
import java.time.LocalDate;
diff --git a/src/main/java/com/asap/server/repository/TimeBlockUserRepository.java b/src/main/java/com/asap/server/persistence/repository/TimeBlockUserRepository.java
similarity index 62%
rename from src/main/java/com/asap/server/repository/TimeBlockUserRepository.java
rename to src/main/java/com/asap/server/persistence/repository/TimeBlockUserRepository.java
index 40495cbc..0d5900c8 100644
--- a/src/main/java/com/asap/server/repository/TimeBlockUserRepository.java
+++ b/src/main/java/com/asap/server/persistence/repository/TimeBlockUserRepository.java
@@ -1,8 +1,8 @@
-package com.asap.server.repository;
+package com.asap.server.persistence.repository;
-import com.asap.server.domain.TimeBlock;
-import com.asap.server.domain.TimeBlockUser;
-import com.asap.server.domain.User;
+import com.asap.server.persistence.domain.TimeBlock;
+import com.asap.server.persistence.domain.TimeBlockUser;
+import com.asap.server.persistence.domain.User;
import org.springframework.data.repository.Repository;
import java.util.List;
diff --git a/src/main/java/com/asap/server/repository/meeting/MeetingRepository.java b/src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepository.java
similarity index 71%
rename from src/main/java/com/asap/server/repository/meeting/MeetingRepository.java
rename to src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepository.java
index 746762bd..a62912a3 100644
--- a/src/main/java/com/asap/server/repository/meeting/MeetingRepository.java
+++ b/src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepository.java
@@ -1,6 +1,6 @@
-package com.asap.server.repository.meeting;
+package com.asap.server.persistence.repository.meeting;
-import com.asap.server.domain.Meeting;
+import com.asap.server.persistence.domain.Meeting;
import org.springframework.data.repository.Repository;
import java.util.Optional;
diff --git a/src/main/java/com/asap/server/repository/meeting/MeetingRepositoryCustom.java b/src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepositoryCustom.java
similarity index 54%
rename from src/main/java/com/asap/server/repository/meeting/MeetingRepositoryCustom.java
rename to src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepositoryCustom.java
index 3583a156..dcbd1e63 100644
--- a/src/main/java/com/asap/server/repository/meeting/MeetingRepositoryCustom.java
+++ b/src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepositoryCustom.java
@@ -1,6 +1,6 @@
-package com.asap.server.repository.meeting;
+package com.asap.server.persistence.repository.meeting;
-import com.asap.server.domain.Meeting;
+import com.asap.server.persistence.domain.Meeting;
import java.util.Optional;
diff --git a/src/main/java/com/asap/server/repository/meeting/MeetingRepositoryImpl.java b/src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepositoryImpl.java
similarity index 72%
rename from src/main/java/com/asap/server/repository/meeting/MeetingRepositoryImpl.java
rename to src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepositoryImpl.java
index 7165d485..7ece5fd6 100644
--- a/src/main/java/com/asap/server/repository/meeting/MeetingRepositoryImpl.java
+++ b/src/main/java/com/asap/server/persistence/repository/meeting/MeetingRepositoryImpl.java
@@ -1,13 +1,12 @@
-package com.asap.server.repository.meeting;
+package com.asap.server.persistence.repository.meeting;
-import com.asap.server.domain.Meeting;
-import com.querydsl.jpa.impl.JPAQueryFactory;
-import lombok.RequiredArgsConstructor;
+import static com.asap.server.persistence.domain.QMeeting.meeting;
+import static com.asap.server.persistence.domain.QUser.user;
+import com.asap.server.persistence.domain.Meeting;
+import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.Optional;
-
-import static com.asap.server.domain.QMeeting.meeting;
-import static com.asap.server.domain.QUser.user;
+import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class MeetingRepositoryImpl implements MeetingRepositoryCustom {
diff --git a/src/main/java/com/asap/server/repository/timeblock/TimeBlockRepository.java b/src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepository.java
similarity index 66%
rename from src/main/java/com/asap/server/repository/timeblock/TimeBlockRepository.java
rename to src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepository.java
index 74f24144..887a4673 100644
--- a/src/main/java/com/asap/server/repository/timeblock/TimeBlockRepository.java
+++ b/src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepository.java
@@ -1,8 +1,8 @@
-package com.asap.server.repository.timeblock;
+package com.asap.server.persistence.repository.timeblock;
-import com.asap.server.domain.AvailableDate;
-import com.asap.server.domain.TimeBlock;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.AvailableDate;
+import com.asap.server.persistence.domain.TimeBlock;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import org.springframework.data.repository.Repository;
import java.util.List;
diff --git a/src/main/java/com/asap/server/repository/timeblock/TimeBlockRepositoryCustom.java b/src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryCustom.java
similarity index 52%
rename from src/main/java/com/asap/server/repository/timeblock/TimeBlockRepositoryCustom.java
rename to src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryCustom.java
index 64bef626..1dd2afb3 100644
--- a/src/main/java/com/asap/server/repository/timeblock/TimeBlockRepositoryCustom.java
+++ b/src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryCustom.java
@@ -1,6 +1,6 @@
-package com.asap.server.repository.timeblock;
+package com.asap.server.persistence.repository.timeblock;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import java.util.List;
public interface TimeBlockRepositoryCustom {
diff --git a/src/main/java/com/asap/server/repository/timeblock/TimeBlockRepositoryImpl.java b/src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryImpl.java
similarity index 71%
rename from src/main/java/com/asap/server/repository/timeblock/TimeBlockRepositoryImpl.java
rename to src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryImpl.java
index c8b3106e..30362dce 100644
--- a/src/main/java/com/asap/server/repository/timeblock/TimeBlockRepositoryImpl.java
+++ b/src/main/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryImpl.java
@@ -1,11 +1,11 @@
-package com.asap.server.repository.timeblock;
+package com.asap.server.persistence.repository.timeblock;
-import static com.asap.server.domain.QAvailableDate.availableDate;
-import static com.asap.server.domain.QTimeBlock.timeBlock;
-import static com.asap.server.domain.QTimeBlockUser.timeBlockUser;
+import static com.asap.server.persistence.domain.QAvailableDate.availableDate;
+import static com.asap.server.persistence.domain.QTimeBlock.timeBlock;
+import static com.asap.server.persistence.domain.QTimeBlockUser.timeBlockUser;
-import com.asap.server.repository.timeblock.dto.QTimeBlockDto;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.repository.timeblock.dto.QTimeBlockDto;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.List;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/asap/server/repository/timeblock/dto/TimeBlockDto.java b/src/main/java/com/asap/server/persistence/repository/timeblock/dto/TimeBlockDto.java
similarity index 83%
rename from src/main/java/com/asap/server/repository/timeblock/dto/TimeBlockDto.java
rename to src/main/java/com/asap/server/persistence/repository/timeblock/dto/TimeBlockDto.java
index e1fca38d..8a739332 100644
--- a/src/main/java/com/asap/server/repository/timeblock/dto/TimeBlockDto.java
+++ b/src/main/java/com/asap/server/persistence/repository/timeblock/dto/TimeBlockDto.java
@@ -1,6 +1,6 @@
-package com.asap.server.repository.timeblock.dto;
+package com.asap.server.persistence.repository.timeblock.dto;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import com.querydsl.core.annotations.QueryProjection;
import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/com/asap/server/repository/user/UserRepository.java b/src/main/java/com/asap/server/persistence/repository/user/UserRepository.java
similarity index 75%
rename from src/main/java/com/asap/server/repository/user/UserRepository.java
rename to src/main/java/com/asap/server/persistence/repository/user/UserRepository.java
index 844d3162..15dbef15 100644
--- a/src/main/java/com/asap/server/repository/user/UserRepository.java
+++ b/src/main/java/com/asap/server/persistence/repository/user/UserRepository.java
@@ -1,7 +1,7 @@
-package com.asap.server.repository.user;
+package com.asap.server.persistence.repository.user;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.User;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.User;
import org.springframework.data.repository.Repository;
import java.util.List;
diff --git a/src/main/java/com/asap/server/repository/user/UserRepositoryCustom.java b/src/main/java/com/asap/server/persistence/repository/user/UserRepositoryCustom.java
similarity index 67%
rename from src/main/java/com/asap/server/repository/user/UserRepositoryCustom.java
rename to src/main/java/com/asap/server/persistence/repository/user/UserRepositoryCustom.java
index 159acae4..1a1a7a66 100644
--- a/src/main/java/com/asap/server/repository/user/UserRepositoryCustom.java
+++ b/src/main/java/com/asap/server/persistence/repository/user/UserRepositoryCustom.java
@@ -1,7 +1,7 @@
-package com.asap.server.repository.user;
+package com.asap.server.persistence.repository.user;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import com.asap.server.service.vo.UserVo;
import java.time.LocalDate;
diff --git a/src/main/java/com/asap/server/repository/user/UserRepositoryImpl.java b/src/main/java/com/asap/server/persistence/repository/user/UserRepositoryImpl.java
similarity index 78%
rename from src/main/java/com/asap/server/repository/user/UserRepositoryImpl.java
rename to src/main/java/com/asap/server/persistence/repository/user/UserRepositoryImpl.java
index 2926b249..9f301950 100644
--- a/src/main/java/com/asap/server/repository/user/UserRepositoryImpl.java
+++ b/src/main/java/com/asap/server/persistence/repository/user/UserRepositoryImpl.java
@@ -1,12 +1,12 @@
-package com.asap.server.repository.user;
+package com.asap.server.persistence.repository.user;
-import static com.asap.server.domain.QAvailableDate.availableDate;
-import static com.asap.server.domain.QTimeBlock.timeBlock;
-import static com.asap.server.domain.QTimeBlockUser.timeBlockUser;
-import static com.asap.server.domain.QUser.user;
+import static com.asap.server.persistence.domain.QAvailableDate.availableDate;
+import static com.asap.server.persistence.domain.QTimeBlock.timeBlock;
+import static com.asap.server.persistence.domain.QTimeBlockUser.timeBlockUser;
+import static com.asap.server.persistence.domain.QUser.user;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import com.asap.server.service.vo.QUserVo;
import com.asap.server.service.vo.UserVo;
import com.querydsl.jpa.impl.JPAQueryFactory;
diff --git a/src/main/java/com/asap/server/common/advice/ControllerExceptionAdvice.java b/src/main/java/com/asap/server/presentation/common/advice/ControllerExceptionAdvice.java
similarity index 85%
rename from src/main/java/com/asap/server/common/advice/ControllerExceptionAdvice.java
rename to src/main/java/com/asap/server/presentation/common/advice/ControllerExceptionAdvice.java
index d1538be6..c4c7267f 100644
--- a/src/main/java/com/asap/server/common/advice/ControllerExceptionAdvice.java
+++ b/src/main/java/com/asap/server/presentation/common/advice/ControllerExceptionAdvice.java
@@ -1,19 +1,19 @@
-package com.asap.server.common.advice;
-
-import com.asap.server.common.dto.ErrorDataResponse;
-import com.asap.server.common.dto.ErrorResponse;
-import com.asap.server.common.utils.SlackUtil;
-import com.asap.server.controller.dto.response.HostLoginResponseDto;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.AsapException;
-import com.asap.server.exception.model.BadRequestException;
-import com.asap.server.exception.model.ConflictException;
-import com.asap.server.exception.model.ForbiddenException;
-import com.asap.server.exception.model.HostTimeForbiddenException;
-import com.asap.server.exception.model.InternalErrorException;
-import com.asap.server.exception.model.NotFoundException;
-import com.asap.server.exception.model.TooManyRequestException;
-import com.asap.server.exception.model.UnauthorizedException;
+package com.asap.server.presentation.common.advice;
+
+import com.asap.server.presentation.common.dto.ErrorDataResponse;
+import com.asap.server.presentation.common.dto.ErrorResponse;
+import com.asap.server.infra.slack.SlackUtil;
+import com.asap.server.presentation.controller.dto.response.HostLoginResponseDto;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.AsapException;
+import com.asap.server.common.exception.model.BadRequestException;
+import com.asap.server.common.exception.model.ConflictException;
+import com.asap.server.common.exception.model.ForbiddenException;
+import com.asap.server.common.exception.model.HostTimeForbiddenException;
+import com.asap.server.common.exception.model.InternalErrorException;
+import com.asap.server.common.exception.model.NotFoundException;
+import com.asap.server.common.exception.model.TooManyRequestException;
+import com.asap.server.common.exception.model.UnauthorizedException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.ValidationException;
@@ -32,7 +32,7 @@
import java.io.IOException;
import java.time.DateTimeException;
-import static com.asap.server.exception.Error.METHOD_NOT_ALLOWED_EXCEPTION;
+import static com.asap.server.common.exception.Error.METHOD_NOT_ALLOWED_EXCEPTION;
@Slf4j
@RestControllerAdvice
diff --git a/src/main/java/com/asap/server/common/dto/ErrorDataResponse.java b/src/main/java/com/asap/server/presentation/common/dto/ErrorDataResponse.java
similarity index 85%
rename from src/main/java/com/asap/server/common/dto/ErrorDataResponse.java
rename to src/main/java/com/asap/server/presentation/common/dto/ErrorDataResponse.java
index a708a20b..172f6911 100644
--- a/src/main/java/com/asap/server/common/dto/ErrorDataResponse.java
+++ b/src/main/java/com/asap/server/presentation/common/dto/ErrorDataResponse.java
@@ -1,6 +1,6 @@
-package com.asap.server.common.dto;
+package com.asap.server.presentation.common.dto;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
import lombok.Getter;
@Getter
diff --git a/src/main/java/com/asap/server/common/dto/ErrorResponse.java b/src/main/java/com/asap/server/presentation/common/dto/ErrorResponse.java
similarity index 84%
rename from src/main/java/com/asap/server/common/dto/ErrorResponse.java
rename to src/main/java/com/asap/server/presentation/common/dto/ErrorResponse.java
index a78c003c..0cdb706f 100644
--- a/src/main/java/com/asap/server/common/dto/ErrorResponse.java
+++ b/src/main/java/com/asap/server/presentation/common/dto/ErrorResponse.java
@@ -1,6 +1,6 @@
-package com.asap.server.common.dto;
+package com.asap.server.presentation.common.dto;
-import com.asap.server.exception.Error;
+import com.asap.server.common.exception.Error;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
diff --git a/src/main/java/com/asap/server/common/dto/SuccessResponse.java b/src/main/java/com/asap/server/presentation/common/dto/SuccessResponse.java
similarity index 88%
rename from src/main/java/com/asap/server/common/dto/SuccessResponse.java
rename to src/main/java/com/asap/server/presentation/common/dto/SuccessResponse.java
index ab8a496e..7b71480e 100644
--- a/src/main/java/com/asap/server/common/dto/SuccessResponse.java
+++ b/src/main/java/com/asap/server/presentation/common/dto/SuccessResponse.java
@@ -1,6 +1,6 @@
-package com.asap.server.common.dto;
+package com.asap.server.presentation.common.dto;
-import com.asap.server.exception.Success;
+import com.asap.server.common.exception.Success;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/com/asap/server/common/utils/SecureUrlUtil.java b/src/main/java/com/asap/server/presentation/common/secure/SecureUrlUtil.java
similarity index 88%
rename from src/main/java/com/asap/server/common/utils/SecureUrlUtil.java
rename to src/main/java/com/asap/server/presentation/common/secure/SecureUrlUtil.java
index 452a5e35..54d45ddd 100644
--- a/src/main/java/com/asap/server/common/utils/SecureUrlUtil.java
+++ b/src/main/java/com/asap/server/presentation/common/secure/SecureUrlUtil.java
@@ -1,4 +1,4 @@
-package com.asap.server.common.utils;
+package com.asap.server.presentation.common.secure;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/asap/server/common/filter/CustomHttpServletRequestWrapper.java b/src/main/java/com/asap/server/presentation/common/wrapper/CustomHttpServletRequestWrapper.java
similarity index 97%
rename from src/main/java/com/asap/server/common/filter/CustomHttpServletRequestWrapper.java
rename to src/main/java/com/asap/server/presentation/common/wrapper/CustomHttpServletRequestWrapper.java
index 5cd33593..3eb4765f 100644
--- a/src/main/java/com/asap/server/common/filter/CustomHttpServletRequestWrapper.java
+++ b/src/main/java/com/asap/server/presentation/common/wrapper/CustomHttpServletRequestWrapper.java
@@ -1,4 +1,4 @@
-package com.asap.server.common.filter;
+package com.asap.server.presentation.common.wrapper;
import jakarta.servlet.ReadListener;
import jakarta.servlet.ServletInputStream;
diff --git a/src/main/java/com/asap/server/config/WebConfig.java b/src/main/java/com/asap/server/presentation/config/WebConfig.java
similarity index 85%
rename from src/main/java/com/asap/server/config/WebConfig.java
rename to src/main/java/com/asap/server/presentation/config/WebConfig.java
index 42143da7..4227716e 100644
--- a/src/main/java/com/asap/server/config/WebConfig.java
+++ b/src/main/java/com/asap/server/presentation/config/WebConfig.java
@@ -1,8 +1,8 @@
-package com.asap.server.config;
+package com.asap.server.presentation.config;
-import com.asap.server.common.interceptor.DuplicatedInterceptor;
-import com.asap.server.config.resolver.meeting.MeetingPathVariableResolver;
-import com.asap.server.config.resolver.user.UserIdResolver;
+import com.asap.server.presentation.config.interceptor.DuplicatedInterceptor;
+import com.asap.server.presentation.config.resolver.meeting.MeetingPathVariableResolver;
+import com.asap.server.presentation.config.resolver.user.UserIdResolver;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/asap/server/common/aspect/LoggingAspect.java b/src/main/java/com/asap/server/presentation/config/aspect/LoggingAspect.java
similarity index 81%
rename from src/main/java/com/asap/server/common/aspect/LoggingAspect.java
rename to src/main/java/com/asap/server/presentation/config/aspect/LoggingAspect.java
index 9556594b..4e5d5d86 100644
--- a/src/main/java/com/asap/server/common/aspect/LoggingAspect.java
+++ b/src/main/java/com/asap/server/presentation/config/aspect/LoggingAspect.java
@@ -1,6 +1,6 @@
-package com.asap.server.common.aspect;
+package com.asap.server.presentation.config.aspect;
-import com.asap.server.common.filter.CustomHttpServletRequestWrapper;
+import com.asap.server.presentation.common.wrapper.CustomHttpServletRequestWrapper;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
@@ -20,15 +20,15 @@
@Slf4j
public class LoggingAspect {
- @Pointcut("execution(* com.asap.server.controller..*(..)) || ( execution(* com.asap.server.common.advice..*(..)) && !execution(* com.asap.server.common.advice.ControllerExceptionAdvice.handleException*(..)))")
+ @Pointcut("execution(* com.asap.server.presentation.controller..*(..)) || ( execution(* com.asap.server.presentation.common.advice..*(..)) && !execution(* com.asap.server.presentation.common.advice.ControllerExceptionAdvice.handleException*(..)))")
public void controllerInfoLevelExecute() {
}
- @Pointcut("execution(* com.asap.server.common.advice.ControllerExceptionAdvice.handleException*(..))")
+ @Pointcut("execution(* com.asap.server.presentation.common.advice.ControllerExceptionAdvice.handleException*(..))")
public void controllerErrorLevelExecute() {
}
- @Around("com.asap.server.common.aspect.LoggingAspect.controllerInfoLevelExecute()")
+ @Around("com.asap.server.presentation.config.aspect.LoggingAspect.controllerInfoLevelExecute()")
public Object requestInfoLevelLogging(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
long startAt = System.currentTimeMillis();
@@ -47,7 +47,7 @@ public Object requestInfoLevelLogging(ProceedingJoinPoint proceedingJoinPoint) t
return returnValue;
}
- @Around("com.asap.server.common.aspect.LoggingAspect.controllerErrorLevelExecute()")
+ @Around("com.asap.server.presentation.config.aspect.LoggingAspect.controllerErrorLevelExecute()")
public Object requestErrorLevelLogging(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
long startAt = System.currentTimeMillis();
diff --git a/src/main/java/com/asap/server/common/filter/CustomServletWrappingFilter.java b/src/main/java/com/asap/server/presentation/config/filter/CustomServletWrappingFilter.java
similarity index 83%
rename from src/main/java/com/asap/server/common/filter/CustomServletWrappingFilter.java
rename to src/main/java/com/asap/server/presentation/config/filter/CustomServletWrappingFilter.java
index 9bf7cea3..f2ecb3cb 100644
--- a/src/main/java/com/asap/server/common/filter/CustomServletWrappingFilter.java
+++ b/src/main/java/com/asap/server/presentation/config/filter/CustomServletWrappingFilter.java
@@ -1,5 +1,6 @@
-package com.asap.server.common.filter;
+package com.asap.server.presentation.config.filter;
+import com.asap.server.presentation.common.wrapper.CustomHttpServletRequestWrapper;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
diff --git a/src/main/java/com/asap/server/config/filter/HttpRequestConfig.java b/src/main/java/com/asap/server/presentation/config/filter/HttpRequestConfig.java
similarity index 84%
rename from src/main/java/com/asap/server/config/filter/HttpRequestConfig.java
rename to src/main/java/com/asap/server/presentation/config/filter/HttpRequestConfig.java
index 3520a246..453babe2 100644
--- a/src/main/java/com/asap/server/config/filter/HttpRequestConfig.java
+++ b/src/main/java/com/asap/server/presentation/config/filter/HttpRequestConfig.java
@@ -1,6 +1,5 @@
-package com.asap.server.config.filter;
+package com.asap.server.presentation.config.filter;
-import com.asap.server.common.filter.CustomServletWrappingFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/asap/server/common/interceptor/DuplicatedInterceptor.java b/src/main/java/com/asap/server/presentation/config/interceptor/DuplicatedInterceptor.java
similarity index 90%
rename from src/main/java/com/asap/server/common/interceptor/DuplicatedInterceptor.java
rename to src/main/java/com/asap/server/presentation/config/interceptor/DuplicatedInterceptor.java
index ef65eb1a..b01a2e12 100644
--- a/src/main/java/com/asap/server/common/interceptor/DuplicatedInterceptor.java
+++ b/src/main/java/com/asap/server/presentation/config/interceptor/DuplicatedInterceptor.java
@@ -1,9 +1,9 @@
-package com.asap.server.common.interceptor;
+package com.asap.server.presentation.config.interceptor;
-import com.asap.server.common.filter.CustomHttpServletRequestWrapper;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.TooManyRequestException;
+import com.asap.server.presentation.common.wrapper.CustomHttpServletRequestWrapper;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.TooManyRequestException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/asap/server/config/resolver/meeting/MeetingPathVariable.java b/src/main/java/com/asap/server/presentation/config/resolver/meeting/MeetingPathVariable.java
similarity index 81%
rename from src/main/java/com/asap/server/config/resolver/meeting/MeetingPathVariable.java
rename to src/main/java/com/asap/server/presentation/config/resolver/meeting/MeetingPathVariable.java
index 26b75b8b..b8841030 100644
--- a/src/main/java/com/asap/server/config/resolver/meeting/MeetingPathVariable.java
+++ b/src/main/java/com/asap/server/presentation/config/resolver/meeting/MeetingPathVariable.java
@@ -1,4 +1,4 @@
-package com.asap.server.config.resolver.meeting;
+package com.asap.server.presentation.config.resolver.meeting;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/com/asap/server/config/resolver/meeting/MeetingPathVariableResolver.java b/src/main/java/com/asap/server/presentation/config/resolver/meeting/MeetingPathVariableResolver.java
similarity index 85%
rename from src/main/java/com/asap/server/config/resolver/meeting/MeetingPathVariableResolver.java
rename to src/main/java/com/asap/server/presentation/config/resolver/meeting/MeetingPathVariableResolver.java
index 58c774f2..40e79606 100644
--- a/src/main/java/com/asap/server/config/resolver/meeting/MeetingPathVariableResolver.java
+++ b/src/main/java/com/asap/server/presentation/config/resolver/meeting/MeetingPathVariableResolver.java
@@ -1,7 +1,7 @@
-package com.asap.server.config.resolver.meeting;
+package com.asap.server.presentation.config.resolver.meeting;
-import com.asap.server.common.utils.SecureUrlUtil;
-import com.asap.server.exception.model.BadRequestException;
+import com.asap.server.presentation.common.secure.SecureUrlUtil;
+import com.asap.server.common.exception.model.BadRequestException;
import lombok.RequiredArgsConstructor;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
@@ -14,7 +14,7 @@
import jakarta.servlet.http.HttpServletRequest;
import java.util.Map;
-import static com.asap.server.exception.Error.INVALID_MEETING_URL_EXCEPTION;
+import static com.asap.server.common.exception.Error.INVALID_MEETING_URL_EXCEPTION;
@Component
@RequiredArgsConstructor
diff --git a/src/main/java/com/asap/server/config/resolver/user/UserId.java b/src/main/java/com/asap/server/presentation/config/resolver/user/UserId.java
similarity index 81%
rename from src/main/java/com/asap/server/config/resolver/user/UserId.java
rename to src/main/java/com/asap/server/presentation/config/resolver/user/UserId.java
index 5bdf6108..5523fe59 100644
--- a/src/main/java/com/asap/server/config/resolver/user/UserId.java
+++ b/src/main/java/com/asap/server/presentation/config/resolver/user/UserId.java
@@ -1,4 +1,4 @@
-package com.asap.server.config.resolver.user;
+package com.asap.server.presentation.config.resolver.user;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/com/asap/server/config/resolver/user/UserIdResolver.java b/src/main/java/com/asap/server/presentation/config/resolver/user/UserIdResolver.java
similarity index 86%
rename from src/main/java/com/asap/server/config/resolver/user/UserIdResolver.java
rename to src/main/java/com/asap/server/presentation/config/resolver/user/UserIdResolver.java
index 95c0a89b..f78fe526 100644
--- a/src/main/java/com/asap/server/config/resolver/user/UserIdResolver.java
+++ b/src/main/java/com/asap/server/presentation/config/resolver/user/UserIdResolver.java
@@ -1,9 +1,9 @@
-package com.asap.server.config.resolver.user;
+package com.asap.server.presentation.config.resolver.user;
-import com.asap.server.config.jwt.JwtService;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
-import com.asap.server.exception.model.UnauthorizedException;
+import com.asap.server.common.jwt.JwtService;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.BadRequestException;
+import com.asap.server.common.exception.model.UnauthorizedException;
import lombok.RequiredArgsConstructor;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/asap/server/config/swagger/SwaggerConfig.java b/src/main/java/com/asap/server/presentation/config/swagger/SwaggerConfig.java
similarity index 94%
rename from src/main/java/com/asap/server/config/swagger/SwaggerConfig.java
rename to src/main/java/com/asap/server/presentation/config/swagger/SwaggerConfig.java
index 90561554..1914f453 100644
--- a/src/main/java/com/asap/server/config/swagger/SwaggerConfig.java
+++ b/src/main/java/com/asap/server/presentation/config/swagger/SwaggerConfig.java
@@ -1,4 +1,4 @@
-package com.asap.server.config.swagger;
+package com.asap.server.presentation.config.swagger;
import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
import io.swagger.v3.oas.annotations.security.SecurityScheme;
diff --git a/src/main/java/com/asap/server/controller/MeetingController.java b/src/main/java/com/asap/server/presentation/controller/MeetingController.java
similarity index 92%
rename from src/main/java/com/asap/server/controller/MeetingController.java
rename to src/main/java/com/asap/server/presentation/controller/MeetingController.java
index 53d1aaa7..cc01096a 100644
--- a/src/main/java/com/asap/server/controller/MeetingController.java
+++ b/src/main/java/com/asap/server/presentation/controller/MeetingController.java
@@ -1,18 +1,18 @@
-package com.asap.server.controller;
+package com.asap.server.presentation.controller;
-import com.asap.server.common.dto.ErrorResponse;
-import com.asap.server.common.dto.SuccessResponse;
-import com.asap.server.config.resolver.meeting.MeetingPathVariable;
-import com.asap.server.config.resolver.user.UserId;
-import com.asap.server.controller.dto.request.MeetingConfirmRequestDto;
-import com.asap.server.controller.dto.request.MeetingSaveRequestDto;
-import com.asap.server.controller.dto.response.BestMeetingTimeResponseDto;
-import com.asap.server.controller.dto.response.FixedMeetingResponseDto;
-import com.asap.server.controller.dto.response.MeetingSaveResponseDto;
-import com.asap.server.controller.dto.response.MeetingScheduleResponseDto;
-import com.asap.server.controller.dto.response.MeetingTitleResponseDto;
-import com.asap.server.controller.dto.response.TimeTableResponseDto;
-import com.asap.server.exception.Success;
+import com.asap.server.presentation.common.dto.ErrorResponse;
+import com.asap.server.presentation.common.dto.SuccessResponse;
+import com.asap.server.presentation.config.resolver.meeting.MeetingPathVariable;
+import com.asap.server.presentation.config.resolver.user.UserId;
+import com.asap.server.presentation.controller.dto.request.MeetingConfirmRequestDto;
+import com.asap.server.presentation.controller.dto.request.MeetingSaveRequestDto;
+import com.asap.server.presentation.controller.dto.response.BestMeetingTimeResponseDto;
+import com.asap.server.presentation.controller.dto.response.FixedMeetingResponseDto;
+import com.asap.server.presentation.controller.dto.response.MeetingSaveResponseDto;
+import com.asap.server.presentation.controller.dto.response.MeetingScheduleResponseDto;
+import com.asap.server.presentation.controller.dto.response.MeetingTitleResponseDto;
+import com.asap.server.presentation.controller.dto.response.TimeTableResponseDto;
+import com.asap.server.common.exception.Success;
import com.asap.server.service.MeetingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
diff --git a/src/main/java/com/asap/server/controller/ServerProfileController.java b/src/main/java/com/asap/server/presentation/controller/ServerProfileController.java
similarity index 92%
rename from src/main/java/com/asap/server/controller/ServerProfileController.java
rename to src/main/java/com/asap/server/presentation/controller/ServerProfileController.java
index 15f42984..f831ab8f 100644
--- a/src/main/java/com/asap/server/controller/ServerProfileController.java
+++ b/src/main/java/com/asap/server/presentation/controller/ServerProfileController.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller;
+package com.asap.server.presentation.controller;
import io.swagger.v3.oas.annotations.Hidden;
diff --git a/src/main/java/com/asap/server/controller/UserController.java b/src/main/java/com/asap/server/presentation/controller/UserController.java
similarity index 88%
rename from src/main/java/com/asap/server/controller/UserController.java
rename to src/main/java/com/asap/server/presentation/controller/UserController.java
index e581e74e..1e5a5337 100644
--- a/src/main/java/com/asap/server/controller/UserController.java
+++ b/src/main/java/com/asap/server/presentation/controller/UserController.java
@@ -1,17 +1,16 @@
-package com.asap.server.controller;
+package com.asap.server.presentation.controller;
-import com.asap.server.common.dto.ErrorDataResponse;
-import com.asap.server.common.dto.ErrorResponse;
-import com.asap.server.common.dto.SuccessResponse;
-import com.asap.server.config.resolver.meeting.MeetingPathVariable;
-import com.asap.server.config.resolver.user.UserId;
-import com.asap.server.controller.dto.request.AvailableTimeRequestDto;
-import com.asap.server.controller.dto.request.HostLoginRequestDto;
-import com.asap.server.controller.dto.request.UserMeetingTimeSaveRequestDto;
-import com.asap.server.controller.dto.response.HostLoginResponseDto;
-import com.asap.server.controller.dto.response.UserMeetingTimeResponseDto;
-import com.asap.server.controller.dto.response.UserTimeResponseDto;
-import com.asap.server.exception.Success;
+import com.asap.server.presentation.common.dto.ErrorResponse;
+import com.asap.server.presentation.common.dto.SuccessResponse;
+import com.asap.server.presentation.config.resolver.meeting.MeetingPathVariable;
+import com.asap.server.presentation.config.resolver.user.UserId;
+import com.asap.server.presentation.controller.dto.request.AvailableTimeRequestDto;
+import com.asap.server.presentation.controller.dto.request.HostLoginRequestDto;
+import com.asap.server.presentation.controller.dto.request.UserMeetingTimeSaveRequestDto;
+import com.asap.server.presentation.controller.dto.response.HostLoginResponseDto;
+import com.asap.server.presentation.controller.dto.response.UserMeetingTimeResponseDto;
+import com.asap.server.presentation.controller.dto.response.UserTimeResponseDto;
+import com.asap.server.common.exception.Success;
import com.asap.server.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
diff --git a/src/main/java/com/asap/server/controller/dto/request/AvailableTimeRequestDto.java b/src/main/java/com/asap/server/presentation/controller/dto/request/AvailableTimeRequestDto.java
similarity index 91%
rename from src/main/java/com/asap/server/controller/dto/request/AvailableTimeRequestDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/request/AvailableTimeRequestDto.java
index 0a9d6ef7..43e5c92d 100644
--- a/src/main/java/com/asap/server/controller/dto/request/AvailableTimeRequestDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/request/AvailableTimeRequestDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.request;
+package com.asap.server.presentation.controller.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
diff --git a/src/main/java/com/asap/server/controller/dto/request/HostLoginRequestDto.java b/src/main/java/com/asap/server/presentation/controller/dto/request/HostLoginRequestDto.java
similarity index 92%
rename from src/main/java/com/asap/server/controller/dto/request/HostLoginRequestDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/request/HostLoginRequestDto.java
index 5caf08b7..7549b713 100644
--- a/src/main/java/com/asap/server/controller/dto/request/HostLoginRequestDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/request/HostLoginRequestDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.request;
+package com.asap.server.presentation.controller.dto.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
diff --git a/src/main/java/com/asap/server/controller/dto/request/MeetingConfirmRequestDto.java b/src/main/java/com/asap/server/presentation/controller/dto/request/MeetingConfirmRequestDto.java
similarity index 89%
rename from src/main/java/com/asap/server/controller/dto/request/MeetingConfirmRequestDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/request/MeetingConfirmRequestDto.java
index 2d03acc5..f8bf0122 100644
--- a/src/main/java/com/asap/server/controller/dto/request/MeetingConfirmRequestDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/request/MeetingConfirmRequestDto.java
@@ -1,6 +1,6 @@
-package com.asap.server.controller.dto.request;
+package com.asap.server.presentation.controller.dto.request;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import java.util.List;
import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
diff --git a/src/main/java/com/asap/server/controller/dto/request/MeetingSaveRequestDto.java b/src/main/java/com/asap/server/presentation/controller/dto/request/MeetingSaveRequestDto.java
similarity index 89%
rename from src/main/java/com/asap/server/controller/dto/request/MeetingSaveRequestDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/request/MeetingSaveRequestDto.java
index 4a1348e7..908c8a81 100644
--- a/src/main/java/com/asap/server/controller/dto/request/MeetingSaveRequestDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/request/MeetingSaveRequestDto.java
@@ -1,7 +1,7 @@
-package com.asap.server.controller.dto.request;
+package com.asap.server.presentation.controller.dto.request;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
@@ -18,8 +18,6 @@ public record MeetingSaveRequestDto(
String title,
@Schema(description = "νμ κ°λ₯ λ μ§", example = "[\"2024/7/9/MON\"]")
List availableDates,
- @Schema(description = "νμ μ νΈ μκ°")
- List preferTimes,
@NotNull(message = "νμ νμμ΄ μ
λ ₯λμ§ μμμ΅λλ€.")
@Schema(description = "νμ λ°©μ", example = "ONLINE", allowableValues = {"ONLINE", "OFFLINE", "UNDEFINED"})
PlaceType place,
diff --git a/src/main/java/com/asap/server/controller/dto/request/UserMeetingTimeSaveRequestDto.java b/src/main/java/com/asap/server/presentation/controller/dto/request/UserMeetingTimeSaveRequestDto.java
similarity index 78%
rename from src/main/java/com/asap/server/controller/dto/request/UserMeetingTimeSaveRequestDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/request/UserMeetingTimeSaveRequestDto.java
index 437603f6..dcda1704 100644
--- a/src/main/java/com/asap/server/controller/dto/request/UserMeetingTimeSaveRequestDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/request/UserMeetingTimeSaveRequestDto.java
@@ -1,13 +1,9 @@
-package com.asap.server.controller.dto.request;
+package com.asap.server.presentation.controller.dto.request;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Pattern;
-import lombok.AccessLevel;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
@Schema(description = "νμ κ°λ₯ μκ° DTO")
public record UserMeetingTimeSaveRequestDto(
diff --git a/src/main/java/com/asap/server/controller/dto/request/UserRequestDto.java b/src/main/java/com/asap/server/presentation/controller/dto/request/UserRequestDto.java
similarity index 84%
rename from src/main/java/com/asap/server/controller/dto/request/UserRequestDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/request/UserRequestDto.java
index c439d096..b0b8110e 100644
--- a/src/main/java/com/asap/server/controller/dto/request/UserRequestDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/request/UserRequestDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.request;
+package com.asap.server.presentation.controller.dto.request;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/controller/dto/response/AvailableDateResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/AvailableDateResponseDto.java
similarity index 81%
rename from src/main/java/com/asap/server/controller/dto/response/AvailableDateResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/AvailableDateResponseDto.java
index 9ddc17e7..1cc83411 100644
--- a/src/main/java/com/asap/server/controller/dto/response/AvailableDateResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/AvailableDateResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/AvailableDatesDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/AvailableDatesDto.java
similarity index 84%
rename from src/main/java/com/asap/server/controller/dto/response/AvailableDatesDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/AvailableDatesDto.java
index eef84ff0..e19efb9d 100644
--- a/src/main/java/com/asap/server/controller/dto/response/AvailableDatesDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/AvailableDatesDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/BestMeetingTimeResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/BestMeetingTimeResponseDto.java
similarity index 91%
rename from src/main/java/com/asap/server/controller/dto/response/BestMeetingTimeResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/BestMeetingTimeResponseDto.java
index e34fa707..a80e6d48 100644
--- a/src/main/java/com/asap/server/controller/dto/response/BestMeetingTimeResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/BestMeetingTimeResponseDto.java
@@ -1,6 +1,5 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
-import com.asap.server.service.vo.BestMeetingTimeVo;
import com.asap.server.service.vo.BestMeetingTimeWithUsersVo;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/com/asap/server/controller/dto/response/FixedMeetingResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/FixedMeetingResponseDto.java
similarity index 89%
rename from src/main/java/com/asap/server/controller/dto/response/FixedMeetingResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/FixedMeetingResponseDto.java
index 66690b38..5572a6d6 100644
--- a/src/main/java/com/asap/server/controller/dto/response/FixedMeetingResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/FixedMeetingResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import java.util.List;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/com/asap/server/controller/dto/response/HostLoginResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/HostLoginResponseDto.java
similarity index 78%
rename from src/main/java/com/asap/server/controller/dto/response/HostLoginResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/HostLoginResponseDto.java
index 8982c981..39436bb6 100644
--- a/src/main/java/com/asap/server/controller/dto/response/HostLoginResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/HostLoginResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/MeetingSaveResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingSaveResponseDto.java
similarity index 79%
rename from src/main/java/com/asap/server/controller/dto/response/MeetingSaveResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/MeetingSaveResponseDto.java
index 66b44777..780b50f1 100644
--- a/src/main/java/com/asap/server/controller/dto/response/MeetingSaveResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingSaveResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/MeetingScheduleResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingScheduleResponseDto.java
similarity index 65%
rename from src/main/java/com/asap/server/controller/dto/response/MeetingScheduleResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/MeetingScheduleResponseDto.java
index 9fb30641..bf3a7299 100644
--- a/src/main/java/com/asap/server/controller/dto/response/MeetingScheduleResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingScheduleResponseDto.java
@@ -1,7 +1,7 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -18,5 +18,4 @@ public class MeetingScheduleResponseDto {
private PlaceType place;
private String placeDetail;
private List availableDates;
- private List preferTimes;
}
diff --git a/src/main/java/com/asap/server/controller/dto/response/MeetingTimeResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingTimeResponseDto.java
similarity index 94%
rename from src/main/java/com/asap/server/controller/dto/response/MeetingTimeResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/MeetingTimeResponseDto.java
index 6f3452d9..d2a7fcb4 100644
--- a/src/main/java/com/asap/server/controller/dto/response/MeetingTimeResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingTimeResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import com.asap.server.common.utils.DateUtil;
import com.asap.server.service.vo.BestMeetingTimeWithUsersVo;
diff --git a/src/main/java/com/asap/server/controller/dto/response/MeetingTitleResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingTitleResponseDto.java
similarity index 77%
rename from src/main/java/com/asap/server/controller/dto/response/MeetingTitleResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/MeetingTitleResponseDto.java
index fd7c44a1..f5b2e1be 100644
--- a/src/main/java/com/asap/server/controller/dto/response/MeetingTitleResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/MeetingTitleResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/PreferTimeResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/PreferTimeResponseDto.java
similarity index 80%
rename from src/main/java/com/asap/server/controller/dto/response/PreferTimeResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/PreferTimeResponseDto.java
index 51b6eb45..2d570616 100644
--- a/src/main/java/com/asap/server/controller/dto/response/PreferTimeResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/PreferTimeResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/TimeSlotDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/TimeSlotDto.java
similarity index 92%
rename from src/main/java/com/asap/server/controller/dto/response/TimeSlotDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/TimeSlotDto.java
index 5c263078..71715ee4 100644
--- a/src/main/java/com/asap/server/controller/dto/response/TimeSlotDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/TimeSlotDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/TimeTableResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/TimeTableResponseDto.java
similarity index 84%
rename from src/main/java/com/asap/server/controller/dto/response/TimeTableResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/TimeTableResponseDto.java
index 9eec3d0c..6e0bf1fc 100644
--- a/src/main/java/com/asap/server/controller/dto/response/TimeTableResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/TimeTableResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/UserMeetingTimeResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/UserMeetingTimeResponseDto.java
similarity index 80%
rename from src/main/java/com/asap/server/controller/dto/response/UserMeetingTimeResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/UserMeetingTimeResponseDto.java
index e41bd67f..6c7d0f06 100644
--- a/src/main/java/com/asap/server/controller/dto/response/UserMeetingTimeResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/UserMeetingTimeResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/controller/dto/response/UserTimeResponseDto.java b/src/main/java/com/asap/server/presentation/controller/dto/response/UserTimeResponseDto.java
similarity index 77%
rename from src/main/java/com/asap/server/controller/dto/response/UserTimeResponseDto.java
rename to src/main/java/com/asap/server/presentation/controller/dto/response/UserTimeResponseDto.java
index f7bb0e07..9a7dd635 100644
--- a/src/main/java/com/asap/server/controller/dto/response/UserTimeResponseDto.java
+++ b/src/main/java/com/asap/server/presentation/controller/dto/response/UserTimeResponseDto.java
@@ -1,4 +1,4 @@
-package com.asap.server.controller.dto.response;
+package com.asap.server.presentation.controller.dto.response;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/asap/server/repository/PreferTimeRepository.java b/src/main/java/com/asap/server/repository/PreferTimeRepository.java
deleted file mode 100644
index 8961a7de..00000000
--- a/src/main/java/com/asap/server/repository/PreferTimeRepository.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.asap.server.repository;
-
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.PreferTime;
-import org.springframework.data.repository.Repository;
-
-import java.util.List;
-
-public interface PreferTimeRepository extends Repository {
-
- PreferTime save(final PreferTime preferTime);
-
- List findByMeeting(final Meeting meeting);
-}
diff --git a/src/main/java/com/asap/server/service/AvailableDateService.java b/src/main/java/com/asap/server/service/AvailableDateService.java
index 19407a11..5f01f237 100644
--- a/src/main/java/com/asap/server/service/AvailableDateService.java
+++ b/src/main/java/com/asap/server/service/AvailableDateService.java
@@ -1,15 +1,15 @@
package com.asap.server.service;
import com.asap.server.common.utils.DateUtil;
-import com.asap.server.controller.dto.response.AvailableDateResponseDto;
-import com.asap.server.controller.dto.response.AvailableDatesDto;
-import com.asap.server.controller.dto.response.TimeSlotDto;
-import com.asap.server.domain.AvailableDate;
-import com.asap.server.domain.Meeting;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
-import com.asap.server.exception.model.NotFoundException;
-import com.asap.server.repository.AvailableDateRepository;
+import com.asap.server.presentation.controller.dto.response.AvailableDateResponseDto;
+import com.asap.server.presentation.controller.dto.response.AvailableDatesDto;
+import com.asap.server.presentation.controller.dto.response.TimeSlotDto;
+import com.asap.server.persistence.domain.AvailableDate;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.BadRequestException;
+import com.asap.server.common.exception.model.NotFoundException;
+import com.asap.server.persistence.repository.AvailableDateRepository;
import java.util.List;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/asap/server/service/MeetingService.java b/src/main/java/com/asap/server/service/MeetingService.java
index bec47907..50098002 100644
--- a/src/main/java/com/asap/server/service/MeetingService.java
+++ b/src/main/java/com/asap/server/service/MeetingService.java
@@ -1,32 +1,32 @@
package com.asap.server.service;
-import static com.asap.server.exception.Error.INVALID_MEETING_HOST_EXCEPTION;
-import static com.asap.server.exception.Error.MEETING_VALIDATION_FAILED_EXCEPTION;
+import static com.asap.server.common.exception.Error.INVALID_MEETING_HOST_EXCEPTION;
+import static com.asap.server.common.exception.Error.MEETING_VALIDATION_FAILED_EXCEPTION;
import com.asap.server.common.utils.DateUtil;
-import com.asap.server.config.jwt.JwtService;
-import com.asap.server.controller.dto.request.MeetingConfirmRequestDto;
-import com.asap.server.controller.dto.request.MeetingSaveRequestDto;
-import com.asap.server.controller.dto.response.AvailableDatesDto;
-import com.asap.server.controller.dto.response.BestMeetingTimeResponseDto;
-import com.asap.server.controller.dto.response.FixedMeetingResponseDto;
-import com.asap.server.controller.dto.response.MeetingSaveResponseDto;
-import com.asap.server.controller.dto.response.MeetingScheduleResponseDto;
-import com.asap.server.controller.dto.response.MeetingTitleResponseDto;
-import com.asap.server.controller.dto.response.TimeTableResponseDto;
-import com.asap.server.domain.ConfirmedDateTime;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.Place;
-import com.asap.server.domain.User;
-import com.asap.server.domain.enums.Role;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.ConflictException;
-import com.asap.server.exception.model.ForbiddenException;
-import com.asap.server.exception.model.NotFoundException;
-import com.asap.server.exception.model.UnauthorizedException;
-import com.asap.server.repository.meeting.MeetingRepository;
-import com.asap.server.repository.timeblock.TimeBlockRepository;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.common.jwt.JwtService;
+import com.asap.server.presentation.controller.dto.request.MeetingConfirmRequestDto;
+import com.asap.server.presentation.controller.dto.request.MeetingSaveRequestDto;
+import com.asap.server.presentation.controller.dto.response.AvailableDatesDto;
+import com.asap.server.presentation.controller.dto.response.BestMeetingTimeResponseDto;
+import com.asap.server.presentation.controller.dto.response.FixedMeetingResponseDto;
+import com.asap.server.presentation.controller.dto.response.MeetingSaveResponseDto;
+import com.asap.server.presentation.controller.dto.response.MeetingScheduleResponseDto;
+import com.asap.server.presentation.controller.dto.response.MeetingTitleResponseDto;
+import com.asap.server.presentation.controller.dto.response.TimeTableResponseDto;
+import com.asap.server.persistence.domain.ConfirmedDateTime;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.Place;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.domain.enums.Role;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.ConflictException;
+import com.asap.server.common.exception.model.ForbiddenException;
+import com.asap.server.common.exception.model.NotFoundException;
+import com.asap.server.common.exception.model.UnauthorizedException;
+import com.asap.server.persistence.repository.meeting.MeetingRepository;
+import com.asap.server.persistence.repository.timeblock.TimeBlockRepository;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import com.asap.server.service.meeting.MeetingTimeRecommendService;
import com.asap.server.service.vo.BestMeetingTimeVo;
import com.asap.server.service.vo.BestMeetingTimeWithUsersVo;
@@ -47,7 +47,6 @@ public class MeetingService {
private final MeetingRepository meetingRepository;
private final UserService userService;
private final AvailableDateService availableDateService;
- private final PreferTimeService preferTimeService;
private final JwtService jwtService;
private final MeetingTimeRecommendService meetingTimeRecommendService;
private final TimeBlockRepository timeBlockRepository;
@@ -72,7 +71,6 @@ public MeetingSaveResponseDto create(final MeetingSaveRequestDto meetingSaveRequ
User host = userService.createUser(meeting, meetingSaveRequestDto.name(), Role.HOST);
- preferTimeService.create(meeting, meetingSaveRequestDto.preferTimes());
availableDateService.create(meeting, meetingSaveRequestDto.availableDates());
meeting.setHost(host);
@@ -122,7 +120,6 @@ public MeetingScheduleResponseDto getMeetingSchedule(Long meetingId) {
.place(meeting.getPlace().getPlaceType())
.placeDetail(meeting.getPlace().getPlaceDetail())
.availableDates(availableDateService.getAvailableDates(meeting))
- .preferTimes(preferTimeService.getPreferTimes(meeting))
.build();
}
diff --git a/src/main/java/com/asap/server/service/PreferTimeService.java b/src/main/java/com/asap/server/service/PreferTimeService.java
deleted file mode 100644
index 8e40110e..00000000
--- a/src/main/java/com/asap/server/service/PreferTimeService.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.asap.server.service;
-
-import com.asap.server.controller.dto.request.PreferTimeSaveRequestDto;
-import com.asap.server.controller.dto.response.PreferTimeResponseDto;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.PreferTime;
-import com.asap.server.domain.enums.TimeSlot;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
-import com.asap.server.exception.model.NotFoundException;
-import com.asap.server.repository.PreferTimeRepository;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Service
-@RequiredArgsConstructor
-public class PreferTimeService {
- private final PreferTimeRepository preferTimeRepository;
-
- public void create(final Meeting meeting,
- final List saveRequestDtos) {
- if (isPreferTimeDuplicated(saveRequestDtos)) {
- throw new BadRequestException(Error.DUPLICATED_TIME_EXCEPTION);
- }
- saveRequestDtos.stream()
- .sorted(Comparator.comparing(preferTime -> preferTime.startTime().getTime()))
- .map(preferTime -> preferTimeRepository.save(
- PreferTime.builder()
- .meeting(meeting)
- .startTime(preferTime.startTime())
- .endTime(preferTime.endTime()).build()))
- .collect(Collectors.toList());
- }
-
- public List getPreferTimes(final Meeting meeting) {
- List preferTimes = preferTimeRepository.findByMeeting(meeting);
- if (preferTimes.isEmpty()) throw new NotFoundException(Error.PREFER_TIME_NOT_FOUND_EXCEPTION);
-
- return preferTimes.stream()
- .map(preferTime -> PreferTimeResponseDto.builder()
- .startTime(preferTime.getStartTime().getTime())
- .endTime(preferTime.getEndTime().getTime())
- .build())
- .collect(Collectors.toList());
- }
-
- private boolean isPreferTimeDuplicated(List requestDtos) {
- List timeSlots = requestDtos.stream()
- .flatMap(requestDto -> TimeSlot.getTimeSlots(requestDto.startTime().ordinal(), requestDto.endTime().ordinal() - 1).stream())
- .collect(Collectors.toList());
- return timeSlots.size() != timeSlots.stream().distinct().count();
- }
-}
diff --git a/src/main/java/com/asap/server/service/TimeBlockService.java b/src/main/java/com/asap/server/service/TimeBlockService.java
index e3b041fb..39e84578 100644
--- a/src/main/java/com/asap/server/service/TimeBlockService.java
+++ b/src/main/java/com/asap/server/service/TimeBlockService.java
@@ -1,12 +1,12 @@
package com.asap.server.service;
-import com.asap.server.domain.AvailableDate;
-import com.asap.server.domain.TimeBlock;
-import com.asap.server.domain.enums.TimeSlot;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.NotFoundException;
-import com.asap.server.repository.timeblock.TimeBlockRepository;
+import com.asap.server.persistence.domain.AvailableDate;
+import com.asap.server.persistence.domain.TimeBlock;
+import com.asap.server.persistence.domain.enums.TimeSlot;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.NotFoundException;
+import com.asap.server.persistence.repository.timeblock.TimeBlockRepository;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
diff --git a/src/main/java/com/asap/server/service/TimeBlockUserService.java b/src/main/java/com/asap/server/service/TimeBlockUserService.java
index e188e4d8..cf1babae 100644
--- a/src/main/java/com/asap/server/service/TimeBlockUserService.java
+++ b/src/main/java/com/asap/server/service/TimeBlockUserService.java
@@ -1,10 +1,10 @@
package com.asap.server.service;
-import com.asap.server.controller.dto.response.TimeSlotDto;
-import com.asap.server.domain.TimeBlock;
-import com.asap.server.domain.TimeBlockUser;
-import com.asap.server.domain.User;
-import com.asap.server.repository.TimeBlockUserRepository;
+import com.asap.server.presentation.controller.dto.response.TimeSlotDto;
+import com.asap.server.persistence.domain.TimeBlock;
+import com.asap.server.persistence.domain.TimeBlockUser;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.repository.TimeBlockUserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
diff --git a/src/main/java/com/asap/server/service/UserService.java b/src/main/java/com/asap/server/service/UserService.java
index eef004a3..9c1d67fe 100644
--- a/src/main/java/com/asap/server/service/UserService.java
+++ b/src/main/java/com/asap/server/service/UserService.java
@@ -1,26 +1,26 @@
package com.asap.server.service;
-import com.asap.server.config.jwt.JwtService;
-import com.asap.server.controller.dto.request.AvailableTimeRequestDto;
-import com.asap.server.controller.dto.request.HostLoginRequestDto;
-import com.asap.server.controller.dto.request.UserMeetingTimeSaveRequestDto;
-import com.asap.server.controller.dto.request.UserRequestDto;
-import com.asap.server.controller.dto.response.HostLoginResponseDto;
-import com.asap.server.controller.dto.response.UserMeetingTimeResponseDto;
-import com.asap.server.controller.dto.response.UserTimeResponseDto;
-import com.asap.server.domain.AvailableDate;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.User;
-import com.asap.server.domain.enums.Role;
-import com.asap.server.domain.enums.TimeSlot;
-import com.asap.server.exception.Error;
-import com.asap.server.exception.model.BadRequestException;
-import com.asap.server.exception.model.ConflictException;
-import com.asap.server.exception.model.HostTimeForbiddenException;
-import com.asap.server.exception.model.NotFoundException;
-import com.asap.server.exception.model.UnauthorizedException;
-import com.asap.server.repository.meeting.MeetingRepository;
-import com.asap.server.repository.user.UserRepository;
+import com.asap.server.common.jwt.JwtService;
+import com.asap.server.presentation.controller.dto.request.AvailableTimeRequestDto;
+import com.asap.server.presentation.controller.dto.request.HostLoginRequestDto;
+import com.asap.server.presentation.controller.dto.request.UserMeetingTimeSaveRequestDto;
+import com.asap.server.presentation.controller.dto.request.UserRequestDto;
+import com.asap.server.presentation.controller.dto.response.HostLoginResponseDto;
+import com.asap.server.presentation.controller.dto.response.UserMeetingTimeResponseDto;
+import com.asap.server.presentation.controller.dto.response.UserTimeResponseDto;
+import com.asap.server.persistence.domain.AvailableDate;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.domain.enums.Role;
+import com.asap.server.persistence.domain.enums.TimeSlot;
+import com.asap.server.common.exception.Error;
+import com.asap.server.common.exception.model.BadRequestException;
+import com.asap.server.common.exception.model.ConflictException;
+import com.asap.server.common.exception.model.HostTimeForbiddenException;
+import com.asap.server.common.exception.model.NotFoundException;
+import com.asap.server.common.exception.model.UnauthorizedException;
+import com.asap.server.persistence.repository.meeting.MeetingRepository;
+import com.asap.server.persistence.repository.user.UserRepository;
import com.asap.server.service.vo.BestMeetingTimeVo;
import com.asap.server.service.vo.BestMeetingTimeWithUsersVo;
import com.asap.server.service.vo.UserVo;
@@ -34,9 +34,9 @@
import java.util.Map;
import java.util.stream.Collectors;
-import static com.asap.server.exception.Error.INVALID_MEETING_HOST_EXCEPTION;
-import static com.asap.server.exception.Error.MEETING_VALIDATION_FAILED_EXCEPTION;
-import static com.asap.server.exception.Error.USER_NOT_FOUND_EXCEPTION;
+import static com.asap.server.common.exception.Error.INVALID_MEETING_HOST_EXCEPTION;
+import static com.asap.server.common.exception.Error.MEETING_VALIDATION_FAILED_EXCEPTION;
+import static com.asap.server.common.exception.Error.USER_NOT_FOUND_EXCEPTION;
@Service
diff --git a/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategy.java b/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategy.java
index 9b3b4eaa..c6175eb0 100644
--- a/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategy.java
+++ b/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategy.java
@@ -1,6 +1,6 @@
package com.asap.server.service.meeting;
-import com.asap.server.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.Duration;
import com.asap.server.service.vo.PossibleTimeCaseVo;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategy.java b/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategy.java
index 5bed55ac..d5f3dcf2 100644
--- a/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategy.java
+++ b/src/main/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategy.java
@@ -1,7 +1,7 @@
package com.asap.server.service.meeting;
-import com.asap.server.domain.enums.TimeSlot;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.domain.enums.TimeSlot;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import com.asap.server.service.vo.BestMeetingTimeVo;
import com.asap.server.service.vo.PossibleTimeCaseVo;
import java.util.ArrayList;
diff --git a/src/main/java/com/asap/server/service/meeting/MeetingTimeRecommendService.java b/src/main/java/com/asap/server/service/meeting/MeetingTimeRecommendService.java
index 3e7d17a7..32eb618b 100644
--- a/src/main/java/com/asap/server/service/meeting/MeetingTimeRecommendService.java
+++ b/src/main/java/com/asap/server/service/meeting/MeetingTimeRecommendService.java
@@ -1,7 +1,7 @@
package com.asap.server.service.meeting;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import com.asap.server.service.vo.BestMeetingTimeVo;
import com.asap.server.service.vo.PossibleTimeCaseVo;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/com/asap/server/service/vo/BestMeetingTimeVo.java b/src/main/java/com/asap/server/service/vo/BestMeetingTimeVo.java
index 65167a26..18c1592e 100644
--- a/src/main/java/com/asap/server/service/vo/BestMeetingTimeVo.java
+++ b/src/main/java/com/asap/server/service/vo/BestMeetingTimeVo.java
@@ -1,6 +1,6 @@
package com.asap.server.service.vo;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import java.time.LocalDate;
diff --git a/src/main/java/com/asap/server/service/vo/BestMeetingTimeWithUsersVo.java b/src/main/java/com/asap/server/service/vo/BestMeetingTimeWithUsersVo.java
index de73a4d9..9b46afe2 100644
--- a/src/main/java/com/asap/server/service/vo/BestMeetingTimeWithUsersVo.java
+++ b/src/main/java/com/asap/server/service/vo/BestMeetingTimeWithUsersVo.java
@@ -1,6 +1,6 @@
package com.asap.server.service.vo;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import java.time.LocalDate;
import java.util.List;
diff --git a/src/main/java/com/asap/server/service/vo/PossibleTimeCaseVo.java b/src/main/java/com/asap/server/service/vo/PossibleTimeCaseVo.java
index e8f2c0d2..2d92e5af 100644
--- a/src/main/java/com/asap/server/service/vo/PossibleTimeCaseVo.java
+++ b/src/main/java/com/asap/server/service/vo/PossibleTimeCaseVo.java
@@ -1,6 +1,6 @@
package com.asap.server.service.vo;
-import com.asap.server.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.Duration;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
diff --git a/src/test/java/com/asap/server/common/utils/SecureUrlUtilTest.java b/src/test/java/com/asap/server/common/utils/SecureUrlUtilTest.java
index e7e57bcf..28f4eb3f 100644
--- a/src/test/java/com/asap/server/common/utils/SecureUrlUtilTest.java
+++ b/src/test/java/com/asap/server/common/utils/SecureUrlUtilTest.java
@@ -1,5 +1,6 @@
package com.asap.server.common.utils;
+import com.asap.server.presentation.common.secure.SecureUrlUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/com/asap/server/concurrency/DuplicatedInterceptorTest.java b/src/test/java/com/asap/server/concurrency/DuplicatedInterceptorTest.java
index 65522b4b..9575eef9 100644
--- a/src/test/java/com/asap/server/concurrency/DuplicatedInterceptorTest.java
+++ b/src/test/java/com/asap/server/concurrency/DuplicatedInterceptorTest.java
@@ -1,11 +1,9 @@
package com.asap.server.concurrency;
-import com.asap.server.ServerApplication;
-import com.asap.server.controller.dto.request.MeetingSaveRequestDto;
-import com.asap.server.controller.dto.request.PreferTimeSaveRequestDto;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.domain.enums.PlaceType;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.presentation.controller.dto.request.MeetingSaveRequestDto;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@@ -14,7 +12,6 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
@@ -47,7 +44,6 @@ public void multipleRequestTest() throws Exception {
MeetingSaveRequestDto bodyDto = new MeetingSaveRequestDto(
"title",
List.of("2024/07/09/MON", "2024/07/10/TUE"),
- List.of(new PreferTimeSaveRequestDto(TimeSlot.SLOT_6_00, TimeSlot.SLOT_6_30)),
PlaceType.OFFLINE,
"νμ μ₯μ μ€λͺ
",
Duration.HOUR,
diff --git a/src/test/java/com/asap/server/repository/MeetingRepositoryCustomTest.java b/src/test/java/com/asap/server/persistence/repository/MeetingRepositoryCustomTest.java
similarity index 77%
rename from src/test/java/com/asap/server/repository/MeetingRepositoryCustomTest.java
rename to src/test/java/com/asap/server/persistence/repository/MeetingRepositoryCustomTest.java
index d9e6161d..c2c81cec 100644
--- a/src/test/java/com/asap/server/repository/MeetingRepositoryCustomTest.java
+++ b/src/test/java/com/asap/server/persistence/repository/MeetingRepositoryCustomTest.java
@@ -1,13 +1,13 @@
-package com.asap.server.repository;
+package com.asap.server.persistence.repository;
-import com.asap.server.config.querydsl.QueryDslConfig;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.Place;
-import com.asap.server.domain.User;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.domain.enums.PlaceType;
-import com.asap.server.domain.enums.Role;
-import com.asap.server.repository.meeting.MeetingRepository;
+import com.asap.server.persistence.config.querydsl.QueryDslConfig;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.Place;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.Role;
+import com.asap.server.persistence.repository.meeting.MeetingRepository;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/test/java/com/asap/server/repository/timeblock/TimeBlockRepositoryImplTest.java b/src/test/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryImplTest.java
similarity index 83%
rename from src/test/java/com/asap/server/repository/timeblock/TimeBlockRepositoryImplTest.java
rename to src/test/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryImplTest.java
index 718a0d2d..adaf127b 100644
--- a/src/test/java/com/asap/server/repository/timeblock/TimeBlockRepositoryImplTest.java
+++ b/src/test/java/com/asap/server/persistence/repository/timeblock/TimeBlockRepositoryImplTest.java
@@ -1,12 +1,18 @@
-package com.asap.server.repository.timeblock;
+package com.asap.server.persistence.repository.timeblock;
-import com.asap.server.config.querydsl.QueryDslConfig;
-import com.asap.server.domain.*;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.domain.enums.PlaceType;
-import com.asap.server.domain.enums.Role;
-import com.asap.server.domain.enums.TimeSlot;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.config.querydsl.QueryDslConfig;
+import com.asap.server.persistence.domain.AvailableDate;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.Place;
+import com.asap.server.persistence.domain.TimeBlock;
+import com.asap.server.persistence.domain.TimeBlockUser;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.Role;
+import com.asap.server.persistence.domain.enums.TimeSlot;
+import com.asap.server.persistence.repository.timeblock.TimeBlockRepository;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import jakarta.persistence.EntityManager;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/com/asap/server/persistence/repository/user/UserRepositoryImplTest.java b/src/test/java/com/asap/server/persistence/repository/user/UserRepositoryImplTest.java
new file mode 100644
index 00000000..500642a2
--- /dev/null
+++ b/src/test/java/com/asap/server/persistence/repository/user/UserRepositoryImplTest.java
@@ -0,0 +1,97 @@
+package com.asap.server.persistence.repository.user;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+
+import com.asap.server.persistence.config.querydsl.QueryDslConfig;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.Place;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.Role;
+import jakarta.persistence.EntityManager;
+import java.util.List;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.context.annotation.Import;
+
+@DataJpaTest
+@Import(QueryDslConfig.class)
+@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
+class UserRepositoryImplTest {
+ @Autowired
+ private EntityManager em;
+ @Autowired
+ private UserRepository userRepository;
+
+ @Test
+ @DisplayName("KWY, DSY, LJH, SES μ€ KWY, DSYλ§ νμ λ νμμ μ°Έμ¬νλ€λ©΄, KWY, DSYμ is_fixed μΉΌλΌμ 1λ‘ μμ νλ€.")
+ void updateUserIsFixedByMeetingTest() {
+ // given
+ Place place = Place.builder()
+ .placeType(PlaceType.OFFLINE)
+ .build();
+ Meeting meeting = Meeting.builder()
+ .title("νμ ν
μ€νΈ")
+ .password("0000")
+ .additionalInfo("")
+ .duration(Duration.HALF)
+ .place(place)
+ .build();
+ em.persist(meeting);
+
+ User user = User.builder()
+ .meeting(meeting)
+ .name("KWY")
+ .isFixed(false)
+ .role(Role.HOST)
+ .build();
+ User user2 = User.builder()
+ .meeting(meeting)
+ .name("DSY")
+ .isFixed(false)
+ .role(Role.MEMBER)
+ .build();
+ User user3 = User.builder()
+ .meeting(meeting)
+ .name("LJH")
+ .isFixed(false)
+ .role(Role.MEMBER)
+ .build();
+ User user4 = User.builder()
+ .meeting(meeting)
+ .name("SES")
+ .isFixed(false)
+ .role(Role.MEMBER)
+ .build();
+ em.persist(user);
+ em.persist(user2);
+ em.persist(user3);
+ em.persist(user4);
+ em.flush();
+ em.clear();
+
+ // when
+ userRepository.updateUserIsFixedByMeeting(
+ meeting,
+ List.of(
+ user.getId(),
+ user2.getId()
+ )
+ );
+
+ // then
+ User result = em.find(User.class, user.getId());
+ User result2 = em.find(User.class, user2.getId());
+ User result3 = em.find(User.class, user3.getId());
+ User result4 = em.find(User.class, user4.getId());
+
+ assertThat(result.getIsFixed()).isTrue();
+ assertThat(result2.getIsFixed()).isTrue();
+ assertThat(result3.getIsFixed()).isFalse();
+ assertThat(result4.getIsFixed()).isFalse();
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/com/asap/server/controller/MeetingControllerTest.java b/src/test/java/com/asap/server/presentation/controller/MeetingControllerTest.java
similarity index 94%
rename from src/test/java/com/asap/server/controller/MeetingControllerTest.java
rename to src/test/java/com/asap/server/presentation/controller/MeetingControllerTest.java
index 27db86c1..d9e54c2b 100644
--- a/src/test/java/com/asap/server/controller/MeetingControllerTest.java
+++ b/src/test/java/com/asap/server/presentation/controller/MeetingControllerTest.java
@@ -1,5 +1,6 @@
-package com.asap.server.controller;
+package com.asap.server.presentation.controller;
+import com.asap.server.presentation.controller.MeetingController;
import com.asap.server.service.MeetingService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
diff --git a/src/test/java/com/asap/server/service/meeting/ConfirmMeetingMethodTest.java b/src/test/java/com/asap/server/service/meeting/ConfirmMeetingMethodTest.java
index bb101d73..f7373b00 100644
--- a/src/test/java/com/asap/server/service/meeting/ConfirmMeetingMethodTest.java
+++ b/src/test/java/com/asap/server/service/meeting/ConfirmMeetingMethodTest.java
@@ -1,14 +1,14 @@
package com.asap.server.service.meeting;
-import com.asap.server.controller.dto.request.MeetingConfirmRequestDto;
-import com.asap.server.controller.dto.request.UserRequestDto;
-import com.asap.server.domain.Meeting;
-import com.asap.server.domain.Place;
-import com.asap.server.domain.User;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.domain.enums.PlaceType;
-import com.asap.server.domain.enums.Role;
-import com.asap.server.domain.enums.TimeSlot;
+import com.asap.server.presentation.controller.dto.request.MeetingConfirmRequestDto;
+import com.asap.server.presentation.controller.dto.request.UserRequestDto;
+import com.asap.server.persistence.domain.Meeting;
+import com.asap.server.persistence.domain.Place;
+import com.asap.server.persistence.domain.User;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.PlaceType;
+import com.asap.server.persistence.domain.enums.Role;
+import com.asap.server.persistence.domain.enums.TimeSlot;
import com.asap.server.service.MeetingService;
import jakarta.persistence.EntityManager;
import jakarta.transaction.Transactional;
diff --git a/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategyTest.java b/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategyTest.java
index 08791b48..416ff861 100644
--- a/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategyTest.java
+++ b/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeCasesStrategyTest.java
@@ -1,12 +1,12 @@
package com.asap.server.service.meeting;
-import static com.asap.server.domain.enums.Duration.HALF;
-import static com.asap.server.domain.enums.Duration.HOUR;
-import static com.asap.server.domain.enums.Duration.HOUR_HALF;
-import static com.asap.server.domain.enums.Duration.TWO_HOUR;
+import static com.asap.server.persistence.domain.enums.Duration.HALF;
+import static com.asap.server.persistence.domain.enums.Duration.HOUR;
+import static com.asap.server.persistence.domain.enums.Duration.HOUR_HALF;
+import static com.asap.server.persistence.domain.enums.Duration.TWO_HOUR;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
-import com.asap.server.domain.enums.Duration;
+import com.asap.server.persistence.domain.enums.Duration;
import com.asap.server.service.vo.PossibleTimeCaseVo;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
diff --git a/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategyTest.java b/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategyTest.java
index e5475895..7531dbfb 100644
--- a/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategyTest.java
+++ b/src/test/java/com/asap/server/service/meeting/FindBestMeetingTimeStrategyTest.java
@@ -1,8 +1,7 @@
package com.asap.server.service.meeting;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
-import com.asap.server.service.meeting.FindBestMeetingTimeStrategy;
-import com.asap.server.domain.enums.Duration;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.domain.enums.Duration;
import com.asap.server.service.vo.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
@@ -13,18 +12,18 @@
import java.util.Arrays;
import java.util.List;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_11_00;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_11_30;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_12_00;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_12_30;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_13_00;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_13_30;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_14_00;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_14_30;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_20_00;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_20_30;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_21_00;
-import static com.asap.server.domain.enums.TimeSlot.SLOT_21_30;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_11_00;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_11_30;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_12_00;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_12_30;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_13_00;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_13_30;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_14_00;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_14_30;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_20_00;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_20_30;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_21_00;
+import static com.asap.server.persistence.domain.enums.TimeSlot.SLOT_21_30;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
class FindBestMeetingTimeStrategyTest {
diff --git a/src/test/java/com/asap/server/service/meeting/MeetingTimeRecommendServiceTest.java b/src/test/java/com/asap/server/service/meeting/MeetingTimeRecommendServiceTest.java
index 2b53f818..ca65e1ea 100644
--- a/src/test/java/com/asap/server/service/meeting/MeetingTimeRecommendServiceTest.java
+++ b/src/test/java/com/asap/server/service/meeting/MeetingTimeRecommendServiceTest.java
@@ -1,7 +1,7 @@
package com.asap.server.service.meeting;
-import com.asap.server.domain.enums.Duration;
-import com.asap.server.repository.timeblock.dto.TimeBlockDto;
+import com.asap.server.persistence.domain.enums.Duration;
+import com.asap.server.persistence.repository.timeblock.dto.TimeBlockDto;
import com.asap.server.service.vo.BestMeetingTimeVo;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
@@ -12,7 +12,7 @@
import java.util.Arrays;
import java.util.List;
-import static com.asap.server.domain.enums.TimeSlot.*;
+import static com.asap.server.persistence.domain.enums.TimeSlot.*;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
class MeetingTimeRecommendServiceTest {