본문 바로가기
IT/Programming_프로그래밍

[IT / 파이썬]타임스탬프(timestamp) / 프로그램에서의 날짜와 시간 정보, 단조 시간(monotonic time), 실제 시간

by 무브영/movewoo0 2021. 6. 12.
728x90
반응형

안녕하세요. 이번 포스팅에서는 컴퓨터에서, 프로그램 개발에서의 날짜와 시간 정보를 어떻게 처리하는지에 대해

포스팅 합니다. timestamp와 단조 시간, 실제 시간에 대해 알아봅니다. 

 


 

0. Timestamp

 

타임스탬프(timestamp)는 컴퓨터가 시간을 표현하기 위해 사용하는 값입니다.

 

이 값은 1970년 1월 1일 0시 0분 0초부터 1초 단위로 증가하고 있고 현재에도 계속해서 증가중입니다.

 

파이썬의 time 라이브러리의 time() 함수를 이용해서 timestamp 값을 알아보겠습니다. 

 

time() 함수

위와 같이 time 라이브러리를 import 하고 time() 함수를 사용하면 아래와 같이 큰 수가 나옵니다.

 

 

time() 결과

 

이 숫자는 실행버튼을 누를 때 마다 바뀌는 것을 직접 확인할 수 있습니다. 

 

소수점 자리 숫자는 1초 미만의 시간 단위입니다.

 

이러한 시간의 값을 사용해서 만약 프로그램을 개발할 때, 당시의 시간의 값과 몇 초 차이의 순간의 값을 계산하여

 

프로그래밍에 이용할 수 있습니다. 

 

 


 

1. 단조 시간 / 실제 시간

 

단조 시간(monotonic time)은 운영체제나 CPU 등과 같은 하드웨어에서 계산하는 시간입니다.

 

실제 흐르고 있는 시간과는 다르지만 운영체제, 하드웨어가 시작한 이후 시점부터 바뀌지 않고 바꿀수도 없습니다.

 

이는 운영체제나 하드웨어의 재부팅 이후에는 초기화 됩니다.

 

단조 시간의 사용은 어떤 정기적인 작업을 몇 초(ex. 10초, 1분) 마다 실행해야 할 때, 단조 시간의 값ㅇ르 비교하여 쉽게 실행할 수 있습니다. 

 

 

 

monotonic()

위의 코드를 실행하여 

 

파이썬 time 라이브러리의 monotonic() 함수를 사용해서 현재 운영체제의 단조 시간을 구할 수 있습니다.

 

monotonic() 실행 결과

 

나오는 값은 초단위이며 분단위로 본다면 약 120분으로 컴퓨터를 켠 지 2시간이 됩니다.

 

켜진지 2시간이 지났다는 것을 이 단조시간 값으로 알 수 있습니다.

 

 

 


 

 

실제 시간(real time)도 컴퓨터가 직접 계산하지만 이 시간은 해당 운영체제에서 가져오는 값이 아닌 시간 서버로부터 

 

가져와서 동기화하게 되므로 언제든지 시간이 바뀔 수 있습니다.

 

이러한 이유로 실제 시간을 사용해서는 단조 시간을 사용할 때 처럼 시간의 차이를 구하거나 

 

정기적인 작업 실행에 이 값을 사용하기 어렵습니다.

 

now()

파이썬의 datetime 라이브러리의 now() 함수를 통해 현재 시간 서버의 실제시간을 알아보겠습니다. 

 

 

now() 결과

이처럼 제가 글을 쓰고 있는 시간이 초 아래 단위까지 나오게 됩니다. 

 

이 실제 시간은 외부의 환경(사용자, 시스템)에 의해 바뀔 수 있는 시간 값이며 이 값을 사용하여 프로그램을 처리할 시 예상치 못한 오류가 발생할 수도 있습니다.

 

 


 

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

728x90
반응형

댓글