BackEnd/Spring

SpringBoot 서버 배포 시, 한국 시간(KTC)으로 배포하는 방법

PgmJUN 2023. 8. 2. 19:42

 

스프링부트 서버 한국 시간(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