1. 개요
시간 관련된 개발을 하다보면 로컬과 서버의 시간이 맞지 않아서 문제가 발생하는 경우가 있다.
그러면 자연스레 UTC시간이라는것을 접하게 되는데, 이게 무엇인지 알아보자.
2. UTC(협정 세계시)란?
UTC(Universal Time Coordinated) 는 국제적인 표준 시간의 기준으로 쓰이는 시각을 말한다.
1972년 1월 1일부터 시행된 국제 표준시로, 국제 사회가 사용하는 과학적 시간의 표준이다. 기존에 사용하던 평균태양시 기준의 그리니치 표준시(GMT)를 대체하여 사용하기 시작한 표준시이다.
UTC에서 0시, 즉 기준점에 달하는 도시는 런던(영국) 이며, 이를 기준으로 +, -로 시간을 계산한다.
우리나라(대한민국)은 런던을 기준으로 +9시이다.
3. 지역마다 다른 시간값의 대처
위와같은 기준시각이 왜 등장하게 되었을까? 당연하게도 지구의 위치마다 다른 지역 시간때문일 것이다.
한 지역에서만 한정되는 서비스를 운영할때에는 거의 문제될일이 없겠지만,
나는 AWS에 미국 서버를 두고 개발을 할때에 시간 데이터에 관련해서 난관이 생기게 되었는데,
미국과 한국의 시차가 9Hour이 발생하기 때문이다. 따라서 이를 고려하지 않고 각자 자신의 지역 시간을 기준으로 시간값을 다루게 되면, 서로 상이한 시간으로 인해서 데이터가 꼬이기 쉽상이다.
위처럼 지역마다 다른 시간값을 대처하는 방법은 무엇이 있을까?
상황에따라 나는 아래와 같이 관리하였다.
전세계 같은 시간을 공유할때 - 모두 UTC기준 시간으로 사용한다.
UTC기준시간을 사용하면 어느 지역에서나 같은 시간값을 가지고 다루기때문에, 시간 데이터에 오차가 발생하지 않는다.
하지만 이 경우에는 현지시간으로 변환해서 보여주는 과정이 필요할 것이다.
지역별로 정해진 시간을 사용할때 - 로컬 시간을 그대로 사용한다.
오전 8시에 알림 발송이 되어야 하는 기능이 있다고 가정해보면, 각 지역마다의 오전 8시는
각각 다른 시간값들일 것이다. 따라서 로컬시간을 그대로 사용하고, 다른 지역의 시간값을 받아서 사용할때는 알맞게 현지시간으로 변환시켜주어야 할것이다.
#References
https://ko.wikipedia.org/wiki/%ED%98%91%EC%A0%95_%EC%84%B8%EA%B3%84%EC%8B%9C
'Network > Data communication' 카테고리의 다른 글
HTTP 메서드를 구별해서 사용하는 이유: RESTful API 설계의 중요성 (0) | 2024.06.29 |
---|---|
P2P와 P2MP의 차이 (1) | 2022.08.03 |
직렬화(Serialization)에 대해 (0) | 2022.06.17 |
Serial 통신 한글깨짐 문제(Encoding 처리) (0) | 2022.04.17 |
CORS란? 그리고 해결방법 (0) | 2022.01.11 |