1969년 7월 20일 오후 4시경,
인류는 달 표면에 착륙하기 일보직전이었습니다.
그러나 우주 비행사들이 최종 하강을 시작하기 직전에
비상 경고등이 켜졌습니다.
무언가가 컴퓨터에 과부하를 주고 있어서
착륙을 중지시켜야 하는 위험에 처했습니다.
지구에 있는 마거릿 해밀턴은 숨이 막혔습니다.
그녀는 기내 소프트웨어를 개발하는 팀을 지휘했기에
이 임무에는 실수의 여지가 없다는 것을 알고 있었습니다.
하지만 이 막바지 긴급상황은
그녀의 소프트웨어가 계획대로 정확히 작동한다는걸 증명해 주었습니다.
33년 전 인디애나 파올리에서 태어난 해밀턴은 항상 탐구심이 강했습니다.
대학에서 수학과 철학을 전공한 후
매사추세츠 공과대학에서 연구원으로 근무하며
대학원 학비를 충당합니다.
이곳에서 처음으로 컴퓨터를 접하고
새로운 분야인 카오스 이론 연구를 도울 소프트웨어를 개발합니다.
이후 MIT의 링컨 연구소에서
해밀턴은 미국 최초의 항공방어 시스템 소프트웨어를 개발하여
적 항공기 수색을 가능하게 합니다.
하지만 유명한 엔지니어 찰스 드레이퍼가
인류를 달에 보내기 위해 인력을 구한다는 것을 듣고
곧바로 그의 팀에 합류했습니다.
NASA는 드레이퍼와 400명이 넘는 그의 엔지니어에게 기대를 품었고
최초의 소형 운항 컴퓨터를 만들어주길 바랐습니다.
이렇게 해서 탄생한 것이 아폴로 가이던스 컴퓨터입니다.
우주 비행사들에게 받은 정보를 이용해서
이 장치는 안내, 운항과
선체 조종을 담당하였습니다.
그다지 신뢰하기 힘든 컴퓨터들이 방 가득 공간을 차지하던 시대에
아폴로 가이던스 컴퓨터는 한 치의 오차도 없이 작동하는 동시에
1세제곱 피트의 공간에 들어갈 정도로 작아야 했습니다.
드레이퍼는 연구원을 두 팀으로 나누어
한 팀은 하드웨어를 디자인하고 다른 팀은 소프트웨어를 개발했습니다.
해밀턴은 기내 비행 소프트웨어를 개발하는 팀을 이끌었는데
사령선과 착륙선을 위한 소프트웨어였습니다.
그녀가 만든 새로운 단어인 '소프트웨어 엔지니어링'은
매우 중요한 일이었습니다.
사람의 목숨이 달린 일이어서 모든 프로그램이 완벽해야만 했습니다.
마거릿의 소프트웨어는 예상치 못한 오류를 빨리 발견하고
실시간으로 처리해야 했습니다.
하지만 이런 유연한 프로그램을 제작하는 것은 매우 어려웠습니다.
당시 소프트웨어는 미리 설정된 명령만 처리할 수 있었기 때문이죠.
이 문제를 해결하기 위해서
마거릿은 '비동기화' 되도록 프로그램을 디자인 했는데
소프트웨어가 더 중요한 일을 먼저 처리할 것이라는 뜻이었죠.
그녀의 팀은 모든 과제에 고유한 우선순위를 부여해서
모든 일이 정확한 순서로 진행되도록 했고
어떠한 돌발상황에서도 적시에 작동하도록 했습니다.
이 발견 이후
마거릿은 자신의 소프트웨어가 비동기적 환경에서 우주비행사들도
도와줄 수 있다는 것을 깨달았죠.
그녀는 우선순위 화면을 디자인했는데
우주비행사들의 일반적으로 계획된 업무들을 제치고
긴급상황을 경고할 수 있게 합니다.
그러면 우주비행사들은 관제 센터에 연락해서
최선의 선택을 결정할 수 있습니다.
이것이 비행 소프트웨어가 최초로 비행사와 직접적으로
그리고 비동기적으로 통신한 기록입니다.
이러한 안전장치들이 달 착륙 직전에 경고를 울린 것입니다.
버즈 올드린은 재빨리 자신의 실수를 알아챘습니다.
그가 무심코 랑데부 레이더의 스위치를 건드린 것입니다.
이 레이더는 귀환할 때 필수적이지만
이 시점에는 귀중한 컴퓨터 자원만 잡아먹고 있었죠.
다행히 아폴로 가이던스 컴퓨터는 이런 실수를 잘 처리할 수 있습니다.
과부하 동안에 소프트웨어는 프로그램들을 재시작했고
오직 높은 우선순위의 일들만 작동하게 했죠.
착륙에 필요한 프로그램 같은 것들이요.
우선순위 표시기는 우주비행사들에게 선택권을 주었습니다.
착륙할지 말지 말이죠.
한시가 급한 상황에 관제 센터는 명령을 내립니다.
아폴로 11호의 착륙은 우주비행사들과 관제 센터,
소프트웨어와 하드웨어가 모두 같이 통합시스템으로서 작동한 것입니다.
해밀턴의 역할은 케네디 대통령의 목표인 달에 인류를 보내는 것에
크게 고무된 기술자들과 과학자들에게 매우 중요했습니다.
그녀의 중요한 일은 아폴로 11호를 훨씬 뛰어넘어서
유인 임무 중 기내 비행 소프트웨어에서 그 어떠한 오류도 발견되지 않았습니다.
아폴로 일 이후에
해밀턴은 특별한 범용 시스템 언어를 사용하는 회사를 설립하는데
시스템과 소프트웨어의 새로운 발견을 위한 회사였죠.
2003년에 나사는 그녀의 업적을 치하하면서
여태껏 개인에게 지급한 금전적 보상 중 최대치를 지급했습니다.
그녀의 소프트웨어가 최초로 우주 비행사들을 달로 이끈지 47년 후
해밀턴은 대통령 자유 훈장을 받았습니다.
우리가 기술에 대해 생각하는 방법을 바꿔줬기 때문이죠.