역사 속의 소프트웨어 오류

러시아 화성 탐사의 흑역사 – 포보스 1호

1960~70년대는 화성 탐사의 전성기였다. 미국과 소련은 마치 경쟁하듯 화성을 향해 탐사선을 쏘아 올렸다. 비록 실패도 많았지만 임무에 성공한 몇몇 탐사선은 인류에게 수 많은 화성의 비밀을 알려주는 성과를 거두기도 했다. 하지만 1975년 미국의 바이킹 1호 이후 두 국가가 약속이라도 한 듯 탐사선을 화성에 보내지 않게 된다.

바이킹 1호

포보스 1호

이 공백은 1988년 포보스 1호, 2호를 발사하기까지 13년 동안 이어졌다. 소련이 화성의 위성인 포보스와 데이모스를 탐사하기 위해 수립한 포보스 프로그램의 결과물인 포보스 1, 2호는 소련 최초로 서방 국가와의 협업을 통해 진행되었다. 그 당시까지 냉전이 지속되고 있었지만 철의 장막을 뛰어넘어 스웨덴, 서독, 프랑스, 미국 등 14개 국가가 참여한 큰 프로젝트였다.

이 포보스 프로그램의 가장 큰 특징은 최종 목적지가 화성이 아닌 화성의 두 위성 포보스와 데이모스라는 점이었다. 1985년 발사한 핼리혜성 탐사선인 베가, 지오토, 스이세이 임무의 성공 후 인류의 관심이 태양계의 세세한 부분까지 미치고 있었던 당시 동향을 볼 때 포보스 1, 2호가 화성이 아닌 화성의 달과 같은 작은 위성에 착륙하고자 하는 것은 어찌보면 당연한 수순이었다.

몇 년간의 준비 기간을 거쳐 1988년 7월 7일, 현재 카자흐스탄에 위치한 바이코누르 우주 기지에서 한 기의 프로톤 로켓이 거대한 화염을 내뿜으며 날아올랐다. 이 로켓에는 화성의 위성 포보스행 편도 티켓만을 가지고 있는 포보스 1호가 탑재 되어 있었다.

순조로운 출발, 급작스러운 정지

포보스 1호의 출발은 순조로웠다. 같은 해 같은 달 16일 첫 번째 궤도 수정을 마친 포보스 1은 초속 8.9미터의 속도로 화성을 항해 순항하기 시작했다. 화성 궤도 진입은 1989년 4월 7일로 예정되어 있었다. 포보스 1호의 동작도 정상적이었다. 1988년 7월 23일 포보스 1호에 탑재되어 있는 텔렉(Terek) 망원경을 작동시키기 시작하면서 7~8월중에만 태양과 태양의 코로나를 찍은 140장의 엑스레이 이미지를 보내왔고, 포보스 1호에 이어 발사된 포보스 2호와도 총 39번의 통신이 이루어졌다.

포보스 1호(출처 : http://nssdc.gsfc.nasa.gov/nmc/spacecraftDisplay.do?id=1988-058A)
포보스 1호(출처 : http://nssdc.gsfc.nasa.gov/nmc/spacecraftDisplay.do?id=1988-058A)

하지만 미국과는 달리 화성 탐사선을 발사한 족족 실패를 거듭한 소련의 불운은 다시 한 번 포보스 1호를 덮쳤다. 화성으로 순조롭게 항진 중인 포보스 1호와의 통신이 돌연 끊어진 것이었다. 때는 9월 1일, 발사한지 2달이 조금 못 미칠때였다.

또 소프트웨어 오류

원래 9월 1일은 포보스 1호가 지상에 있는 관제센터에 교신을 하기로 예정된 날이었다. 그러나 예정된 시간이 되어도 포보스 1호는 지상에 어떠한 신호도 주지 않았다. 애가 탄 관제센터는 포보스 1호에 여러번 응답을 요청했으나 포보스 1호는 묵묵부답이었다.

분석 결과 포보스 1호 작동 중단의 원인은 교신이 끊어지기 삼 일 전인 8월 28일 업로드 한 소프트웨어의 결함때문이었다. 이 소프트웨어에는 포보스 1호의 자세 제어 시스템의 추력을 끄도록 한 코드가 들어 있었다. 결과는 파멸이었다. 자세 제어 시스템이 꺼진 포보스 1호는  태양풍의 압력때문에 서서히 방향이 틀어지기 시작했다.

우주선의 방향이 틀어진다는 것은 두 가지 문제점을 야기한다. 잘못된 목적지로 향하는 것은 당연한 이야기지만, 지상에서 다시 소프트웨어를 수정 및 다시 업로드 함으로서 이를 해결할 수 있다. 더 큰 문제는 우주선의 방향이 바뀌면 우주선의 주 전력원인 태양전지판의 방향도 틀어져서 전력 생산이 감소한다는 점이다. 전력이 감소되면 주요 기기의 동작이 멈추게 되고, 그 결과 지상과 교신을 할 수 없어 영영 우주 미아 신세로 전락하고 만다. (주 : 제 책에서도 이와 비슷한 사례를 소개하고 있습니다.)

우주미아 포보스 1호

포보스 1호도 이를 피해가지 못했다. 태양전지판이 태양을 향하지 못하게 된 포보스 1호는 더 이상 자체적으로 전력을 생산하지 못했고 내장된 배터리의 전력을 까먹으며 서서히 죽어가고 있었다. 지상의 포보스 1호 관제 센터에서는 이 문제를 너무 늦게(9월 1일) 발견했다. 당시 포보스 1호의 배터리는 지구로부터 송신되는 무선 교신을 처리할 만큼의 전력이 남아있지 않았다. 포보스 1호는 당연히 응답을 할 수 없었다.

지상 관제센터에서는 실낱같은 희망의 끈을 붙잡고 9월과 10월에도 계속 포보스 1호와 교신을 시도했다. 기적적으로 태양전지판이 다시 태양을 향하게 되어 시스템이 살아나기만을 고대했던 것이다. 하지만 포보스 1호로부터 어떠한 응답도 오지 않았다. 결국 11월 3일 공식적으로 임무 실패를 선언했다.

또 다른 진실

어떤 진술에 의하면 자세 제어 시스템을 끄는 명령어는 지상에서 우주선을 테스팅 할 때 사용하는 코드 중 일부에 들어있었다고 한다. 정상적이라면 테스트 코드는 발사 전에 제거해야 했다. 하지만 소프트웨어가 읽기 전용 메모리에 있었고 이를 제거하려면 해당 메모리(PROM)와 모든 컴퓨터를 교체해야 했다. 게다가 발사가 임박한 시점이어서 교체하기에는 시간이 없었다. 결국 해당 코드가 절대 실행되지 않으리라는 생각에 기술자들은 그냥 메모리에 해당 코드를 두기로 결정했다. 하지만 8월 28일에 업로드 한 소프트웨어의 코드에는 단 한 글자가 잘못 적는 입력되어 있었고 이 바람에 지상 테스팅 때 사용하던 소프트웨어가 수행되게 되었다. 이 결과 포보스 1호의 자세 제어 시스템의 추력이 꺼져버리는 대 참사가 발생하고야 만다.

더 많은 우주선 사고 혹은 소프트웨어 를 찾으시나요? 제 책에서 더 많은 사건 사고를 다루고 있습니다.

Yes24, 교보문고, 알라딘, 강컴, 인터파크, 반디앤루디스

참고자료

1. R.Z. Sagdeef & A.V.Zakharov, “Brief history of Phobos mission”, Nature Vol. 341 , 19 Oct. 1989
2. http://nssdc.gsfc.nasa.gov/nmc/spacecraftDisplay.do?id=1988-058A
3. http://catless.ncl.ac.uk/Risks/9.24.html#subj3
4. http://www.russianspaceweb.com/phobos.html

 

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *