미니프로젝트 4일차.
문제점 : 게시글을 작성할 때, timestamped로 entity에서 구현했던 작성시간이 현재 한국시간보다 9시간 늦게 반영되어있는 것을 확인했다.
시도 : aws 서버쪽 시간이 잘못 설정되어있다고 생각해서 git bash로 접속을해서 시간을 봤지만 정상적으로 시간이 떠 있었다.
그래서 조금 더 생각해보니 timestamped가 작성 시간을 생성하는 곳은 DB였기 때문에 AWS RDS DB쪽 시간을 체크해보았다.
콘솔창에 SELECT NOW();를 입력하니 9시간 이른 UTC(Coordinated Universal Time)시간으로 맞춰져 있었다.
해결 : AWS RDS 파라미터 생성으로 들어가서 time/zone을 Asia/Seoul로 맞춰주고 RDS를 즉시반영으로 세팅해서 재부팅하니 해결되었다.
이 방법말고 직접 MySQL에서 쿼리를 날려 직접 바꾸는 방법도 있는데, 여기를 참고해보자.
알게된 것 : TimeStamp를 Entity에서 상속해서 작성시간을 구현하면 DB쪽 시간을 따른다.
@PrePersist
public void prePersist() {
this.createdAt = this.createdAt.plusHours(9);
}
this.createdAt = post.getCreatedAt().withNano(0);
이런식으로 .withNano(0)를 붙이면 깔끔하게 나온다.