DEV에서 localDateTime이 달랐다. 한국시간보다 9시간 이전이기에, UTC기준 시간으로 보였다.
WEB Application이 배포된 서버의 TimeZone을 봐야한다.
NCP(TZ -> Seoul)에 배포하였지만, 그 전에 Application을 Docker에 배포하였기에 웹을 배포한 실질적인 서버는 Docker Container이고 Docker Container의 TimeZone을 체크해야한다.
Spring Application을 Docker를 Container를 사용하고 이를 NCP에 배포하며 사용하고 있다. 그렇다면 Spring 웹의 배포된 서버는 사실상 Docker Container이고 이를 NCP에 호스팅한 것으로 봐야한다.
문제해결)
이때, CI/CD로 docker image를 자동배포하고 있다.
CI/CD를 통해 이미지를 만들고 NCP에 접속해서 docker compose up을 시켜주고 있다.
따라서, 아래와 같이 docker-compose.yml을 수정해주면, docker conatiner가 실행될때 TZ가 Asia/Seoul이 된다.
그리고, Volumes는 volume을 마운트할 수 있다.
즉, 로컬 파일에 설정된 시간대로 docker에 연결하겠다는 것이다. :ro는 read only이다.
이렇게, 9시간 차이나던 craetedAt, updatedAt이 현재 서울 시간으로 정상 반영되도록 변경되었다.
아래는 NCP 서버에 접속해서 mount된 파일을 cat으로 본 것이고 encoding때매 파일이 깨져보인다. 그러나 가장 아래 KST-9를 확인할 수 있고 한국 표준시간으로 적용된 것을 확인할 수 있었다.