스프링부트 서버 한국 시간(KTC)으로 배포하는 방법
문제 상황 🔥
라이온하트의 챌린지 기능요소 중, 출석체크 기능이 존재하기 때문에 DB에 출석 시간을 저장하는 로직이 존재한다.
때문에 EC2 인스턴스에서 timedatectl 설정과 localtime 설정(아래)을 통해 인스턴스의 시간을 한국 시간으로 맞춰놓았다.
# ubuntu22.04 localtime 설정
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
이렇게 설정하니 Database에 시간 값을 입력할 때, 한국 기준 시간이 제대로 입력되는 것을 확인할 수 있었다.
하지만 출석 체크 시간 필드가 존재하는 레코드를 자바의 엔티티 객체와 매핑하는 과정에서,
LocalDateTime 타입으로 매핑되는 출석체크 시간이 UTC로 표시되는 문제가 발생했다.
해결 방법 ✅
해당 문제를 java -jar 명령을 통해 스프링부트 어플리케이션 실행 명령에,
아래와 같은 -Duser.timezone=Asia/Seoul 옵션를 붙여주어 해결하였다
java -jar -Duser.timezone=Asia/Seoul lionheart.jar
728x90
'BackEnd > Spring' 카테고리의 다른 글
@Configuration과 싱글톤 (with. CGLIB) (0) | 2024.04.11 |
---|---|
SpringBoot 멀티모듈 프로젝트 - 모듈 간 의존관계 설정 오류 해결 (0) | 2024.01.10 |
LogBack을 통한 SpringBoot 로깅(Logging) 처리 (0) | 2023.07.25 |
스프링부트 예외 발생 시, Slack으로 알림 보내기 (feat. Slack WebHooks) (2) | 2023.06.29 |
JPA @Modifying 어노테이션 - clearAutomatically, flushAutomatically란? (0) | 2023.06.27 |