Unix 시간은 나쁘고 교체가 필요하다
(z.vandillen.dev)- UTC(협정 세계시)가 나쁘다고 말하는 것이 아님
- 국제 도량형 총회는 2035년 이후 UTC에서 윤초를 폐지함
- 윤초는 지구 자전과 연관되어 있는데 이는 불규칙하고 예측할 수 없었음
- UTC 이외에 중요한 시간 표준 중 하나는 TAI(국제 원자시)로 윤초가 없음
- UTC는 주로 공학용으로 사용하지 않기에 윤초가 있을 수 있지만 Unix 시간은 윤초로 인해 선형적이지 않게 되었고 많은 혼란을 초래함
TAI Unix 시간
- 1970년 1월 1일 0시 0분 10초부터 시작하는 TAI Unix 시간은 선형적으로 증가하며 유용한 수학적 속성을 갖지만 인기가 없음
- Unix 시간과 다르며 상호대체재가 아님
- Unix 시간에 비해
- 선형적이기에 t + 1초, t + 100000000초가 언제인지 매우 쉽게 계산할 수 있음. Unix 시간은 미래의 윤초가 언제 발생할지 모르기에 계산할 수 없고 예측만이 가능함
- 두 타임스탬프의 차이를 쉽게 계산할 수 있음
- 날짜 혹은 시간을 계산하는건 어려움. 우리는 일반적으로 TAI 시간이 아닌 UTC 시간을 알고싶어 하기에 윤초를 반영해줘야함
- 모호하지 않고 유효한 값만 반환함
큰 사고 없이 TAI Unix 시간으로 전환하기
- POSIX 표준에서 시간을 Unix 시간, TAI+C Unix 시간, 레거시 Unix 시간 3개로 나눌 것을 제안
- 레거시 Unix 시간은 특정 시점 이전엔 기존의 Unix 시간을, 이후부턴 TAI+C Unix 시간을 반환
- 윤초는 온라인 리소스에 의존하므로 윤초가 폐지될 2035년에 맞춰 전환하는게 합리적
좀 더 자세히 읽어봐야겠다는 생각이 들어 얼렁뚱땅 번역을 해 봤습니다!
유닉스 시간이라는 게 그냥 흔히 쓰는 unix timestamp 를 말하는거겠죠?
그냥 늘 쓰는거라 아무생각 없었는데 그러면 리눅스 같은 os 들이 지난 윤초를 반영해서 타임스탬프를 준다는 말이겠네요? 엄청난 일이었네요...
그 반대입니다. 윤초는 현실의 1초를 없었던 시간으로 만드는 것에 가깝기 때문에 UTC로 맞춰진 OS는 그냥 타임스탬프를 가지고 계산하면 유닉스타임이 나오고 반대로 있었던 윤초를 더해줘야 TAI 값이 나옵니다
- https://news.hada.io/topic?id=7847
- https://news.hada.io/topic?id=7046
- https://news.ycombinator.com/item?id=33716613 해커뉴스에 올라온 본 글의 코멘트들도 읽어볼만 합니다.