10000년 문제 발생 하루 전까지[1] |
D[dday(9999-12-31)] +1 |
단기 10000년 문제 발생까지 |
D[dday(7667-01-01)] |
1. 개요
萬年 問題Y2K 문제와 비슷하다. 컴퓨터가 연도를 표기할 때 네 자리만으로 표기하여 10000년 이상의 연도를 표기할 때부터는 제대로 연도를 표기하지 못해서 혼란이 생길 수 있다고 제기되는 문제이다. Y10K 문제로도 불린다.
2. 상세
Windows XP에서 가동시킨 영상.[2]
Windows 2000 실기체 가동영상. 한국어 자막이 있으니 '설정'에서 선택해서 보면 된다.
Windows 11에서 가동시킨 영상. 명령어로 직접 입력하자 뻗어버리는 모습을 볼 수 있다.
macOS에서도 상황은 비슷하다. 10000년까지 설정이 불가능하여 Windows처럼 9999년 12월 31일로 설정해야 하는데 날짜를 9999년으로 설정하는 즉시 10000년으로 넘어가기 전에부터 CPU 사용량이 치솟고 팬이 강하게 돌아가는 현상을 볼 수 있다.
인텔 칩셋을 탑재한 Mac의 경우 그 즉시 화면이 멈춰버리거나 분홍색으로 질려버리며 그 어떤 키도 먹히지 않게 되며 Apple Silicon을 탑재한 Mac의 경우 그나마 당장은 아무 이상이 없지만 결국 서서히 느려지며 CPU 점유율도 100%를 찍어버리며 마우스 및 키보드 동작과 클릭까지 엄청난 지연이 걸리다 결국 멈춰버리는 건 인텔 Mac과 같다. 둘 다 '⌘ + ⌥ + esc' 단축키와 시스템 종료 버튼도 먹히지 않아 전원 버튼을 물리적으로 10초간 눌러서 강제 종료할 수밖에 없다.
해결 방법은 9999년으로 설정이 된 상태에서 강제 종료되었으니[3] 다시 재시동해도 9999년으로 설정된 상태라 시스템이 버벅이는 건 마찬가지이다. 인텔 Mac 사용자는 부팅 즉시 바로 버벅여 멈춰버리는 상태가 되어 어쩔 수 없이 OS 재설치나 복구를 해야 하며 Apple Silicon Mac 사용자는 CPU 사용량이 정점을 찍기 전에 재시동되자마자 바로 시스템 설정으로 달려가 날짜를 자동 설정을 하고 재시동해야 한다.
iOS에서도 날짜를 10000년까지 선택이 가능하지만 현재는 선택하면 자동으로 2038년으로 강제 고정된다.
Long now Foundation이라는 단체에서 처음 제기한 문제이다. 이 단체는 이 문제를 대비하기 위해 현재 연도를 다섯 자리로 쓸 것을 권장하고 있으며, 컴퓨터에서 연도를 다섯 자리로 표현하게 하는 법을 알리고 있다.
현재 인류가 사용하고 있는 프로그램은 거의 다 10000년 문제에서 자유롭지 않다. 하지만 2000년 문제와 달리 10000년 문제가 실제로 문제가 생길 일은 현실적으로 없다고 봐도 된다. 전자기기의 수명은 그리 길지 않아 8000년이 지나기 전에 현존하는 전자기기들은 모두 수명이 다해서 폐기될 것이며, 만에 하나 10000년에도 사용이 가능할 정도로 완벽하게 보존된 2000년대 전자기기가 있다면 박물관으로 직행할 것이다. 물론 2000년 문제에서 교훈을 얻지 못하고 9970년대쯤에도 이 문제를 고려하지 않은 채 프로그램을 짠다면 문제가 생길 수도 있다. 아니면 수백에서 n천년쯤 전 설마 10000년 전에 안 바꾸겠어 하고서 프로그램을 짜면 문제가 생길 가능성도 있다. 2019년까지 핵미사일에 플로피를 쓴거처럼 발전된 기술이 오랜시간 사용이 될 가능성도 있다.
그런데 10000년 문제가 발생해서 프로그램을 그에 맞게 수정해야 하는 경우가 현재에도 있기는 하다. 대표적으로 DBMS에 이 문제가 있으며[4], 방사성 원소 붕괴 예측에 사용되는 프로그램 등 몇 만 년 후의 일까지 고려해야 하는 프로그램의 경우 이런 문제가 발생하면 오류를 불러일으킬 수 있어 10000년 문제를 고려해서 프로그램을 작성한다.
대부분의 사람들은 이 문제를 쓸데없는 걱정으로 여기고 농담의 소재로나 많이 써먹고 있는데, 일부 사람들은 아예 작정하고 이런 문서를 만들어 제시하기도 했다. 상당히 거창하게 뭔가 있는것 같지만, 날짜를 보면 1 April 1999이다. '8000년 뒤에는 지금 쓰는 프로그램들은 전부 쓰이지 않게 되리리고들 생각하지만, 바로 그런 잘못된 사고방식 때문에 지금 Y2K로 난리인 것이다!‘라고 주장한다(…).
3. 관련 문서
4. 참고자료
http://www.fact-index.com/y/ye/year_10_000_problem.htmlhttp://en.wikipedia.org/wiki/Year_10,000_problem
[1] 나무위키에서는 D-DAY 문법을 9999년 12월 31일까지만 등록할 수 있다. 따라서 10000년 1월 1일을 표기할 수가 없으며, 설령 년도를 10000-01-01로 설정한다 해도 Dinvalid date라는 문구가 출력되면서 남은 날짜를 볼 수 없다. 정확한 날짜는 이 날짜에 1을 더하면 된다.[2] 시스템 자체는 10000년 이후에도 정상적으로 시간을 인식하지만, explorer.exe를 중심으로 문제가 일어난다. 10000년으로 넘어가는 순간 렉이 엄청 걸리고 CPU 사용량이 미친듯이 치솟는 것을 볼 수 있다.[3] 날짜 설정에서 9999년을 입력하는 순간부터 버벅이기 시작하여 설정 화면이 응답하지 않게 되어 바로 날짜 설정을 자동 및 수동으로 되돌려지지가 않는다.[4] 대표적으로 DATETIME 개체의 경우, 9999-12-31 23:59:59가 최댓값이다.[5] 유닉스 시간을 32비트 정수로 처리하면서 생기는 문제.