- 자바스크립트의 Date 객체 한계를 근본적으로 대체하는 새로운 표준 Temporal API가 9년간의 개발 끝에 ECMAScript Stage 4에 도달
- Temporal은 불변(immutable) 타입, 명시적 시간대·달력 지원, 나노초 단위 정밀도를 제공하며, 기존 Date의 모호성과 오류를 제거
-
Bloomberg, Igalia, Microsoft, Google, Mozilla 등 다양한 기관이 협력해 사양 설계와 구현을 진행, Rust 기반 공용 라이브러리 temporal_rs 로 다중 엔진 협업을 실현
- Temporal은 ZonedDateTime, Instant, PlainDate/Time, Duration 등 세분화된 타입을 통해 시간 연산과 국제화 달력 처리를 정확히 지원
- 30년간의 문제를 해결한 이 표준은 자바스크립트 생태계의 협업과 개방형 혁신의 성공 사례로 평가됨
자바스크립트의 시간 처리 문제와 Temporal의 등장
- 기존 Date 객체는 1995년 Java의 Date를 그대로 포팅한 것으로, 가변성, 불일치한 월 계산, 모호한 파싱 등으로 수십 년간 버그의 원인이 되어 왔음
- 예: setMonth 사용 시 월말 계산 오류, ISO 유사 문자열 파싱 시 브라우저별 결과 불일치
- 2010년대 이후 웹 애플리케이션이 복잡해지면서 Date의 한계가 심화됨
- 개발자들은 Moment.js 등 외부 라이브러리로 문제를 보완했으나, 번들 크기 증가와 유지보수 부담이 발생
- 2017년 Maggie Johnson-Pint가 TC39에 Temporal 제안을 제출하며 표준화 논의가 시작됨
TC39와 산업계의 협업
- Temporal은 2018년 Stage 1에서 출발해 9년에 걸쳐 Stage 4(표준화) 에 도달
-
Bloomberg는 대규모 자바스크립트 환경에서의 시간대·정밀도 문제 해결을 위해 적극 참여
- 요구사항: 사용자 지정 시간대, IANA 기반 역사적 시간대 정확성, 나노초 단위 정밀도
-
Igalia, Microsoft, Google, Mozilla 등과 협력하여 사양 설계 및 구현을 진행
-
Philipp Dunkel, Ujjwal Sharma, Philip Chimento, Shane Carr, Justin Grant 등 여러 엔지니어가 챔피언으로 참여
Temporal의 주요 타입과 기능
-
Temporal.ZonedDateTime: 명시적 시간대·달력·DST 보정이 포함된 불변 시각 표현
- 예: 런던 DST 전환 시 01:30이 존재하지 않으면 자동으로 02:30으로 보정
-
Temporal.Instant: 시간대·달력 없는 절대 시점 표현, 나노초 단위 정밀도 지원
-
PlainDate / PlainTime / PlainDateTime / PlainYearMonth / PlainMonthDay: 시간대 없는 ‘벽시계형’ 타입
-
Temporal.Duration: 시간 간격 표현, 다양한 단위 변환 가능 (total({ unit: "second" }))
-
캘린더 지원: 히브리력 등 비그레고리력 연산을 정확히 수행
구현과 표준화 과정
- Temporal은 ECMAScript 역사상 가장 큰 사양 추가로, 약 4,500개의 테스트 케이스를 포함
-
Rust 기반 공용 구현체 temporal_rs 가 개발되어 V8, Boa 등 여러 엔진이 공동 사용
- 장점: 진입 장벽 감소, 장기 유지보수 용이, 코드 품질 향상
- 2024~2025년 동안 temporal_rs가 100% 테스트 통과, 다중 엔진 협업의 성공 사례로 평가됨
지원 현황과 향후 과제
- Temporal은 이미 Firefox 139, Chrome/Edge 144, TypeScript 6.0 Beta에서 지원
- Safari는 기술 프리뷰 단계, Node.js 26은 예정
- 향후 과제는 웹 API와의 통합
- 예: <input type="date"> 등 폼 요소에서 Temporal 타입 지원
-
DOMHighResTimeStamp 대체 가능성 검토 (Temporal.Now.instant() 활용 예시 제시)
협업과 개방형 혁신의 성과
- Temporal은 9년간의 다기관 협업을 통해 완성된 표준으로,
-
Microsoft, Google, Mozilla, Bloomberg, Igalia, Boa 등 다양한 주체가 참여
-
temporal_rs는 공유 인프라 모델의 성공 사례로,
- 중복 구현 비용 절감, 일관성 향상, 혁신 가속화를 입증
- Temporal은 단순한 API 개선을 넘어, 자바스크립트 커뮤니티가 장기적 기술 부채를 해결한 협력의 증거로 평가됨
- 30년 만에 자바스크립트는 현대적 날짜·시간 API를 갖추게 되었음