From fae11c42121eb735c7852d5bcc5a769caaeab8a1 Mon Sep 17 00:00:00 2001 From: pricelees Date: Thu, 17 Jul 2025 09:16:58 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20theme=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=20=EA=B5=AC=EC=A1=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/reservation/domain/Reservation.java | 2 +- .../dto/response/ReservationResponse.java | 2 +- .../reservation/service/ReservationService.java | 4 ++-- .../theme/{service => business}/ThemeService.java | 13 ++++++------- .../persistence}/Theme.java | 2 +- .../persistence}/ThemeRepository.java | 4 +--- .../theme/{controller => web}/ThemeController.java | 7 ++----- .../roomescape/theme/{dto => web}/ThemeRequest.java | 2 +- .../theme/{dto => web}/ThemeResponse.java | 4 ++-- .../theme/{dto => web}/ThemesResponse.java | 2 +- .../payment/business/PaymentServiceTest.java | 4 ++-- .../controller/ReservationControllerTest.java | 6 ++---- .../controller/ReservationTimeControllerTest.java | 4 ++-- .../reservation/domain/ReservationTest.java | 2 +- .../ReservationSearchSpecificationTest.java | 4 ++-- .../reservation/service/ReservationServiceTest.java | 6 +++--- .../service/ReservationTimeServiceTest.java | 4 ++-- .../service/ReservationWithPaymentServiceTest.java | 4 ++-- .../{service => business}/ThemeServiceTest.java | 12 ++++++------ .../{controller => web}/ThemeControllerTest.java | 2 +- src/test/java/roomescape/util/Fixtures.kt | 2 +- 21 files changed, 42 insertions(+), 50 deletions(-) rename src/main/java/roomescape/theme/{service => business}/ThemeService.java (86%) rename src/main/java/roomescape/theme/{domain => infrastructure/persistence}/Theme.java (95%) rename src/main/java/roomescape/theme/{domain/repository => infrastructure/persistence}/ThemeRepository.java (90%) rename src/main/java/roomescape/theme/{controller => web}/ThemeController.java (95%) rename src/main/java/roomescape/theme/{dto => web}/ThemeRequest.java (97%) rename src/main/java/roomescape/theme/{dto => web}/ThemeResponse.java (88%) rename src/main/java/roomescape/theme/{dto => web}/ThemesResponse.java (91%) rename src/test/java/roomescape/theme/{service => business}/ThemeServiceTest.java (94%) rename src/test/java/roomescape/theme/{controller => web}/ThemeControllerTest.java (99%) diff --git a/src/main/java/roomescape/reservation/domain/Reservation.java b/src/main/java/roomescape/reservation/domain/Reservation.java index 228f5b04..0cb0b972 100644 --- a/src/main/java/roomescape/reservation/domain/Reservation.java +++ b/src/main/java/roomescape/reservation/domain/Reservation.java @@ -18,7 +18,7 @@ import jakarta.persistence.ManyToOne; import roomescape.common.exception.ErrorType; import roomescape.common.exception.RoomescapeException; import roomescape.member.infrastructure.persistence.Member; -import roomescape.theme.domain.Theme; +import roomescape.theme.infrastructure.persistence.Theme; @Entity public class Reservation { diff --git a/src/main/java/roomescape/reservation/dto/response/ReservationResponse.java b/src/main/java/roomescape/reservation/dto/response/ReservationResponse.java index ba4ecb2b..f1fa1704 100644 --- a/src/main/java/roomescape/reservation/dto/response/ReservationResponse.java +++ b/src/main/java/roomescape/reservation/dto/response/ReservationResponse.java @@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import roomescape.member.web.MemberResponse; import roomescape.reservation.domain.Reservation; import roomescape.reservation.domain.ReservationStatus; -import roomescape.theme.dto.ThemeResponse; +import roomescape.theme.web.ThemeResponse; @Schema(name = "예약 정보", description = "예약 저장 및 조회 응답에 사용됩니다.") public record ReservationResponse( diff --git a/src/main/java/roomescape/reservation/service/ReservationService.java b/src/main/java/roomescape/reservation/service/ReservationService.java index 5b8c4efd..17e228a0 100644 --- a/src/main/java/roomescape/reservation/service/ReservationService.java +++ b/src/main/java/roomescape/reservation/service/ReservationService.java @@ -24,8 +24,8 @@ import roomescape.reservation.dto.request.WaitingRequest; import roomescape.reservation.dto.response.MyReservationsResponse; import roomescape.reservation.dto.response.ReservationResponse; import roomescape.reservation.dto.response.ReservationsResponse; -import roomescape.theme.domain.Theme; -import roomescape.theme.service.ThemeService; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.business.ThemeService; @Service @Transactional diff --git a/src/main/java/roomescape/theme/service/ThemeService.java b/src/main/java/roomescape/theme/business/ThemeService.java similarity index 86% rename from src/main/java/roomescape/theme/service/ThemeService.java rename to src/main/java/roomescape/theme/business/ThemeService.java index aabc2790..0b46b3dc 100644 --- a/src/main/java/roomescape/theme/service/ThemeService.java +++ b/src/main/java/roomescape/theme/business/ThemeService.java @@ -1,4 +1,4 @@ -package roomescape.theme.service; +package roomescape.theme.business; import java.time.LocalDate; import java.util.List; @@ -9,12 +9,11 @@ import org.springframework.transaction.annotation.Transactional; import roomescape.common.exception.ErrorType; import roomescape.common.exception.RoomescapeException; -import roomescape.reservation.domain.repository.ReservationRepository; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; -import roomescape.theme.dto.ThemeRequest; -import roomescape.theme.dto.ThemeResponse; -import roomescape.theme.dto.ThemesResponse; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; +import roomescape.theme.web.ThemeRequest; +import roomescape.theme.web.ThemeResponse; +import roomescape.theme.web.ThemesResponse; @Service @Transactional diff --git a/src/main/java/roomescape/theme/domain/Theme.java b/src/main/java/roomescape/theme/infrastructure/persistence/Theme.java similarity index 95% rename from src/main/java/roomescape/theme/domain/Theme.java rename to src/main/java/roomescape/theme/infrastructure/persistence/Theme.java index 19513cd9..9f5f64c8 100644 --- a/src/main/java/roomescape/theme/domain/Theme.java +++ b/src/main/java/roomescape/theme/infrastructure/persistence/Theme.java @@ -1,4 +1,4 @@ -package roomescape.theme.domain; +package roomescape.theme.infrastructure.persistence; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; diff --git a/src/main/java/roomescape/theme/domain/repository/ThemeRepository.java b/src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.java similarity index 90% rename from src/main/java/roomescape/theme/domain/repository/ThemeRepository.java rename to src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.java index 17e5f491..c149a67d 100644 --- a/src/main/java/roomescape/theme/domain/repository/ThemeRepository.java +++ b/src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.java @@ -1,4 +1,4 @@ -package roomescape.theme.domain.repository; +package roomescape.theme.infrastructure.persistence; import java.time.LocalDate; import java.util.List; @@ -6,8 +6,6 @@ import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import roomescape.theme.domain.Theme; - public interface ThemeRepository extends JpaRepository { @Query(value = """ diff --git a/src/main/java/roomescape/theme/controller/ThemeController.java b/src/main/java/roomescape/theme/web/ThemeController.java similarity index 95% rename from src/main/java/roomescape/theme/controller/ThemeController.java rename to src/main/java/roomescape/theme/web/ThemeController.java index 224190d5..b75758d1 100644 --- a/src/main/java/roomescape/theme/controller/ThemeController.java +++ b/src/main/java/roomescape/theme/web/ThemeController.java @@ -1,4 +1,4 @@ -package roomescape.theme.controller; +package roomescape.theme.web; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -25,10 +25,7 @@ import roomescape.auth.web.support.Admin; import roomescape.auth.web.support.LoginRequired; import roomescape.common.dto.response.RoomescapeApiResponse; import roomescape.common.dto.response.RoomescapeErrorResponse; -import roomescape.theme.dto.ThemeRequest; -import roomescape.theme.dto.ThemeResponse; -import roomescape.theme.dto.ThemesResponse; -import roomescape.theme.service.ThemeService; +import roomescape.theme.business.ThemeService; @RestController @Tag(name = "5. 테마 API", description = "테마를 조회 / 추가 / 삭제할 때 사용합니다.") diff --git a/src/main/java/roomescape/theme/dto/ThemeRequest.java b/src/main/java/roomescape/theme/web/ThemeRequest.java similarity index 97% rename from src/main/java/roomescape/theme/dto/ThemeRequest.java rename to src/main/java/roomescape/theme/web/ThemeRequest.java index 438c9645..30725515 100644 --- a/src/main/java/roomescape/theme/dto/ThemeRequest.java +++ b/src/main/java/roomescape/theme/web/ThemeRequest.java @@ -1,4 +1,4 @@ -package roomescape.theme.dto; +package roomescape.theme.web; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; diff --git a/src/main/java/roomescape/theme/dto/ThemeResponse.java b/src/main/java/roomescape/theme/web/ThemeResponse.java similarity index 88% rename from src/main/java/roomescape/theme/dto/ThemeResponse.java rename to src/main/java/roomescape/theme/web/ThemeResponse.java index f95ab31b..fc5711ff 100644 --- a/src/main/java/roomescape/theme/dto/ThemeResponse.java +++ b/src/main/java/roomescape/theme/web/ThemeResponse.java @@ -1,7 +1,7 @@ -package roomescape.theme.dto; +package roomescape.theme.web; import io.swagger.v3.oas.annotations.media.Schema; -import roomescape.theme.domain.Theme; +import roomescape.theme.infrastructure.persistence.Theme; @Schema(name = "테마 정보", description = "테마 추가 및 조회 응답에 사용됩니다.") public record ThemeResponse( diff --git a/src/main/java/roomescape/theme/dto/ThemesResponse.java b/src/main/java/roomescape/theme/web/ThemesResponse.java similarity index 91% rename from src/main/java/roomescape/theme/dto/ThemesResponse.java rename to src/main/java/roomescape/theme/web/ThemesResponse.java index 2ea88862..bf1b9e22 100644 --- a/src/main/java/roomescape/theme/dto/ThemesResponse.java +++ b/src/main/java/roomescape/theme/web/ThemesResponse.java @@ -1,4 +1,4 @@ -package roomescape.theme.dto; +package roomescape.theme.web; import java.util.List; diff --git a/src/test/java/roomescape/payment/business/PaymentServiceTest.java b/src/test/java/roomescape/payment/business/PaymentServiceTest.java index 10a5dbb8..9bb7c79b 100644 --- a/src/test/java/roomescape/payment/business/PaymentServiceTest.java +++ b/src/test/java/roomescape/payment/business/PaymentServiceTest.java @@ -27,8 +27,8 @@ import roomescape.reservation.domain.ReservationStatus; import roomescape.reservation.domain.ReservationTime; import roomescape.reservation.domain.repository.ReservationRepository; import roomescape.reservation.domain.repository.ReservationTimeRepository; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; @SpringBootTest @Sql(scripts = "/truncate.sql", executionPhase = ExecutionPhase.BEFORE_TEST_METHOD) diff --git a/src/test/java/roomescape/reservation/controller/ReservationControllerTest.java b/src/test/java/roomescape/reservation/controller/ReservationControllerTest.java index a026ee41..5956e6bb 100644 --- a/src/test/java/roomescape/reservation/controller/ReservationControllerTest.java +++ b/src/test/java/roomescape/reservation/controller/ReservationControllerTest.java @@ -2,7 +2,6 @@ package roomescape.reservation.controller; import static org.assertj.core.api.Assertions.*; import static org.hamcrest.Matchers.*; -import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; @@ -12,7 +11,6 @@ import java.time.LocalTime; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.Map; -import java.util.Optional; import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; @@ -51,8 +49,8 @@ import roomescape.reservation.domain.repository.ReservationTimeRepository; import roomescape.reservation.dto.request.AdminReservationRequest; import roomescape.reservation.dto.request.ReservationRequest; import roomescape.reservation.dto.request.WaitingRequest; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Sql(scripts = "/truncate.sql", executionPhase = ExecutionPhase.BEFORE_TEST_METHOD) diff --git a/src/test/java/roomescape/reservation/controller/ReservationTimeControllerTest.java b/src/test/java/roomescape/reservation/controller/ReservationTimeControllerTest.java index 9f809fe9..8a480148 100644 --- a/src/test/java/roomescape/reservation/controller/ReservationTimeControllerTest.java +++ b/src/test/java/roomescape/reservation/controller/ReservationTimeControllerTest.java @@ -29,8 +29,8 @@ import roomescape.reservation.domain.ReservationStatus; import roomescape.reservation.domain.ReservationTime; import roomescape.reservation.domain.repository.ReservationRepository; import roomescape.reservation.domain.repository.ReservationTimeRepository; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @Sql(scripts = "/truncate.sql", executionPhase = ExecutionPhase.BEFORE_TEST_METHOD) diff --git a/src/test/java/roomescape/reservation/domain/ReservationTest.java b/src/test/java/roomescape/reservation/domain/ReservationTest.java index ba1bc491..a8518ce1 100644 --- a/src/test/java/roomescape/reservation/domain/ReservationTest.java +++ b/src/test/java/roomescape/reservation/domain/ReservationTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.params.provider.MethodSource; import roomescape.member.infrastructure.persistence.Member; import roomescape.member.infrastructure.persistence.Role; import roomescape.common.exception.RoomescapeException; -import roomescape.theme.domain.Theme; +import roomescape.theme.infrastructure.persistence.Theme; public class ReservationTest { diff --git a/src/test/java/roomescape/reservation/domain/repository/ReservationSearchSpecificationTest.java b/src/test/java/roomescape/reservation/domain/repository/ReservationSearchSpecificationTest.java index 89dda95c..f8969539 100644 --- a/src/test/java/roomescape/reservation/domain/repository/ReservationSearchSpecificationTest.java +++ b/src/test/java/roomescape/reservation/domain/repository/ReservationSearchSpecificationTest.java @@ -19,8 +19,8 @@ import roomescape.member.infrastructure.persistence.Role; import roomescape.reservation.domain.Reservation; import roomescape.reservation.domain.ReservationStatus; import roomescape.reservation.domain.ReservationTime; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; @DataJpaTest class ReservationSearchSpecificationTest { diff --git a/src/test/java/roomescape/reservation/service/ReservationServiceTest.java b/src/test/java/roomescape/reservation/service/ReservationServiceTest.java index cd3cb65b..8860d216 100644 --- a/src/test/java/roomescape/reservation/service/ReservationServiceTest.java +++ b/src/test/java/roomescape/reservation/service/ReservationServiceTest.java @@ -27,9 +27,9 @@ import roomescape.reservation.dto.request.ReservationRequest; import roomescape.reservation.dto.request.WaitingRequest; import roomescape.reservation.dto.response.ReservationResponse; import roomescape.common.exception.RoomescapeException; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; -import roomescape.theme.service.ThemeService; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; +import roomescape.theme.business.ThemeService; @SpringBootTest @Sql(scripts = "/truncate.sql", executionPhase = ExecutionPhase.BEFORE_TEST_METHOD) diff --git a/src/test/java/roomescape/reservation/service/ReservationTimeServiceTest.java b/src/test/java/roomescape/reservation/service/ReservationTimeServiceTest.java index 76d4e97a..7d41288b 100644 --- a/src/test/java/roomescape/reservation/service/ReservationTimeServiceTest.java +++ b/src/test/java/roomescape/reservation/service/ReservationTimeServiceTest.java @@ -23,8 +23,8 @@ import roomescape.reservation.domain.repository.ReservationRepository; import roomescape.reservation.domain.repository.ReservationTimeRepository; import roomescape.reservation.dto.request.ReservationTimeRequest; import roomescape.common.exception.RoomescapeException; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; @SpringBootTest @Import(ReservationTimeService.class) diff --git a/src/test/java/roomescape/reservation/service/ReservationWithPaymentServiceTest.java b/src/test/java/roomescape/reservation/service/ReservationWithPaymentServiceTest.java index b0f589c3..509182da 100644 --- a/src/test/java/roomescape/reservation/service/ReservationWithPaymentServiceTest.java +++ b/src/test/java/roomescape/reservation/service/ReservationWithPaymentServiceTest.java @@ -28,8 +28,8 @@ import roomescape.reservation.domain.repository.ReservationRepository; import roomescape.reservation.domain.repository.ReservationTimeRepository; import roomescape.reservation.dto.request.ReservationRequest; import roomescape.reservation.dto.response.ReservationResponse; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; @SpringBootTest @Sql(scripts = "/truncate.sql", executionPhase = ExecutionPhase.BEFORE_TEST_METHOD) diff --git a/src/test/java/roomescape/theme/service/ThemeServiceTest.java b/src/test/java/roomescape/theme/business/ThemeServiceTest.java similarity index 94% rename from src/test/java/roomescape/theme/service/ThemeServiceTest.java rename to src/test/java/roomescape/theme/business/ThemeServiceTest.java index 6a440389..5e42d70c 100644 --- a/src/test/java/roomescape/theme/service/ThemeServiceTest.java +++ b/src/test/java/roomescape/theme/business/ThemeServiceTest.java @@ -1,4 +1,4 @@ -package roomescape.theme.service; +package roomescape.theme.business; import static org.assertj.core.api.Assertions.*; @@ -23,11 +23,11 @@ import roomescape.reservation.dto.response.ReservationTimeResponse; import roomescape.reservation.service.ReservationService; import roomescape.reservation.service.ReservationTimeService; import roomescape.common.exception.RoomescapeException; -import roomescape.theme.domain.Theme; -import roomescape.theme.domain.repository.ThemeRepository; -import roomescape.theme.dto.ThemeRequest; -import roomescape.theme.dto.ThemeResponse; -import roomescape.theme.dto.ThemesResponse; +import roomescape.theme.infrastructure.persistence.Theme; +import roomescape.theme.infrastructure.persistence.ThemeRepository; +import roomescape.theme.web.ThemeRequest; +import roomescape.theme.web.ThemeResponse; +import roomescape.theme.web.ThemesResponse; @DataJpaTest @Import({ReservationTimeService.class, ReservationService.class, MemberService.class, ThemeService.class}) diff --git a/src/test/java/roomescape/theme/controller/ThemeControllerTest.java b/src/test/java/roomescape/theme/web/ThemeControllerTest.java similarity index 99% rename from src/test/java/roomescape/theme/controller/ThemeControllerTest.java rename to src/test/java/roomescape/theme/web/ThemeControllerTest.java index 391ed044..1956bce0 100644 --- a/src/test/java/roomescape/theme/controller/ThemeControllerTest.java +++ b/src/test/java/roomescape/theme/web/ThemeControllerTest.java @@ -1,4 +1,4 @@ -package roomescape.theme.controller; +package roomescape.theme.web; import static org.hamcrest.Matchers.*; diff --git a/src/test/java/roomescape/util/Fixtures.kt b/src/test/java/roomescape/util/Fixtures.kt index abe061ac..bf9bd32d 100644 --- a/src/test/java/roomescape/util/Fixtures.kt +++ b/src/test/java/roomescape/util/Fixtures.kt @@ -11,7 +11,7 @@ import roomescape.payment.web.PaymentCancel import roomescape.reservation.domain.Reservation import roomescape.reservation.domain.ReservationStatus import roomescape.reservation.domain.ReservationTime -import roomescape.theme.domain.Theme +import roomescape.theme.infrastructure.persistence.Theme import java.time.LocalDate import java.time.LocalTime import java.time.OffsetDateTime