올해 뉴스에서 끊임없이 "2000년" 문제에 대해 듣게 될 것입니다. 그리고 그 과정에서 많은 상충되는 정보를 듣게 될 것입니다. 인터넷에 떠도는 "세상의 종말" 수사학도 꽤 있습니다. 무엇을 믿어야 할까요?
How Stuff Works 의 이번 호에서는 2000년 문제(Y2K 문제라고도 함)에 대해 논의하여 무슨 일이 일어나고 있고 이에 대해 무엇을 하고 있는지 정확히 이해할 것입니다. 다양한 링크를 탐색할 수도 있습니다. 이 정보에서 정보에 입각한 결론을 도출합니다.
Y2K 문제는 무엇입니까?
Y2K 문제의 원인은 매우 간단합니다. 최근까지 컴퓨터 프로그래머는 소프트웨어에서 날짜의 연도 부분에 두 자리 자리 표시자를 사용하는 습관이 있었습니다. 예를 들어, 일반적인 보험 정책 또는 신용 카드의 만료 날짜는 MM/DD/YY 형식(예: - 08/31/99)의 컴퓨터 파일에 저장됩니다. 프로그래머는 다음과 같은 다양한 이유로 이 작업을 수행했습니다.
- 누구나 일상생활에서 그렇게 한다. 수표를 손으로 쓰고 날짜에 "슬래시" 형식을 사용하면 그렇게 씁니다.
- 4자리 대신 2자리 숫자를 저장하는 데 공간이 덜 필요합니다(하드 디스크가 너무 저렴하기 때문에 지금은 별 문제가 아니지만, 예전 컴퓨터에서는 큰 문제였습니다).
- 표준 기관은 최근까지 4자리 날짜 형식을 권장하지 않았습니다.
- 아무도 이 소프트웨어의 수명이 그렇게 길 줄 몰랐습니다. 1970년에 소프트웨어를 작성하던 사람들은 그 소프트웨어가 30년 후에도 여전히 사용될 것이라고 믿을 이유가 없었습니다.
2자리 연도 형식은 연도에 "00"을 입력할 때 대부분의 프로그램에서 문제를 일으킵니다. 소프트웨어는 "00"을 "1900" 또는 "2000"으로 해석할지 여부를 알지 못합니다. 따라서 대부분의 프로그램은 기본적으로 1900으로 설정됩니다. 즉, 대부분의 프로그래머가 작성한 코드는 두 자리 날짜 앞에 "19"를 추가하거나 세기에 대해 가정하지 않으므로 기본적으로 "19"입니다. . 프로그램이 날짜에 대해 많은 계산을 수행한다는 점을 제외하고는 문제가 되지 않습니다. 예를 들어, 귀하의 나이를 계산하기 위해 프로그램은 오늘 날짜를 취하고 여기서 귀하의 생년월일을 뺍니다. 그 빼기는 오늘 날짜까지 두 자리 연도 날짜에서 잘 작동하고 생일이 다른 세기에 있습니다. 그러면 계산이 더 이상 작동하지 않습니다. 예를 들어,프로그램이 오늘 날짜가 1/1/00이고 생일이 1/1/65라고 생각하면 사용자가 35세가 아니라 -65세로 계산될 수 있습니다. 결과적으로 날짜 계산은 잘못된 출력을 제공하고 소프트웨어 충돌 또는 잘못된 결과를 생성합니다.
인식해야 할 중요한 것은 그것이 전부라는 것입니다. 2000년 전체 문제입니다. 많은 프로그래머가 프로그램에서 연도에 대해 2자리 형식을 사용했으며 결과적으로 날짜 계산은 2000년 1월 1일에 올바른 답을 생성하지 못했습니다. 그 이상은 없습니다.
해결책은 분명히 프로그램이 제대로 작동하도록 수정하는 것입니다. 몇 가지 표준 솔루션이 있습니다.
- 00, 01, 02 등과 같은 연도가 실제로 2000, 2001, 2002 등을 의미한다는 것을 이해할 수 있도록 소프트웨어를 다시 코딩하십시오.
- 수년 동안 4자리 자리 표시자를 사용하고 모든 소프트웨어를 다시 코딩하여 4자리 날짜를 처리함으로써 "문제를 진정으로 해결"합니다. [재미있는 생각 질문 - 왜 연도에 4자리 숫자를 사용합니까? 5 또는 6을 사용하지 않는 이유는 무엇입니까? 대부분의 사람들은 지금부터 8,000년 후에는 아무도 이 소프트웨어를 사용하지 않을 것이라고 가정하고 합리적인 가정처럼 보입니다. 이제 우리가 어떻게 Y2K 문제에 빠졌는지 알 수 있습니다...]
이러한 수정 중 하나는 개념적 수준에서 쉽게 수행할 수 있습니다. 코드로 이동하여 모든 날짜 계산을 찾아 올바르게 처리하도록 변경합니다. 소프트웨어에는 수정해야 하는 수백만 개의 위치가 있으며 각 수정은 손으로 수행한 다음 테스트해야 합니다. 예를 들어, 보험 회사는 보험 계산을 수행하는 2천만 또는 3천만 라인의 코드를 가지고 있을 수 있습니다. 코드 내부에는 100,000 또는 200,000 날짜 계산이 있을 수 있습니다. 코드가 어떻게 작성되었는지에 따라 프로그래머가 일일이 직접 들어가서 날짜를 사용하는 프로그램의 각 지점을 수정해야 할 수도 있습니다. 그런 다음 각 변경 사항을 테스트해야 합니다. 테스트는 대부분의 경우 어려운 부분입니다. 시간이 많이 걸릴 수 있습니다.
각 변경 사항을 적용하고 테스트하는 데 하루가 걸리고 100,000번의 변경 사항이 있고 한 사람이 1년에 200일을 일한다고 가정하면 모든 변경 사항을 적용하는 데 1년에 500명이 필요하다는 의미입니다. 또한 대부분의 회사에 1년 동안 앉아 있는 500명의 유휴 프로그래머가 없고 그 사람들을 고용해야 한다는 사실을 알게 된다면 이것이 왜 꽤 비용이 많이 드는 문제가 될 수 있는지 알 수 있습니다. 프로그래머의 비용이 연간 $150,000 정도라고 생각하면(프로그래머의 급여, 혜택, 사무실 공간, 장비, 관리, 교육 등과 같은 모든 것을 포함하면) 회사에 수천만 달러의 비용이 들 수 있음을 알 수 있습니다. 큰 프로그램에서 모든 날짜 계산을 수정하기 위해 달러.
Y2K 문제가 2000년 1월에 왔다가 사라졌지만 역사적 가치 때문에 이 기사를 아카이브 편집본으로 저장했습니다. 1999년 초 언론의 Y2K 패닉이 한창일 때 공개된 이 기사는 "실제로는 아무 일도 일어나지 않을 것이다"라는 문장으로 주목된다. 돌이켜보면 그 문장은 완전히 맞았지만 1999년 1월에 그것은 주류 미디어가 그리는 그림이 아니었습니다. 이 간단한 예측을 하기 위해 엄청난 양의 불타는 이메일을 받았습니다.
2000년 1월 1일에 무슨 일이?
2000년 1월 1일에 수정되지 않은 소프트웨어는 작동을 중지하거나 잘못된 출력을 생성합니다. 큰 질문은 "우리가 알고 있는 세계에 얼마나 큰 영향을 미칠까요?"입니다.
어떤 사람들은 세상이 끝날 것이라고 예측합니다. 예를 들어, 전 세계적인 정전, 운송 인프라의 완전한 고장(즉, 식품이 상점에 도달할 수 없음을 의미함), 하늘에서 비행기가 떨어지는 등 이 사람들이 예상하는 시나리오입니다. 예측은 사회 구조가 무너지고 도처에 있는 사람들이 폭동을 일으키며 세계가 불타버릴 것이라는 것입니다. 물론 이러한 예측을 하는 사람들은 모두 A) 민병대원, B) 생존주의자, C) 종교적 광신도인 경향이 있습니다. 이러한 예측의 출처를 인식하는 것이 중요합니다.
실제로는 아무 일도 일어나지 않을 것입니다. 예상치 못한 문제가 발생하고 해결되므로 1~2주 동안 불편을 겪을 수 있습니다. 그렇지 않으면 효과가 없습니다. 다음과 같은 이유로 쉽게 예측할 수 있습니다.
- 대부분의 회사와 정부 기관은 1999년 말까지 소프트웨어를 수정하거나 해결 방법을 마련할 것입니다. 그렇지 않으면 사업을 중단할 것이며 이는 작업을 완료할 강력한 동기입니다.
- 우리가 컴퓨터에 얼마나 의존한다고 생각하든, 대부분의 모든 것은 실리콘이 아니라 사람에 의해 실행됩니다. 예를 들어 음식을 가져 가라. 토마토와 상추는 계속 자랄 것이고, 그것을 따는 사람들은 계속 따고, 통조림 공장은 여전히 할 수 있고, 트럭 운전사는 여전히 트럭을 운전하고 식료품점에서는 여전히 그것을 판매할 것입니다. 다시 말해, 컴퓨터 몇 대가 멈춰도 세상은 멈추지 않을 것입니다.
- 일부 회사는 함께 행동하지 않으며 문제가 있습니다. 그들은 사업을 중단할 것입니다. 그것이 작동하는 정상적인 자본주의입니다. 승자와 패자가 정리되는 동안 약간의 혼란이 있을 것입니다. 하지만 새로운 것은 무엇입니까?
명심해야 할 또 다른 사실은 우리는 항상 불편함을 겪고 있으며 우리에게 거의 또는 전혀 영향을 미치지 않는다는 것입니다. 예를 들어, 1997년 UPS(United Parcel Service)가 파업을 했을 때 미국의 소포 배달 인프라의 80%가 폐쇄되었습니다. 1999년 1월 3일 시카고와 디트로이트는 30년 만에 최악의 눈보라를 경험했습니다. 전국 항공 여행을 중단하고 디트로이트 모터쇼 개막을 연기하고 수만 명의 사람들을 좌초시키는 등 우리 모두는 불편을 감수하면서 어떻게든 살아남을 수 있었습니다. 2000년 1월 1일에 문제가 있는 일부 회사가 있을 것입니다. 하지만 그렇지 않은 회사도 많이 있을 것입니다. 불편을 겪을 수 있지만 그게 전부이며 2주 후에 문제를 해결할 것입니다. 그것'큰 눈보라나 큰 파업과 다르지 않습니다. 우리는 문제를 해결하는 방법을 찾아내고 삶을 계속합니다.
2000년 문제와 관련하여 사용된 많은 공포 전술과 과장이 있습니다. 그들 모두에는 사람들이 더 이상 자신의 일을 할 수 없다는 상당히 광범위한 가정이 있습니다. 인식해야 할 중요한 사실은 세계의 많은 컴퓨터가 2000년 1월 1일에 갑자기 종료되더라도 사람들이 자신이 무엇을 하고 있는지 알기 때문에 전체 영향은 최소화된다는 것입니다. 그 이유를 알려드리겠습니다.
- 미국의 모든 ATM이 작동을 멈췄다고 가정해 봅시다. 아직 출납원이 있으며 정상 영업 시간에 은행 창구와 대화하여 입출금을 할 수 있습니다.
- UPS의 모든 컴퓨터가 종료되어야 한다고 가정해 보겠습니다. UPS는 갈색 트럭 주위를 운전하는 많은 사람들이며 모두 주소 레이블을 읽을 수 있습니다. 패키지는 계속 배달됩니다.
- 상점의 모든 바코드 스캐너가 작동을 멈췄다고 가정해 보겠습니다. 계산원은 여전히 가격을 입력할 수 있습니다.
- FAA의 모든 컴퓨터가 꺼지고 비행기의 모든 자동 조종 컴퓨터가 작동을 멈춘다고 가정해 보겠습니다. 항공 교통 관제사는 사람이고 조종사는 여전히 비행기를 조종할 수 있습니다. 분주한 공항에서 1분에 2대의 비행기를 착륙시키지 못할 수도 있지만 비행기는 계속 날 것입니다.
- Y2K 문제와 관련하여 사용되는 가장 큰 공포 전술 중 하나는 "전력망 장애"입니다. 어딘가에 문제가 있었다고 가정해 봅시다. 전력망을 관리하고 수리하는 수천 명의 유능한 사람들이 있습니다. 이들은 모든 주요 허리케인, 얼음 폭풍 등 이후에 전력망을 다시 결합하는 사람들입니다. 또한 주목해야 할 중요한 것은 전력망이 마법 같은 것이 아니라는 것입니다. 전력망 작동 방식을 읽고 스스로 교육하십시오. 그리드는 수동 와이어와 변압기로 구성됩니다. 전자는 2000년 1월 1일에도 여전히 전선을 통해 흐를 것입니다.
종말론자들 사이에는 2000년 1월 1일에 모든 컴퓨터가 고장날 것이며(어리석음) 모든 인간도 어떻게든 "실패"할 것이라는 가정이 있습니다. 곰곰이 생각해보면 그것이 얼마나 거짓인지 알 수 있습니다. 우리는 모두 일을 하는 방법을 알고 있고 우리의 삶을 살기를 원합니다. 2000년 1월 1일에 우리는 모두 같을 것입니다. 우리는 차를 타고 가서 무엇인가를 사고 싶어할 것입니다. 물건을 파는 사람들은 돈을 벌기 위해 물건을 팔고 싶어할 것입니다. 그것은 결코 변하지 않을 것입니다.
연결
- 2000년 문제 - JP Morgan
- 2000년 정보 센터