TIL(Today Ingwang Learned)
TIL) 2023-01-31 (실전 프로젝트)
김코식
2023. 2. 1. 04:15
서버에 배포를 한 뒤 프론트와 데이터 통신을 하는 과정에서 방금 작성한 게시글이나 댓글의 작성 시간이 ~시간 전으로 되는 오류가 발생했다..
구글링을 통해 찾아보니 ec2서버의 실행 지역이 대한민국이 아니고 다른 지역으로 설정되어 있어 발생한 오류였고 해결하기 위해 Timezone을 대한민국으로 설정 하면 될것이라고 생각했다.
ec2 에서 Timezone 설정하기
배포 파일을 실행할때 설정해주기
>> java -jar -Duser.timezone=Asia/Seoul 배포파일.jar 을 통해 배포 파일의 timezone을 설정했더니 잘 적용되는것을 확인했다.
하지만 이렇게 수동적으로 timezone을 설정하면 배포시 수시로 코드를 입력해야되는 불편함이 있었고 이를 해결하기 위해 빈 생명주기를이용한 timezone을 설정하는 방법에 대해 알아봤다.
@PostConstruct
public void started(){
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul"));
}
@PostConstruct 는 bean이 초기화 된 후 딱 한번 호출되는 어노테이션이고 @SpringBootApplication 어노테이션이 부여된 class에서 작성하면 어플리케이션 실행시 timezone을 설정할 수 있었다.
@SpringBootApplication
@EnableJpaAuditing
@EnableScheduling
public class PulbatteApplication {
@PostConstruct
public void started(){
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul"));
}
public static void main(String[] args) {
SpringApplication.run(PulbatteApplication.class, args);
}
}
참고 자료
https://galid1.tistory.com/646