최근 수정 시각 : 2024-01-25 00:16:40

10억 초 문제

파일:external/image.slidesharecdn.com/fundamentos-del-computador-35-638.jpg
위의 사진은 덴마크에서 열린 행사라고 한다.

1. 설명2. 발생 원인3. 만약 수정되지 않았다면?4. 이 문제가 발견됐던 프로그램들5. 여담6. 관련 문서7. 외부 링크

Unix Billennium[1] / 十億秒 問題
1,000,000,000초 문제

1. 설명

UTC 2001년 9월 9일 1시 46분 40초[2]에 발생한 컴퓨터 버그.

2. 발생 원인

컴퓨터는 내부적으로 시각을 처리할 때 유닉스 시간을 사용하는데 일부 구형 프로그램의 경우 이 유닉스 시간을 문자열 등의 방법을 통해 9자리 10진수로 저장한다. 그런데 만약 '유닉스 시간이 10억초(약 31.7년)를 넘겨 10진수로 10자리가 되면' 오버플로가 발생해서 프로그램에 정렬과 관련된 문제를 일으킨다. 즉 "999,999,999"다음에 "1,000,000,000"이 되어야 하지만 9자리 수만 저장할 수 있었으므로 맨 앞의 1이 삭제되어 "000,000,000"으로 처리되는 것. 자세한 것은 오버플로 문서 참조.

이 버그는 발견된 이후 곧바로 수정되었다. 그리고 구형 프로그램에만 해당됐던 문제이기 때문에 2년 전의 Y2K보다 파장도 매우 적어서 그냥 하나의 기념일이 되었다.

3. 만약 수정되지 않았다면?

10억 초마다 시간이 리셋되기 때문에 정렬 관련으로 혼란을 겪을 수 있다. 주로 게시판에서 문제가 생길 가능성이 높다.

4. 이 문제가 발견됐던 프로그램들

5. 여담

코렐 사의 '워드퍼펙트'라는 프로그램의 문서 형식 중 하나인 'Filtrix'에서도 10억 초 문제가 발견되었는데, 코렐이 이미 워드퍼펙트에 대한 지원을 중단해버려서 유저들이 직접 패치를 배포했다.

시간 변수의 오버플로 문제라는 점에서 2038년 문제와 비슷하다. 2038년 문제는 32비트 컴퓨터 시스템의 문제이다.

9.11 테러 이틀 전에 발생했다.

6. 관련 문서

7. 외부 링크

영문 위키피디아의 유닉스 시간
[1] Billion(10억)과 Millennium의 합성어. [2] 한국 시간으로는 2001년 9월 9일 10시 46분 40초 [3] 유닉스 시간을 32비트 정수로 처리하면서 생기는 문제.