컴퓨터 시간의 원리에 대하여 알아보자.
원자 시계와 윤초 보정을 기반으로 표준화한 시각
모든 시간대는 UTC+0을 기준으로 환산한다.
대한민국의 시간은 UTC+9, 예를들어 영국(UTC+0)이 오전 1시라면 대한민국은 오전 10시가 된다.
하드웨어의 시스템 클럭(CPU를 비롯한 컴퓨터의 모든 부품들은 특정한 신호에 맞추어 동작을 하는데, 이 특정한 신호를 가리키는 말이 바로 클럭)을 이용한다.
특정 시각(Epoch)을 기준으로 시스템 클럭의 틱을 세는 것으로 구현하는데 이를 시스템 시간이라 부른다.
시스템 시간을 값으로 표현한 것을 타임스탬프라고 부른다.
타임스탬프는 운영체제마다 기준시간과 단위가 다를 수 있다.
Unix 계열 운영체제에서 시간을 표시하는 방법을 Unix Time이라 부른다.
컴퓨터를 키면 자동으로 현재 시간을 보여준다 이는 시스템 시간을 네트워크 타임 프로토콜(NTP)를 통해 동기화 하여 나타낸 시간이다.
NTP 서버에 네트워크 요청을 하여 현재 시간을 받을 수 있다.
NTP 서버는 계층으로 이루어져 있으며 그 계층 Stratum 이라고 부르는데 최상위 계층인 Stratum 0을 PRC(Primary Refrernce Clock)라고 부른다.
PRC는 원자 시계로 시간을 측정하며 아래 계층 요소들이 동기화를 통해 시간을 알 수 있다. 그러므로 하위 계층일수록 정밀도가 조금씩 떨어진다.
역사, 사회, 문화에 대한 맥락 없이 사건이 발생한 시각만을 고려하는 경우에 사용한다.
Time Zone ?
동일한 로컬 시간을 따르는 지역을 의미하며, 주로 해당 국가에 의해 법적으로 지정된다. 보통 국가별로 각자의 고유한 타임존을 사용하고 있으며, 미국이나 캐나다처럼 면적이 넓은 나라인 경우 지역별로 각지 다른 타임존을 사용하기도 한다. 예를 들어 한국은 일본이나 팔라우와 동일한 타임 존(Time Zone)입니다.
역사, 사회, 문화를 고려하여 사용자가 이용한 시각을 정확히 알아야할 때 사용한다.
UI에 표시되는 시간을 사용자 기준으로 보여줄 때 사용한다.