NASA 아폴로 프로그램의 비행 소프트웨어 개발을 이끌며 소프트웨어 공학의 토대를 마련한 컴퓨터 과학자 마거릿 해밀턴이 90세로 세상을 떠났다.
NASA의 아폴로 프로그램 기간에 MIT 계측 연구소의 소프트웨어 공학 팀을 이끈 것으로 가장 잘 알려진 지대한 영향력을 지닌 컴퓨터 과학자 마거릿 해밀턴이 9월 30일 별세했다. 향년 90세였다.
130편이 넘는 출판물을 저술한 컴퓨팅 선구자 해밀턴은 소프트웨어 공학이 독립된 학문 분야로 자리 잡는 데 기여했다. 그는 1959년부터 1970년대 중반까지 MIT에서 일했으며, 이후 성공적인 컴퓨팅 기업가이자 최고경영자가 되었다.
그의 평생에 걸친 업적은 버락 오바마 대통령으로부터 받은 2016년 대통령 자유 훈장을 비롯해 수많은 상과 영예로 인정받았다. 훈장 수여문에는 다음과 같이 적혀 있었다. “해밀턴은 새로운 형태의 소프트웨어 공학을 정의하고 인류 역사를 영원히 바꿀 산업의 출범을 도왔습니다. 그의 소프트웨어 아키텍처는 인류에게 거대한 도약을 가능하게 했으며, 미국이 달에 발을 디디도록 도운 코드를 작성했습니다.”
“마거릿 해밀턴이 선구자였다고, 시대를 앞서갔다고 말하는 것은 엄청난 축소 표현일 것입니다. 그는 그 분야가 막 태동하던 시절의 소프트웨어 엔지니어였고, 직접 고도화된 코드를 개발했을 뿐 아니라 그 초기 기술을 활용해 인류가 이룩한 가장 복잡한 시스템 가운데 하나를 개발하는 팀을 이끌었습니다.”라고 MIT 항공우주학과의 아폴로 프로그램 교수이자 임시 학과장인 올리비에 드 베크는 말한다.
“아폴로 프로그램은 지금도 협업, 독창성, 공학의 힘을 보여 주는 가장 위대한 증거 중 하나이며, 마거릿 해밀턴은 그 프로그램의 성공에 근본적으로 기여했습니다. 그리고 그것은 그에게 시작일 뿐이었습니다! 그는 이후 기업가가 되었고, 비범한 경력 내내 시스템 소프트웨어의 최전선에 머물면서 수백만 명에게 옹호자이자 멘토, 영감의 원천으로 활동했습니다.”
초기 생애와 MIT에서의 프로젝트
1936년 인디애나주 파올리에서 태어난 해밀턴은 1955년 미시간 대학교에서 수학을 공부하기 시작한 뒤 얼햄 칼리지로 편입해 1958년 수학 학사 학위와 철학 부전공을 받았다. 남편이 법학 학위를 취득하는 동안, 그는 1959년 남편과 함께 매사추세츠주 보스턴으로 이주했다.
해밀턴은 곧 MIT 기상학과에서 임시직을 구해 기상학 교수 에드워드 N. 로렌츠 SM ’43, ScD ’48와 함께 기상 예측 소프트웨어를 개발했다. 이는 그가 컴퓨터 프로그래밍에 처음 입문한 계기였으며, 그의 작업은 훗날 로렌츠가 혼돈 이론에 관해 발표한 저작물에도 영향을 미쳤다.
이후 해밀턴은 1961년 MIT 링컨 연구소에서 프로그래머로 일하며 미국 최초의 방공 시스템인 반자동 지상 환경 프로젝트에 참여했다. 해밀턴은 미국 공군이 잠재적 적대 항공기를 탐색하는 데 사용한 시제품 AN/FSQ-7 컴퓨터 XD-1용 소프트웨어를 작성했다. 이 시기에 해밀턴은 당시 새롭고 거의 탐구되지 않았던 개념인 소프트웨어 신뢰성에 관심을 갖기 시작했다.
1965년 해밀턴은 대학원 진학을 준비하고 있었는데, 남편이 신문에서 광고를 보았다. MIT 계측 연구소가 “인간을 달에 보내기” 위한 소프트웨어 개발 인력을 찾는다는 내용이었다. 이 연구소는 아폴로 프로그램의 기내 비행 소프트웨어를 구축하는 계약을 NASA로부터 따낸 상태였다. 도전에 흥미를 느낀 해밀턴은 지원했고, MIT 아폴로 프로젝트의 첫 프로그래머이자 이 프로젝트 최초의 여성 프로그래머로 채용되었다.
해밀턴은 처음에는 무인 아폴로 임무용 소프트웨어를 작업했으며, 이후 유인 임무를 위한 기내 비행 소프트웨어를 개발하는 팀의 책임자로 승진했다. 1968년까지 그는 사령·서비스 모듈 팀을 책임지는 부책임자가 되었고, 400명 이상이 아폴로 소프트웨어 작업에 참여하고 있었다.
해밀턴은 2009년 MIT 뉴스에 이렇게 말했다. “제 관점에서 소프트웨어 경험 자체, 즉 설계하고 개발하며 발전시키고, 작동하는 모습을 지켜보고 미래 시스템을 위해 거기서 배우는 일은 임무를 둘러싼 사건들만큼이나 흥미로웠습니다. 두 번째 기회는 없었습니다. 우리는 그것을 알고 있었습니다. 우리는 일을 진지하게 받아들였고, 많은 이들이 20대에 이 여정을 시작했습니다. 해결책과 새로운 아이디어를 찾아내는 일은 모험이었습니다. 헌신과 책임감은 당연한 것이었습니다. 상호 존중은 모두에게 있었습니다. 소프트웨어는 수수께끼이자 블랙박스였기 때문에, 고위 경영진은 우리에게 완전한 자유와 신뢰를 주었습니다. 우리는 방법을 찾아야 했고, 그렇게 했습니다. 돌이켜 보면 우리는 세상에서 가장 운이 좋은 사람들이었습니다. 선구자가 되는 것 외에는 선택지가 없었습니다.”
‘방어적’ 프로그래밍과 우선순위 기반 소프트웨어가 인간을 달로 보내다
해밀턴은 리더십 재능과 함께 문제 해결 및 비판적 사고에 대한 예리한 감각을 발견했고, 이는 아폴로 프로젝트를 여러 차례 구하는 데 결정적인 역할을 했다.
‘로렌 오류’로 알려지게 된 사건이 있었다. 당시 네 살이던 딸 로렌이 어느 날 계측 연구소에서 사령 모듈 시뮬레이터를 가지고 놀다가, 시뮬레이터가 비행 중인 상태에서 어떻게든 P01이라는 발사 전 프로그램을 작동시켰고, 그 결과 시뮬레이터 전체가 멈췄다. 해밀턴은 기술 문서에 비행 중 P01을 실행하지 말라고 사용자에게 경고하는 프로그램 추가 기능을 만들었다.
그는 실제 임무에서 같은 오류가 발생하지 않도록 하는 소프트웨어 수정도 제안했지만, 고도로 훈련된 우주비행사들이 그런 실수를 할 리 없다는 이유로 기각되었다. 그러나 1968년 아폴로 8호 임무에서 정확히 그런 일이 일어났다. 짐 러벨이 비행 중 실수로 P01을 실행해 비행 중 항법 데이터가 사라진 것이다. 해밀턴과 그의 팀이 오류를 해결하도록 호출되었고, 그 뒤 그의 제안 변경 사항이 프로그램에 반영되었다. 이는 소프트웨어가 스스로 오류를 예측하거나 수정할 수 있도록 구축하는 관행인 ‘방어적’ 프로그래밍의 초기 사례였다.
해밀턴이 아폴로 프로그램에 한 가장 유명한 기여는 1969년 7월 달 착륙을 목표로 한 निर्ण정적인 아폴로 11호 임무 중에 이루어졌다. 이글 모듈이 달 표면에 착륙하려던 순간, 기내 컴퓨터가 경보를 울렸다. 하드웨어 스위치의 결함으로 컴퓨터에 과부하가 걸렸다는 1202 오류를 감지한 것이었고, 시스템이 복잡한 착륙 절차를 처리하지 못할 가능성이 있었다.
그러나 해밀턴과 그의 팀은 임무 핵심 작업의 우선순위를 정하기 위해 불필요한 백그라운드 작업을 종료할 수 있는 우선순위 기반 소프트웨어를 설계해 두었다. 휴스턴은 해밀턴의 소프트웨어를 신뢰하고 임무 진행을 허용했으며, 두 사람이 역사상 처음으로 달을 걸었다.
이후의 경력과 유산
해밀턴은 1970년대까지 계측 연구소에서 계속 일했다. 아폴로 프로그램이 막을 내리면서 계측 연구소는 MIT에서 분리되어 독립 기관인 드레이퍼 연구소가 되었다.
“마거릿은 드레이퍼에 지워지지 않는 흔적을 남겼으며, 우리는 영원히 감사할 것입니다.”라고 드레이퍼의 사장 겸 최고경영자인 제리 M. 월레츠 SM ’97, PhD ’00는 말한다. “NASA 아폴로 유도 컴퓨터용 기내 비행 소프트웨어 개발에 대한 그의 리더십과 기여를 통해, 그는 아폴로 우주비행사들이 달 표면에 안전하게 착륙하고 무사히 귀환하도록 도왔습니다. 우리는 드레이퍼에서 그의 유산을 영원히 기릴 것입니다.”
해밀턴은 1976년 첫 소프트웨어 회사인 하이어 오더 소프트웨어를 설립했다. 이 회사는 오류 예방과 결함 허용에 관한 해밀턴의 소프트웨어 공학 접근법을 기반으로 했다.
10년 뒤 해밀턴은 신뢰성을 극대화하고 비용을 낮추며 시장 출시 기간을 단축하기 위해 “계획, 시스템 공학 및 소프트웨어 개발 과정을 현대화하는 제품과 서비스를 제공”하고자 또 다른 소프트웨어 회사 해밀턴 테크놀로지스를 설립했다.
해밀턴 테크놀로지스의 주력 제품은 오류 예방과 방어적 프로그래밍을 우선시하는 복잡한 소프트웨어 시스템을 공학적으로 설계하기 위한 시스템 모델링 언어 및 방법론인 범용 시스템 언어 USL이다.
경력 내내 해밀턴은 소프트웨어 공학이 독립된 학문 분야로 인정받도록 힘썼다.
해밀턴은 2018년 _El Pais_와의 인터뷰에서 이렇게 말했다. “저는 소프트웨어와 이를 만드는 사람들이 마땅한 존중을 받도록 소프트웨어에 정당성을 부여하기 위해 싸웠고, 그래서 하드웨어 및 다른 종류의 공학과 구별하면서도 각 공학 분야를 전체 시스템 공학 과정의 일부로 다루기 위해 ‘소프트웨어 공학’이라는 용어를 사용하기 시작했습니다. 제가 이 표현을 처음 쓰기 시작했을 때는 꽤 우스운 일로 여겨졌습니다. 오랫동안 계속된 농담이었습니다. 사람들은 제 급진적인 생각을 두고 저를 놀리기를 좋아했습니다. 결국 소프트웨어는 필연적으로 다른 모든 분야와 같은 존중을 얻게 되었습니다.”
수많은 상과 영예 가운데 해밀턴은 2003년 과학기술 기여에 대한 NASA 특별 우주법 상, 2017년 컴퓨터 역사 박물관 펠로 상, 2019년 인트레피드 평생 공로상, 2022년 국립 항공 명예의 전당 헌액으로 인정받았다.
해밀턴은 말년에 과학과 기술 분야 여성들의 상징이 되었으며, 특히 MIT 팀이 작성한 아폴로 코드 출력물 옆에 선 모습을 담은 이제는 유명해진 사진이 온라인에서 퍼진 뒤 더욱 그랬다. 2015년에는 그가 개발을 도운 아폴로 소프트웨어 전체가 코드 공유 사이트 GitHub에 추가되었다. 또한 2017년에는 MIT 과학 커뮤니케이터 마이아 와인스톡이 처음 디자인한 세트가 전 세계에 출시된 뒤, NASA 역사 속 여러 여성과 함께 그를 기리는 공식 Lego 미니피겨가 되었다.
“마거릿 해밀턴은 여러 세대의 컴퓨터 과학자와 엔지니어에게 영감을 주었습니다. 그의 경력은 오류 예방과 그가 ‘미지의 것을 다루는 일’이라고 부른 것에 헌신한 경력이었습니다.”라고 드 베크는 말한다. “그는 행동으로 리더십을 보여 주었고, 우리 모두가 혜택을 누리는 문제 해결 및 시스템 공학 기반의 소프트웨어 공학 실천을 확립했습니다.”
해밀턴에게는 딸 로렌 해밀턴, 사위 리처드 셀레스닉, 두 명의 손자, 네 명의 증손자가 있다. 추모식은 봄에 매사추세츠주 케임브리지에서 열릴 예정이다.