UNIX TIMESTAMP를 사용하는 이유
- IT
- 2023. 4. 7.
UNIX TIMESTAMP란?
유닉스 타임스탬프(Unix Timestamp)는 1970년 1월 1일 00:00:00 UTC부터 경과한 시간을 초 단위로 나타낸 정수 값입니다. 예를 들어, 1970-01-01 00:00:00 (UTC)는 0입니다. 2021-01-01 00:00:00 (UTC)는 1609459200입니다. 이처럼 946684800, 1234567890 등으로 시간을 표현하기 위한 숫자입니다.
그렇다면 왜 yyyy-mm-dd 같은 방식 대신 유닉스 타임스탬프 값을 쓰는지를 알아볼 필요가 있습니다. 실제로 각종 시스템, DBMS에 많이 사용되는 시간 표기 방법이기 때문입니다.
UNIX TIMESTAMP 사용하는 이유
1. 전 세계 컴퓨터 시스템에서 일관된 시간을 표기할 수 있습니다. 시간은 지역별로 다르지만 유닉스 타임스탬프는 정해진 기준(1970년 1월 1일 0시 UTC)에서 얼마나 시간이 경과했는지를 나타낸 것이기 때문입니다. 컴퓨터 데이터에서 일관성, 표준 등의 가치는 중요합니다.
2. 유닉스 타임스탬프는 정수로 표현되기 때문에 시간 간격을 계산하기가 쉽습니다.
3. 데이터베이스에 저장될 때 유닉스 타임스탬프는 일반적인 날짜와 시간 표현보다 작은 공간을 차지합니다. 저장 공간을 절약할 수 있습니다.
기준이 1970년 1월 1일인 이유
유닉스 시스템이 개발된 게 1970년대 초반입니다. 당시 컴퓨터 시스템 간 시간을 표현하고 처리하는 표준이 필요했고 개발자들은 1970년 1월 1일을 새로운 시간 표현의 시작점으로 선택해서 유닉스 타임스탬프의 기준이 1970년 1월 1일 00:00:00 UTC로 정해졌습니다.
UNIX TIMESTAMP 사용 예시)
1. 서버나 컴퓨터에서 발생하는 이벤트를 기록할 때 타임스탬프를 사용해서 시간 정보를 남깁니다.
2. 데이터의 생성, 수정 또는 삭제 시각을 기록할 때 사용됩니다.
3. 시간 관련 연산을 수행할 때 사용되며, 특히 시간 간격을 계산하는 데 유용합니다.
4. 파일 전송 프로토콜(FTP)과 같은 인터넷 프로토콜에서 시간 정보를 전달할 때 사용됩니다.
DBMS별 UNIX TIMESTAMP
유닉스 타임스탬프를 DBMS에 기록하려면 DBMS에서 일부 함수를 이용해야 합니다. 단 DBMS 별로 방법이 다릅니다. MYSQL은 UNIX_TIMESTAMP()라는 내장 함수를 제공합니다. 간단하게 유닉스 타임스탬프를 출력할 수 있습니다. 반면 오라클, MS SQL 서버는 별도로 유닉스 타임스탬프 함수를 제공하지 않습니다. 유닉스 타임스탬프를 출력하기 위해서는 현재 시간에서 기준시를 임의로 빼는 방식으로 응용해서 적용합니다.
'IT' 카테고리의 다른 글
콜스택(Call Stack)이란? Stack Trace 확인하기 (0) | 2023.04.19 |
---|---|
C 런타임 라이브러리 errno이란? (0) | 2023.04.17 |
인텔 CPU, 코어와 논리 프로세서 차이 (하이퍼스레딩) (0) | 2023.04.06 |
상태 저장 / 상태 비저장 개념 이해하기 (0) | 2023.04.06 |
AMD CPU 보는법 (Ryzen, EPYC 시리즈 정리) (0) | 2023.04.03 |