컴퓨터 시간 원리

MyeonghoonNam·2021년 8월 2일
0
post-custom-banner

컴퓨터 시간의 원리에 대하여 알아보자.

협정 세계시(UTC)

  • 원자 시계윤초 보정을 기반으로 표준화한 시각

  • 모든 시간대는 UTC+0을 기준으로 환산한다.

  • 대한민국의 시간은 UTC+9, 예를들어 영국(UTC+0)이 오전 1시라면 대한민국은 오전 10시가 된다.


컴퓨터가 시간을 표현하는 방법

  • 하드웨어의 시스템 클럭(CPU를 비롯한 컴퓨터의 모든 부품들은 특정한 신호에 맞추어 동작을 하는데, 이 특정한 신호를 가리키는 말이 바로 클럭)을 이용한다.

    • 시스템 클럭의 원리
      • RTC(Real Time Clock)라는 모듈을 사용한다.
      • RTC는 메인보드에 붙어있어 전원을 끄더라도 계속 작동한다. 그러므로 컴퓨터 전원을 끄더라도 시간은 계속 흘러간다.
      • RTC는 카운터 회로를 통해 클럭을 발생시킨다.
  • 특정 시각(Epoch)을 기준으로 시스템 클럭의 틱을 세는 것으로 구현하는데 이를 시스템 시간이라 부른다.

  • 시스템 시간을 값으로 표현한 것을 타임스탬프라고 부른다.

  • 타임스탬프는 운영체제마다 기준시간과 단위가 다를 수 있다.

  • Unix 계열 운영체제에서 시간을 표시하는 방법을 Unix Time이라 부른다.

    • Unix Time
      • 1970년 1월 1일 0시 0분 0초가 기준 시각이다.
      • 위의 시간이 기준인 이유는 유닉스 개발자 데니스 리치가 그냥 정한 날짜이다.
      • 1970년 이전 시간은 음수로 표현된다.
      • 초 단위로 시간이 증가한다.

현재 시간을 알아내는 방법

  • 컴퓨터를 키면 자동으로 현재 시간을 보여준다 이는 시스템 시간을 네트워크 타임 프로토콜(NTP)를 통해 동기화 하여 나타낸 시간이다.

  • NTP 서버에 네트워크 요청을 하여 현재 시간을 받을 수 있다.

  • NTP 서버는 계층으로 이루어져 있으며 그 계층 Stratum 이라고 부르는데 최상위 계층인 Stratum 0을 PRC(Primary Refrernce Clock)라고 부른다.

  • PRC는 원자 시계로 시간을 측정하며 아래 계층 요소들이 동기화를 통해 시간을 알 수 있다. 그러므로 하위 계층일수록 정밀도가 조금씩 떨어진다.


시간을 어떤 기준으로 사용해야 할까 ?

UTC

역사, 사회, 문화에 대한 맥락 없이 사건이 발생한 시각만을 고려하는 경우에 사용한다.

  • 로깅(분산된 서버에 하나의 사건에 고유한 시간을 저장)
  • 감사
  • 시계열 데이터

Time Zone이 적용된 시간

Time Zone ?

동일한 로컬 시간을 따르는 지역을 의미하며, 주로 해당 국가에 의해 법적으로 지정된다. 보통 국가별로 각자의 고유한 타임존을 사용하고 있으며, 미국이나 캐나다처럼 면적이 넓은 나라인 경우 지역별로 각지 다른 타임존을 사용하기도 한다. 예를 들어 한국은 일본이나 팔라우와 동일한 타임 존(Time Zone)입니다.

  • 역사, 사회, 문화를 고려하여 사용자가 이용한 시각을 정확히 알아야할 때 사용한다.

  • UI에 표시되는 시간을 사용자 기준으로 보여줄 때 사용한다.

    • 결제 시각
    • 푸시 알림 시간
    • UI 시각 표시
    • 캘린더


참고자료

profile
꾸준히 성장하는 개발자를 목표로 합니다.
post-custom-banner

0개의 댓글