Node.js로 API 서버를 개발할 때 대부분 Sequelize를 사용하게 됩니다.
Sequelize의 기본 시간설정은 Universal Time Coordonne (이하 UTC)를 사용합니다.
UTC는 영국의 그리니치 천문대 시간을 기준점으로 합니다.
이 기준점을 기준으로 우리나라 (Asia/Seoul)는 9시간이 빠릅니다.
UTC +09:00로 표현할 수 있습니다.
기본설정이 UTC로 되어있기 때문에 MySQL 데이터베이스 (이하 DB)에 DATETIME 형태로 Insert를 하게되면
정확히 9시간 차이로 저장됩니다.
moment-timezon 모듈도 사용했는데 9시간 차이가 발생하는 이상함을 감지할 수 있습니다.
문제를 해결하기 위해서 아래와 같이 Sequelize의 config.json 파일에 timezone 설정을 추가 해주면 됩니다.
우리나라 (Asia/Seoul)가 UTC기준으로 9시간 빠르기 때문에 9시간을 더해줍니다.
{
"development": {
"username": "dev",
"password": "dev123!",
"database": "illua",
"host": "127.0.0.1",
"dialect": "mysql",
"timezone": "+09:00" //utc +09:00
},
문제 해결에 도움되셨다면 좋겠습니다.
감사합니다.
반응형