날짜와 시간처리

옥영진·2020년 8월 5일
0

타임스탬프

타임스탬프(Timestamp)는 컴퓨터가 시간을 표현하기 위해 사용하는 값으로, 1970년 1월 1일 0시 0분 0초부터 현재까지 몇 초인지를 나타낸다. 초 단위를 나타내지만 소수점으로 1초미만의 값도 표현이 가능하다.
파이썬으로 time 모듈을 임포트하여 현재 타임스챔프 값을 구할 수 있다.

import time
print("현재 시간 : {0}".format(time.time()))

이 타임스탬프로 표현할 수 있는 시간은 두 종류로 하나는 컴퓨터가 직접 계산하는 Monotonic Clock과 실제 세계 시간을 나타내는 Wall Clock이다.

Monotonic Clock

Monotonic Clock은 OS나 하드웨어가 직접 계산하는 시간이다. 이는 실제 세계 시간과 다를 수 있으나 OS나 하드웨어가 시작한 이후 시점부터 바뀌지 않고 사용자가 직접 값을 변경할 수도 없다. 따라서 불변성을 보장하는 시간 값을 필요로 할 때(항상 같은 주기로 무언갈 수행해야 할 때 등) 유용하게 사용할 수 있다.
Monotonic Clock 값은 부팅 시점부터 0으로 시작하거나 실제 시간으로 초기화되므로 값을 구하는 환경에 따라 그 값이 바뀔 수는 있으나, 특정 두 시점 사이의 시간차는 환경에 상관없이 항상 일정하다.

Wall Clock

실제 세계 시간을 나타내는 Wall Clock 역시 컴퓨터가 직접 계산하긴 하지만 주기적으로 시간 서버에서 값을 가져와 동기화 작업을 수행한다. 때문에 값이 바뀔 수 있으므로 Monotonic Clock 처럼 두 시점 사이의 시간차를 구하거나 일정한 간격 측정에는 무리가 있다.
하지만 특정 날짜(매월 1일)에 수행해야하는 작업 등을 설정할 때 기준 시간을 구할 수 있다. Monotonic Time으로도 한 달이라는 시간을 구할 순 있지만, 월마다 한 달 단위가 30일일수도, 31일일수도 있기 때문에 이 때는 실제 세계 시간으로 구하는 것이 맞다.

profile
안녕하세요 함께 공부합시다

0개의 댓글