Etc./개인공부

배포 시 생각 못한 문제점 (TimeZone)

baek-dev 2026. 2. 27. 23:27

문제상황

EC2에 springboot, mysql, redis를 docker로 실행중.

서비스의 게시글 작성시간이 한국기준(KST)이 아닌 UTC+0 기준으로 나오는걸 확인.
하지만, DB상에는 KST로 저장되어 있음.

 

원인분석

모든곳에 date를 찍어본 결과,
EC2와 springboot 는 UTC.

mysql과 redis는 생성시 타임존(Asia/seoul)을 명시해줬기 때문에 KST 로 나오는걸 확인.

 

찾아본 결과,

AWS리전이 서울(ap-northeast-2)이라고 해도, EC2의 OS 타임존이 KST가 되는것은 아님.

 

문제해결

글로벌 서비스로 확장할 것을 고려한다면, 모두 UTC로 맞춘 뒤 프론트에서 지역에 따라 시간을 변환하는 것을 권장.

하지만, 국내 서비스만 고려중이기 때문에, 내 EC2와 springboot를 KST로 맞추기로 결정.

 

 

EC2에서 timezone 변경

sudo timedatectl set-timezone Asia/Seoul

 

springboot 에서 timezone 변경 (springboot 실행 파일에 추가)

@PostConstruct
public void init() {
    TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul"));
}