TypeOrm으로 개발을 하다보면 꼭 정해줘야하는 "timezone"에 대해서 알아보자.
우선 UTC시간과 KST에 대해 알고있어야한다.
- UTC시간은 협정세계시 , UTC +- 00:00
- KST시간은 한국시간 , UTC +09:00
개발을 할때 같은 시간인데 DB에 UTC, KST 시간이 섞여서 나올때도 있다.
ex) DB에 값은 2023-01-28 00:00:00 이지만
TypeOrm으로 가져왔을땐 2023-01-27 15:00:00로 변경이 되있다.
ex) 서버에서 DB의 시간값을 읽는 과정에서 offset이 0인값을 읽어온 후 KST시간 +09:00인 값으로 변환을 해버리는 현상
왜 이런현상이 발생하는걸까?
-> TypeOrm이 시스템의 타임존을 따라가기 떄문이다.
TypeOrm은 디비와 연결하면서 시간 offset을 계산해주는 기능이 있는데 이 연결고리가 잘못 된것이다.
현재 TypeOrm 의 시간을 확인하려면 터미널창에서 이렇게 해보면 된다.
$ date
일단 내 프로젝트의 시간구성은
DB : UCT / TypeOrm : Local(KST) / WAS : KST / AWS EC2 : UTC
이런식으로 구성이 되있는데 TypeOrm만 UCT로 바꿔주는게 제일 합리적이다.
바꿔주는 방법은 간단하다.
app.module 파일이다.
timezone: 'z'
타임존 'z'만 추가해주면 이제 TypeOrm은 UCT시간을 사용하게 된다.
'Web > TypeOrm' 카테고리의 다른 글
[TypeORM] 밤 12시, 수만 명의 출석체크에 대응한 동시성 문제 해결기 (1) | 2024.03.20 |
---|---|
[TypeOrm] loadRelationCountAndMap() - 관계된 데이터의 갯수를 쉽게 세는 방법 (0) | 2023.11.05 |
[TypeOrm] TypeORM으로 upsert(), save() 안될 시 해결방법 (2) | 2023.03.18 |
[TypeOrm] IN조건으로 배열 검색 "Typeorm find where in array" (0) | 2023.02.15 |
[TypeOrm] 차이를 알고쓰자 save() , insert() , update() (0) | 2023.01.25 |