문제상황
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"));
}
'Etc. > 개인공부' 카테고리의 다른 글
| [프로그래머스 / Java] [level 1] 숫자 짝꿍 (0) | 2026.02.06 |
|---|---|
| [프로그래머스 / Java] [level 0] 특별한 이차원 배열 1 (0) | 2025.01.07 |
| [프로그래머스 / Java] [level 0] 배열 비교하기 (0) | 2025.01.01 |
| [프로그래머스 / Java] [level 0] 배열의 길이에 따라 다른 연산하기 (0) | 2024.12.30 |
| [프로그래머스 / Java] [level 0] 부분 문자열 이어 붙여 문자열 만들기 (StringBuilder, StringBuffer) (0) | 2024.12.29 |