Timezone 이란?
동일한 로컬 시간을 따르는 지역을 의미하며, 주로 해당 국가에 의해 법적으로 지정된다.
=> 즉, 정치나 경제적인 이유로 변경이 될 수도 있다. 실제로 우리나라도 변경된 사례가 있다고 한다.
보통 국가별로 각자의 고유한 타임존을 가지고 있으며, 면적이 큰 나라들은 지역별로 각지 다른 타임존을 사용할 수도 있다.
GMT, UTC, Offset이란?
GMT (GreenWich Mean Time)
옛날에는 시간의 개념이 희박했다. 생활권이 그리 넓지 않았기에 각지 지역마다 시간을 다르게 표시했고, 한마디로 '표준'이라는게 없었다. 하지만 기차가 발명되고 사람들의 생활권이 넓어지며 시간 표준이 필요해졌다!
그렇게 생겨난게 영국 그리니치 천문대를 기준으로 하는 태양시간이다.
UTC (Coordinated Universal Time)
그렇다면 UTC는 무엇인가? 그리니치 천문대는 (어떠한 이유로..) 오차가 생길 수 있기때문에 더 정확하게 발명한 시간이 UTC이다. 그래서 실제 소프트웨어를 사용할때는 UTC라고 하는것이 더 정확한 표현이다.
브라우저에 따라 기본 설정이 GMT일수도 있고, UTC일 수도 있다. 하지만 시간 차이는 그리 크지않다고는 하더라.
Offset
UTC기준으로 시간이 얼마나 빠르고 늦는지를 표현한 식이다.
예를 들어 한국은 UTC +9 인데, 이것은 UTC 기준시보다 9시간이 빠르다는 의미이다. 즉 UTC와의 차이를 나타낸것이며 +09:00, -03:00과 같이 표현된다.
글로벌 서비스 구축을 위한 Timezone 적용하기
모든 통신은 UTC로 한다.
서버에서의 모든 통신은 UTC로 하고 client에서 UTC 기준의 시간 데이터를 클라이언트단에서 각 나라에 맞게 변경해서 보여주면 된다.
Timezone을 해결하기 위한 방법
1. 한 국가에서만(정확히는 한 타임존에서만) 서비스를 할 것이라면, 서버 타임존 설정을 맞춘다.
2. 여러 국가에서 서비스를 할 예정이라면..
a. DB, server에서는 UTC로 통신을 한다. 대신 프론트 단에서 요청에 알맞게 변경해서 보여준다.
b. server에 서비스의 offset값을 저장해두고 그 값으로 계산해서 내려준다...
참조