Repository navigation
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 59 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
github-actions
Bot
requested review from
jjunh33,
leegain1,
sangrae2325 and
xeoxxn
October 13, 2026 10:12
This was referenced Oct 14, 2026
tnals0924
added this pull request to stack #122
October 14, 2026 07:31
Collaborator
|
|
sangrae2325
approved these changes
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#️⃣연관된 이슈
main으로 바꿉니다.🎯 해결하려는 문제가 무엇인가요?
기동할 때 JVM 기본 시간대를
Asia/Seoul로 고정합니다.❓ 왜 해결해야 하나요?
코드 일부가
LocalDateTime.now()처럼 JVM 기본 시간대를 그대로 씁니다. 컨테이너 시간대가 UTC면 9시간 어긋납니다. 곧 붙일 예약 푸시 알림(행사 D-1, 반납 기한 임박·연체 등)은 날짜와 시각 비교가 많아서, 어긋나면 엉뚱한 날이나 시각에 알림이 갑니다.⭐ 어떻게 해결했나요?
bootstrap에kr.ac.kookmin.stream.bootstrap.config.TimezoneConfig(@Configuration)를 추가했습니다.@PostConstruct에서TimeZone.setDefault(TimeZone.getTimeZone(DateUtil.KST))를 호출합니다. 시간대 값은core:common의DateUtil.KST를 재사용합니다.kr.ac.kookmin.stream.bootstrap으로 옮겼습니다. bootstrap 모듈의 클래스가 루트 패키지에 흩어지지 않게 하려는 것입니다. 메인 클래스 패키지가 탐색 기본값이라 범위가 좁아지므로 루트 패키지(kr.ac.kookmin.stream)로 다시 넓혔습니다.@SpringBootApplication(scanBasePackages = ...)@AutoConfigurationPackage(basePackages = ...). 지금은@EntityScan·@EnableJpaRepositories없이 자동 설정 패키지에 기대고 있습니다@ConfigurationPropertiesScan(...)ApplicationModules.of(StreamServerApplication.BASE_PACKAGE). 클래스를 넘기면 그 패키지(bootstrap)가 루트가 되어 다른 모듈을 찾지 못합니다@SpringBootTest가 테스트 패키지에서 위로 올라가며 메인 클래스를 찾기 때문입니다.architecture.md4-2절("메인 클래스는{basePackage}에 둔다")과 4-4절 예시를 바뀐 위치에 맞게 고쳤습니다.🧩 이 PR의 한계 & 트레이드오프
ModularityTests·DomainImplAccessTests까지만 확인했습니다. Modulith는 기존 모듈을 모두 찾았고(bootstrap모듈이 하나 늘어남) 통과했습니다. 로컬에 DB와 Docker가 없어 탐색 범위를 넓힌 뒤 컨텍스트가 실제로 뜨는지는 확인하지 못했습니다. CI에도 테스트 작업이 없으니, 머지 전에RentalApplyConcurrencyTest(Testcontainers)를 돌리거나 dev에서 기동과 시간대를 확인해야 합니다.⛓️ 기존 기능에 미치는 영향
LocalDateTime.now()·LocalDate.now()를 쓰는 곳의 값이 9시간 늦게(한국 시간으로) 바뀝니다. 지금 운영 중인 시각 비교(행사 모집 상태, 대여 시간 검증 등)는 원래 한국 시간 기준으로 작성되어 있어 의도대로 맞춰집니다.DateUtil.KST를 명시한 곳은 변화가 없습니다.bootJar는 메인 클래스를 자동으로 찾으므로 Dockerfile·배포 설정은 바꾸지 않았습니다.DEFAULT CURRENT_TIMESTAMP는 MySQL 서버 시간대를 따르므로 이 PR과 무관합니다.🔀 Edge Case & 실패 시나리오
Asia/Seoul로 고정합니다.📋 검토한 대안과 선택 이유
main()에서SpringApplication.run전에 지정: 로깅보다도 먼저 적용되지만, 실행 설정을 설정 클래스로 모으려고config패키지에 두었습니다.JAVA_OPTS=-Duser.timezone=Asia/Seoul또는 컨테이너TZ환경변수: 배포 환경 설정에 의존해서, 빠뜨리면 조용히 UTC로 돕니다. 코드로 고정했습니다.💬 리뷰 포인트
StreamServerApplication의 탐색 범위 설정(scanBasePackages,@AutoConfigurationPackage,@ConfigurationPropertiesScan)에 빠진 것이 없는지@PostConstruct적용 시점이 충분한지