본문 바로가기
프로그래밍

Date.now() / 1730000000000 / 1970-01-01 00:00:00 (UTC)의 관계

by 로맨틱스터디 2026. 1. 8.
728x90
반응형
Date.now()

1970-01-01 00:00:00 (UTC) 부터 ~ 지금까지 흐른 시간(PC 설정 시간 기준) → 밀리초 단위로 나타낸 숫자

 


1️⃣ 1970-01-01 00:00:00 (UTC)는 뭐야?

이 시각을 Unix Epoch(유닉스 에폭) 이라고 불러.

“컴퓨터들이 시간을 셀 때 기준으로 삼는 출발점”


왜 하필 1970년 1월 1일?

이유는 현실적이야

  • 유닉스(Unix) 운영체제가 1969~1971년에 만들어짐
  • 너무 과거 ❌ (비효율)
  • 너무 미래 ❌ (음수 시간 처리 귀찮음)

👉 “그 시점부터 초를 세자” 하고 정한 것

📌 과학적 의미는 없음
📌 사람들이 합의한 기준점


728x90

2️⃣ UTC는 뭐야?

UTC = Coordinated Universal Time (협정 세계시)

👉 전 세계가 합의한 “표준 시간


왜 UTC가 필요했을까?

옛날엔:

  • 영국: GMT 
  • 한국: KST (Korean Standard Time, 한국 표준시)
  • 미국: 여러 시간대

문제:

  • 나라별 기준 다름
  • 컴퓨터/통신에서 혼란

👉 그래서:

“전 세계 공통 기준 하나 만들자”

➡️ 그게 UTC


UTC의 특징

  • 타임존 ❌ (기준점)
  • 서머타임 ❌
  • 지구 자전 보정 (윤초) 포함

📌 모든 시간대는:

UTC ± N시간

한국 시간(KST)과 UTC

KST = UTC + 9시간

예:

  • UTC: 00:00
  • 한국: 09:00

3️⃣ 그럼 Date.now()는 정확히 뭐 세는 거야?

Date.now()

은 사실상:

“UTC 기준으로
1970-01-01 00:00:00부터
지금까지 흐른 밀리초 수”


예시

UTC 기준 지금 시각: 2026-01-08 12:00:00

이면:

Date.now() === 1736337600000

(예시 숫자)


4️⃣ 타임존이 다른데도 같은 숫자가 나오나?

✔ 전 세계 어디서든 같은 순간이면 같은 숫자

  • 한국에서 실행해도
  • 미국에서 실행해도
  • 서버에서 실행해도

👉 “순간”이 같으면 숫자도 같음

📌 표현만 다를 뿐:

new Date(Date.now())
// 한국: 21:00
// 미국: 07:00

5️⃣ 그럼 왜 로컬 시간은 다르게 보이냐?

이건 표시 단계에서 변환하는 거야.

  • 내부 계산: UTC 기준 숫자
  • 화면 표시: 로컬 타임존 적용

6️⃣ 왜 하필 UTC + 숫자 방식이 최고냐?

이유 3줄 요약

  1. 숫자 하나로 시간 비교 가능
  2. 타임존 문제 제거
  3. 서버 ↔ 클라이언트 동일 기준

그래서:

  • JS
  • 서버
  • DB
  • 네트워크
    전부 이 방식

7️⃣ 한 문장으로 정리

**1970-01-01 00:00:00 (UTC)**는
전 세계 컴퓨터가 합의한
시간 계산의 출발선이고,
UTC는 그 기준이 되는 표준 시간이다.


다음으로 이어서 이해하면 딱 좋은 주제:

  • 윤초(leap second)가 뭔데 가끔 23:59:60이 나오는지
  • 왜 2038년 문제가 생기는지
  • Date 객체가 내부적으로 시간 계산하는 방식

어디까지 궁금해?

728x90
반응형