From d47e4dfce70d721d7fd1cc6325df4d1a2b566ac4 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 5 Oct 2025 20:01:08 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=95=A0=ED=94=8C=EB=A6=AC=EC=BC=80?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20Timezone=20UTC=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/docker-compose.yaml | 2 +- .../roomescape/RoomescapeApplication.kt | 4 ++++ .../src/main/resources/application-local.yaml | 2 +- .../roomescape/supports/KotestConfig.kt | 22 ++++++++++++------- .../src/test/resources/application-test.yaml | 2 +- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index 83ce6703..995e40fb 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -8,7 +8,7 @@ services: environment: MYSQL_ROOT_PASSWORD: init MYSQL_DATABASE: roomescape_local - TZ: Asia/Seoul + TZ: UTC command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci diff --git a/service/src/main/kotlin/com/sangdol/roomescape/RoomescapeApplication.kt b/service/src/main/kotlin/com/sangdol/roomescape/RoomescapeApplication.kt index c8b5682f..c8a3ee8a 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/RoomescapeApplication.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/RoomescapeApplication.kt @@ -3,6 +3,7 @@ package com.sangdol.roomescape import org.springframework.boot.Banner import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.SpringBootApplication +import java.util.* @SpringBootApplication( scanBasePackages = ["com.sangdol.roomescape", "com.sangdol.common"] @@ -10,6 +11,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication class RoomescapeApplication fun main(args: Array) { + System.setProperty("user.timezone", "UTC") + TimeZone.setDefault(TimeZone.getTimeZone("UTC")) + val springApplication = SpringApplication(RoomescapeApplication::class.java) springApplication.setBannerMode(Banner.Mode.OFF) springApplication.run() diff --git a/service/src/main/resources/application-local.yaml b/service/src/main/resources/application-local.yaml index bd8e9026..101feddf 100644 --- a/service/src/main/resources/application-local.yaml +++ b/service/src/main/resources/application-local.yaml @@ -7,7 +7,7 @@ spring: ddl-auto: validate datasource: hikari: - jdbc-url: jdbc:mysql://localhost:23306/roomescape_local + jdbc-url: jdbc:mysql://localhost:23306/roomescape_local?useLegacyDatetimeCode=false&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: init diff --git a/service/src/test/kotlin/com/sangdol/roomescape/supports/KotestConfig.kt b/service/src/test/kotlin/com/sangdol/roomescape/supports/KotestConfig.kt index fbbe81b0..a9eae9bf 100644 --- a/service/src/test/kotlin/com/sangdol/roomescape/supports/KotestConfig.kt +++ b/service/src/test/kotlin/com/sangdol/roomescape/supports/KotestConfig.kt @@ -1,5 +1,13 @@ package com.sangdol.roomescape.supports +import com.sangdol.roomescape.admin.infrastructure.persistence.AdminRepository +import com.sangdol.roomescape.payment.business.PaymentWriter +import com.sangdol.roomescape.payment.infrastructure.persistence.PaymentRepository +import com.sangdol.roomescape.reservation.infrastructure.persistence.ReservationRepository +import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleRepository +import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository +import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeRepository +import com.sangdol.roomescape.user.infrastructure.persistence.UserRepository import io.kotest.core.config.AbstractProjectConfig import io.kotest.core.spec.Spec import io.kotest.core.spec.style.FunSpec @@ -13,17 +21,15 @@ import org.springframework.boot.test.web.server.LocalServerPort import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Import import org.springframework.test.context.ActiveProfiles -import com.sangdol.roomescape.admin.infrastructure.persistence.AdminRepository -import com.sangdol.roomescape.payment.business.PaymentWriter -import com.sangdol.roomescape.payment.infrastructure.persistence.PaymentRepository -import com.sangdol.roomescape.reservation.infrastructure.persistence.ReservationRepository -import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleRepository -import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository -import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeRepository -import com.sangdol.roomescape.user.infrastructure.persistence.UserRepository +import java.util.* object KotestConfig : AbstractProjectConfig() { override fun extensions(): List = listOf(SpringExtension) + override suspend fun beforeProject() { + super.beforeProject() + System.setProperty("user.timezone", "UTC") + TimeZone.setDefault(TimeZone.getTimeZone("UTC")) + } } @Import(TestConfig::class) diff --git a/service/src/test/resources/application-test.yaml b/service/src/test/resources/application-test.yaml index 984a5f84..c4e369dc 100644 --- a/service/src/test/resources/application-test.yaml +++ b/service/src/test/resources/application-test.yaml @@ -10,7 +10,7 @@ spring: ddl-auto: validate datasource: hikari: - jdbc-url: jdbc:mysql://localhost:23306/roomescape_local + jdbc-url: jdbc:mysql://localhost:23306/roomescape_local?useLegacyDatetimeCode=false&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: init