GN⁺ 2025-01-31 | parent | ★ favorite | on: JavaScript Temporal이 옵니다(developer.mozilla.org)
Hacker News 의견
  • Temporal은 기존 Date() API의 문제를 해결하는 데 유용함. Rust의 chrono와 Java의 Joda Time과 같은 고품질 시간 라이브러리에서 영감을 받아 편리한 API를 제공함

    • 시간은 복잡하며, Temporal은 이를 나이브 시간, 인스턴트, 존드 시간으로 구분하여 처리함
    • 타임스탬프에 하루를 더하는 작업을 할 때, 특정 시간대에 로컬인지 결정해야 함. 그렇지 않으면 DST나 시간대 변경 시 버그가 발생할 수 있음
    • "고정 오프셋" 타임스탬프와 특정 시간대의 타임스탬프 간의 직렬화 문제도 해결함
  • Temporal.ZonedDateTime.prototype.withTimeZone()를 사용하여 시간대를 변환할 수 있음

    • 시간대 변환과 지속 시간 처리는 라이브러리가 처리해야 할 중요한 기능이며, Temporal이 이를 처리함
    • 그러나 Temporal.Duration은 사용자 정의 format 함수를 제공하지 않음
  • Temporal 제안은 좋지만, 비교 시 참조 동등성을 사용하는 점이 아쉬움

    • 이는 객체를 Map 키로 사용하거나 Set에 수집하는 기능을 제거함
  • TC39에서 많은 기능이 개발 중이며, Temporal이 빨리 출시되기를 바람

    • 주요 브라우저가 새로운 기능을 지원하려면 개발 노력이 필요함
  • Temporal의 시간대 데이터 업데이트 방식에 대한 궁금증이 있음

    • 사용자가 브라우저를 업데이트하지 않으면 잘못된 시간을 볼 수 있음
  • 시간대 변경 시 이벤트를 추가해야 한다고 제안함

    • 많은 사람들이 매일 시간대를 이동함
  • Temporal이라는 이름이 일반적인 시간 객체와의 충돌을 피하기 위해 사용되었지만, 처음에는 쓰레기 수집 제어로 오해할 수 있음

  • PHP의 Carbon 클래스는 DateTime에서 상속받아 가변 타임스탬프 작업의 문제를 설명함

    • CarbonImmutable을 사용하여 항상 새로운 인스턴스를 반환하는 것이 좋음
    • Laravel에서 CarbonImmutable과 Carbon을 별칭으로 가져오는 방법을 제안함
  • JavaScript Temporal과 관련된 다양한 기사와 논의가 있음