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줄 요약
- 숫자 하나로 시간 비교 가능
- 타임존 문제 제거
- 서버 ↔ 클라이언트 동일 기준
그래서:
- JS
- 서버
- DB
- 네트워크
전부 이 방식 씀
7️⃣ 한 문장으로 정리
**1970-01-01 00:00:00 (UTC)**는
전 세계 컴퓨터가 합의한
시간 계산의 출발선이고,
UTC는 그 기준이 되는 표준 시간이다.
다음으로 이어서 이해하면 딱 좋은 주제:
- 윤초(leap second)가 뭔데 가끔 23:59:60이 나오는지
- 왜 2038년 문제가 생기는지
- Date 객체가 내부적으로 시간 계산하는 방식
어디까지 궁금해?
728x90
반응형
'프로그래밍' 카테고리의 다른 글
| 클래스 vs 객체 / 객체 vs 인스턴스 (0) | 2026.01.14 |
|---|---|
| com.twitter.HTTPRequestActionResponseError 오류 131 (0) | 2026.01.14 |
| II (OR 연산자) vs ?? (Null 병합 연산자) (0) | 2026.01.09 |
| const { serverTime } = window / window.__SERVERTIME__ = 1730000000000 (0) | 2026.01.09 |
| clearInterval(tt) (0) | 2026.01.06 |
| querySelectorAll() 에서 query란? (0) | 2026.01.06 |
| async / Promise / await (0) | 2026.01.06 |
| 서버 구현 :: node.js + Express (0) | 2025.11.04 |