90년 1월 15일 오후 2시 30분, 미국 AT&T의 전화 통신망이 장애를 일으켰다. 장거리 통화자 두 명에 한 명 꼴로 전화 연결이 되지 않았던 것이다. 이러한 사고는 아홉 시간이나 계속되었는데 다행히 그날은 마틴 루터 킹 목사 탄신기념 공휴일이라서 평일 때보다는 사회적 파장이 적은 편이었다.
다음날 뉴욕타임스의 1면에는 「전화 통신망을 제어하는 컴퓨터 프로그램의 오류가 시스템을 마비시켰다」는 기사가 실렸다. 과연 그날 무슨 일이 일어난 것일까. 이른바 「Y2K」 같은 컴퓨터 대란이 발생했던 것일까?
AT&T의 전화통신망 운영센터는 미국 동부 뉴저지주에 있는데 당시 사건은 회사 역사상 최악의 통신망 결함사고였다고 한다. 사고발생 직후 AT&T가 자랑하는 벨 연구소의 최고 전문가들이 달려와 소프트웨어를 고치려고 노력했지만 오류는 한참 동안이나 지속되었다.
오늘날 사회 각 분야나 산업계에서 쓰이는 컴퓨터 프로그램들은 그 종류가 무수히 많다. 그 중에서도 전화 통신망 제어 프로그램은 가장 복잡한 소프트웨어 시스템에 속한다. 이런 프로그램이 전화 한 통을 연결하기 위해 수행하는 작업은 대략 다음과 같다. 먼저 「가」라는 지점에서 「나」라는 지점으로 (장거리)전화를 걸면, 컴퓨터 프로그램은 수백만 가지의 연결 가능한 경로 중에서 가장 경제적인 경로를 찾아내고 그 경로를 따라 설치되어 있는 접속장치들이 정상적으로 작동하는지 점검한 다음, 마지막으로 받는 쪽의 전화 상태를 확인한다.
이런 작업을 수행할 프로그램을 짜기 위해서는 상당한 고등 수학 이론이 응용된다. 정보를 보낼 최적의 경로를 찾는 방법으로 벨 연구소의 나린드라 카마르카라는 사람이 80년대에 획기적인 최적화 알고리듬을 개발해냈는데, 물론 그에 상응하는 복잡한 공학적 기술을 요구하는 것이었다.
이처럼 전화망이 계속 확장되고 또 프로그램도 개선을 거듭하게 되면서 통신망 제어 소프트웨어는 발전해왔다. 앞서 소개한 사고가 일어나기 전까지도 AT&T의 교환 접속 시스템은 13차례나 바뀌었고 그 뒤로도 새로운 국제규격이나 표준규격 등에 맞추기 위해 변경 작업이 잇따랐다.
이처럼 새로운 소프트웨어 시스템을 작동시킬 때에는 미리 시험과 수정 과정을 거치지만, 90년 1월 15일의 사고는 그런 절차를 생략했다가 일어난 것이다. 처음에 발생한 오류는 아주 작은 것이었으나 이내 통신망 전체로 빠르게 확산되면서 시스템을 마비시키고 말았던 것이다.
사고 다음날 AT&T는 다른 경쟁회사의 통신망을 이용해 추가부담 없이 장거리 전화를 걸 수 있는 새로운 전화번호를 가입자들에게 통보할 수밖에 없었다. 자사의 수익이 줄어드는 것은 뻔한 일이었지만 감수할 수밖에 없었다.
이와 같은 사고는 겉으로 보기에는 컴퓨터 소프트웨어의 결함이 원인인 것처럼 보인다. 그러나 근본적 이유를 찾아보면 사람의 사소한 실수 때문에 발생한 경우도 많다.
Y2K 역시 처음에 사람이 만들어놓은 환경조건에 컴퓨터는 다만 충실하게 따를 뿐이지만 결과적으로는 엄청난 재난의 가능성을 불러일으키는 것이다.
컴퓨터 소프트웨어의 오류로 인한 재난이 위험한 이유는 인간의 작은 실수 하나가 일파만파로 불어나 엄청난 결과를 초래할 수도 있다는 「재난 증폭 효과」때문이다. 만일 전화망이 아니라 원자력 발전소나 항공관제, 더 나아가 핵미사일 통제 소프트웨어 시스템 등에 결함이 일어난다면 얼마나 가공할 결과가 초래되겠는가. 상상만 해도 끔찍한 일이다.
<박상준·과학해설가>