서버 로그에 1709251200이라는 숫자가 찍혀 있다. 이게 언제인지 바로 알 수 있는 사람은 거의 없다. 이 숫자는 Unix 타임스탬프로, 1970년 1월 1일 자정(UTC)부터 경과한 초 수를 의미한다.
Unix 타임스탬프란
컴퓨터는 날짜를 문자가 아니라 숫자로 저장한다. 기준점(1970-01-01 00:00:00 UTC)부터 몇 초가 지났는지를 하나의 정수로 표현하는 방식이 Unix 타임스탬프다. 시간대 영향을 받지 않아서 서버 간 시간 동기화에 적합하다.
| 타임스탬프 | 자릿수 | 단위 | 날짜(KST) |
|---|---|---|---|
| 1709251200 | 10자리 | 초 | 2024-03-01 09:00:00 |
| 1709251200000 | 13자리 | 밀리초 | 2024-03-01 09:00:00 |
TIP 자릿수로 초와 밀리초를 구분한다. 10자리면 초 단위, 13자리면 밀리초 단위다. JavaScript의 Date.now()는 밀리초를 반환한다.
타임스탬프가 필요한 상황
- 서버 로그 분석 — 에러 발생 시각을 사람이 읽을 수 있는 날짜로 변환
- API 디버깅 — 요청/응답에 포함된 타임스탬프를 해석할 때
- DB 데이터 확인 — created_at, updated_at 필드가 정수로 저장된 경우
- 시간대 계산 — UTC 기준 타임스탬프를 KST로 변환
타임스탬프 ↔ 날짜 변환 방법
타임스탬프 변환기에 숫자를 넣으면 로컬 시간, UTC, ISO 8601 형식으로 동시에 변환된다. 반대로 날짜를 입력해서 타임스탬프 값을 얻을 수도 있다. 페이지 상단에는 현재 타임스탬프가 실시간으로 표시되어 바로 복사해 쓸 수 있다.
로그 속 숫자가 날짜로 보이기 시작하면 디버깅 속도가 확 빨라진다. 터미널에서 명령어를 치는 것보다 웹에서 바로 변환하는 게 빠를 때가 많다.