유틸리티

Unix 타임스탬프란? 날짜 변환과 개발 실무 활용법

API 응답에 1740787200이라는 숫자가 들어 있었다. created_at 필드인데, 이게 언제인지 바로 알 수 없다. Unix 타임스탬프는 사람이 읽을 수 없는 형태로 시간을 표현하기 때문에 변환이 필요하다.

Unix 타임스탬프란

1970년 1월 1일 00:00:00 UTC(이를 Epoch라고 부른다)부터 지금까지 흘러간 초(秒)의 수다. 2026년 3월 1일 0시(UTC)는 약 1,772,438,400이 된다. 컴퓨터는 날짜보다 정수 하나가 연산하기 쉽기 때문에 이 방식을 쓴다.

초 단위와 밀리초 단위

단위자릿수예시사용처
초 (s)10자리1740787200대부분의 서버, Unix/Linux 시스템
밀리초 (ms)13자리1740787200000JavaScript, Java, 프론트엔드

숫자가 10자리면 초 단위, 13자리면 밀리초 단위일 가능성이 높다. 단위를 잘못 넣으면 1970년이나 수만 년 후의 날짜가 나오니 자릿수를 먼저 확인해야 한다.

왜 1970년이 기준인가

Unix 운영체제가 1970년대 초에 만들어졌고, 그 시점에서 가장 가까운 라운드 넘버인 1970년 1월 1일을 0으로 정한 것이다. 이 기준은 이후 거의 모든 프로그래밍 언어와 운영체제에서 그대로 채택됐다.

타임스탬프를 쓰는 이유

  • 시간대 독립: UTC 기준의 정수 하나로 전 세계 어디서든 같은 시점을 표현할 수 있다
  • 비교 연산: 두 시점의 차이를 뺄셈 한 번으로 구할 수 있다
  • 정렬: 숫자 크기 비교만으로 시간순 정렬이 된다
  • 저장 효율: 날짜 문자열보다 정수가 저장 공간을 적게 쓴다

디버깅하다가 타임스탬프 숫자를 마주쳤을 때, 타임스탬프 변환기에 숫자를 넣으면 로컬 시간, UTC, ISO 8601 형식으로 바로 바꿔준다. 반대로 특정 날짜를 타임스탬프로 변환하는 것도 같은 화면에서 할 수 있다.

타임스탬프는 개발에서 피할 수 없는 형식이다. 원리를 알아두면 API 디버깅이나 로그 분석이 훨씬 수월해진다.