게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
2038년 문제
게시물ID : programmer_18322짧은주소 복사하기
작성자 : 민트색슈가♥
추천 : 1
조회수 : 638회
댓글수 : 2개
등록시간 : 2016/08/31 21:37:10
2038년 문제는 32비트를 사용하는 시스템에서 발생하는 문제다.  2038년 1월 19일 오전 3시 14분 7초(한국 시각으로는 오후 12시 14분 7초)에 32비트가 셀 수 있는 2,147,483,647초가 만료돼 음수값이 적용되어 1901년 12월 13일 오후 8시 45분 52초로 돌아가거나, 컴퓨터에서 오류를 인식하고 유닉스 시간의 기본값인 1970년 1월 1일로 초기화되는 현상이다.  이는 오버플로/언더플로 현상에 의한 것이다.  컴퓨터에서 오늘날 쓰는 역법인 태양력을 계산하는 법중 가장 보편화된게 유닉스 시간에서 초당 1씩을 추가하는 건데, 32비트는 2,147,483,647을 초과하는 수는 셀 수 없기 때문에 오버플로가 발생한다.  이 경우엔 해당범위의 최소값으로 돌아가므로 오류가 생긴다. 이로 인해 컴퓨터에 계산에 치명적인 오류가 발생할 수 있다. 가능성은 낮으나 Y2K때 발생할 것으로 예측되었던 오류가 발생할 수 있다. Y2K는 사람들이 혼돈한거지만 이건 기계에 문제가 생긴거니.  단순히 32비트를 64비트로 업데이트하면 되지만 이게 말이 쉽지, 의외로 간단한 작업이 아니다. 기존에 설정했던 알고리즘이 꼬여 2038년 문제보다 더 큰 문제가 발생할 수도 있다.  정수형을 부호없는 정수형으로 연장하면 음수를 세지 못하기 때문에 2106년까지로 연장할 수 있다. 물론 이것도 완벽한 해결책은 아닌데, 음수를 못 세니 1970년 1월 1일 이전의 시간은 표시할 수 없기 때문.   16비트 시스템에선 9시간 6분 8초, 8비트 시스템에선 4분 16초밖에 세지 못한다. 물론 16비트나 8비트를 사용하는 시스템은 거의 없으니 걱정하지 않아도 된다.  컴퓨터 업계쪽 사람들은 이 문제를 한가하게 생각하고 있는데, 지금부터 프로그램을 짤 때 64비트를 쓰면 되기 때문. 단, 미래를 생각하지 않는 시스템에선 문제가 발생할 수 있다.  예를 들어, 만 61세부터 보험금을 수령할 수 있는 보험 시스템이 2038년 문제가 발생할 경우, 1970년~1977년 생들은 자기가 태어나기도 전에 보험금을 타는 셈이다. 물론 국내 시스템은 2038년 문제를 걱정할 필요없다.  물론 64비트도 셀 수 있는 수는 제한되어 있다. 문제는 그게 2922억 7702만 6596년이기 때문. 그때쯤이면 인류가 살아있을 지는 차치하더라도 태양력, 64비트 모두 퇴출되어 있을거니 문제가 발생할 우려는 없다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호