Skip to content

추모 — 마거릿 해밀턴, 1936년 8월 17일 – 2026년 9월 30일

← 거인들의 어깨 위로 돌아가기

Margaret Hamilton seated inside an Apollo command module mockup, 1969
아폴로 사령선 모형 안의 해밀턴, 1969년. 사진: NASA(퍼블릭 도메인).
추모

Margaret Hamilton

1936년 8월 17일 – 2026년 9월 30일 · 컴퓨터 과학자 · 아폴로 비행 소프트웨어 총괄 · '소프트웨어 공학'의 어머니

마거릿 해밀턴은 아폴로 프로그램의 탑재 비행 소프트웨어를 작성한 MIT 팀을 이끌었습니다 — 현대의 손목시계보다 작은 메모리를 가진 컴퓨터로 승무원을 달에 보내고 돌아오게 한 코드입니다. 그녀는 일을 하면서 학문 자체를 발명했습니다. 소프트웨어 공학이라는 용어를 만든 사람이 바로 그녀이며, 당시 그 말은 농담 취급을 받았습니다.

파올리에서 케임브리지까지

마거릿 히필드는 1936년 인디애나주 파올리에서 태어나 시인이자 철학 교수인 아버지 아래 미시간 어퍼 반도에서 자랐습니다. 얼햄 대학에서 수학을 — 부전공으로 철학을 — 전공하고 1958년에 졸업했으며, 같은 해 제임스 해밀턴과 결혼했습니다. 딸 로런은 1959년생입니다.

그녀는 브랜다이스 대학에서 추상수학 대학원 과정을 밟을 계획이었습니다. 대신 남편의 하버드 로스쿨 재학을 뒷받침하기 위해 MIT에 임시직일 예정이던 자리에 취직했습니다 — 에드워드 로렌츠(그래요, 카오스 이론의 그 로렌츠)를 위해 LGP-30과 PDP-1 컴퓨터로 기상 예측 소프트웨어를 쓰는 일이었죠. 프로그래밍 강좌 같은 건 없었고, 하면서 배웠습니다. 그녀는 바로 잘했습니다.

그것이 그녀를 MIT 링컨 연구소와 SAGE 프로젝트로 이끌었습니다 — 대륙 규모의 방공 시스템으로, 실패가 허용되지 않는 소프트웨어를 최초로 요구한 시스템 중 하나였습니다. 링컨 랩에서 해밀턴은 아무도 고치지 못하는 프로그램을 고치는 사람으로 명성을 얻었고, 동료들은 가장 어렵고 기이한 버그를 그녀에게 넘기기 시작했습니다. 그녀는 대륙을 지키는 기계 위에서 내결함성을 배우고 있었습니다.

아폴로

1965년, MIT 계측 연구소(후의 드레이퍼)는 아폴로 탑재 유도의 NASA 계약을 따냈습니다. 해밀턴은 MIT에서 아폴로 프로젝트에 채용된 최초의 프로그래머이자, 그것을 위해 프로그래밍한 최초의 여성이었습니다. 무인 미션에서 시작해 유인 사령선·달 착륙선의 비행 소프트웨어를 쓰는 팀의 리더로 승진했습니다. 1968년에는 사령·기계선 소프트웨어를 총괄했고, 작업의 정점에서는 400명 이상이 아폴로의 코드를 작성하고 있었습니다.

그녀의 코드가 날려야 할 기계는 작기로 유명했습니다. 아폴로 유도 컴퓨터는 약 85킬로헤르츠로 작동했고 로프 메모리는 약 72킬로바이트 — '작은 할머니들'이라 불린 공장 노동자들이 페라이트 코어에 철사를 한 가닥씩 손으로 통과시켜 짠 것이었습니다. 소프트웨어는 그 메모리에 쓰이는 것이 아니라 제작되어 들어가는 것이었습니다. 나중에 패치할 방법은 없었습니다.

Margaret Hamilton beside the printout stack of Apollo Guidance Computer software
그 유명한 사진: 아폴로 유도 컴퓨터 소프트웨어 출력물 옆에 선 해밀턴 — 키만 한 높이. 모든 페이지는 땀이었습니다. (드레이퍼 연구소 / 퍼블릭 도메인)

딸이 NASA보다 먼저 버그를 찾았다

소프트웨어 역사에서 가장 좋은 이야기 중 하나는 아이의 이야기입니다. 당시 여덟 살쯤 된 로런 해밀턴은 주말에 연구소에 와서 시뮬레이터로 우주비행사 놀이를 했습니다. 어느 방문 때 그녀는 시뮬레이션 도중 키를 마구 눌러 비행 중에 발사 전 프로그램을 실행해 버렸고 — 컴퓨터의 항법 데이터를 지웠습니다. 무슨 일인지 깨달은 해밀턴은 그 시퀀스가 비행 중에 절대 실행되지 못하도록 오류 검사를 추가하자고 주장했습니다. 위에서 온 답: 우주비행사는 실수하지 않도록 훈련받았다. 그럴 리 없다.

아폴로 8호에서 우주비행사 짐 러벨은 — 로런이 했던 것과 정확히 똑같은 행동으로 — 같은 프로그램을 실수로 실행해 달을 도는 중 항법 데이터를 지웠습니다. 해밀턴의 팀은 밤낮없이 일해 테이블을 재구축하고 승무원을 집으로 데려왔습니다. 그녀가 요청했던 검사는 그 후에 추가되었습니다. 모든 프로그래머가 아는 교훈입니다: 사람이 할 수 있는 조작은, 사람이 언젠가 한다.

그녀의 옳음을 증명한 3분

그녀의 가장 깊은 집착은 오류 처리였습니다 — 당시로서는 급진적인 입장이었죠. 소프트웨어는 작동하거나 실패하거나 둘 중 하나로 여겨졌습니다. 해밀턴은 고장을 뚫고 계속 작동해야 한다고 주장했습니다 — 승무원에게 무엇이 잘못됐는지 알리고, 최우선 작업을 먼저 보호하도록. 아폴로 소프트웨어는 우선순위 스케줄링 실행기 아래에서 돌았고, '우선순위 디스플레이'가 경보를 숨기지 않고 표면에 올렸습니다.

1969년 7월 20일. 아폴로 11호가 고요의 바다로 하강하는 중, 유도 컴퓨터가 1201·1202 실행기 오버플로 경보를 울리기 시작합니다 — 랑데부 레이더가 필요 없는 데이터를내며 기계에 능력 이상을 요구하고 있었기 때문입니다. 해밀턴의 설계는 설계된 그대로 동작합니다: 낮은 우선순위 작업을 버리고, 착륙 비행을 계속하고, 일어나는 일을 승무원에게 알립니다. 휴스턴에서 경보 코드를 통째로 외운 24세 엔지니어 잭 가먼이 비행 책임자 스티브 베일스에게 경보의 의미를 설명합니다. 지시가 올라갑니다: "고". 암스트롱과 올드린은 착륙했습니다.

그녀가 남긴 교훈: 경보는 오작동이 아니었습니다 — 아무도 완전히 예견할 수 없는 조건에서, 설계된 그대로의 일을 하는 시스템이었습니다. 힘들 때 진실을 말하는 소프트웨어, 중요한 것에 순위를 매기는 소프트웨어, 조용히 죽는 대신 우아하게 열화하는 소프트웨어를 쓰십시오. 그 생각 — 놀라움이 아닌 설계된 행동으로서의 오류 — 은 지금도 좋은 공학의 심장이며, 코드를 실행하기 전에 분석하는 도구들 뒤에 있는 같은 본능입니다.

'소프트웨어 공학'

해밀턴이 자신들의 일을 '소프트웨어 공학'이라 부르기 시작했을 때, 선배 동료들은 웃었습니다 — 공학은 하드웨어였고, 소프트웨어는 그저 타이핑하는 것이었으니까요. 그녀는 작업 자체가 그 말을 부정할 수 없게 만들 때까지 용어를 계속 썼습니다 — 요구사항, 설계, 테스트, 시뮬레이션, 리뷰를 갖춘 학문. 그 표현은 회의론자들보다 오래 살았습니다. 지금은 직업의 이름입니다 — 그리고 그녀는 이름을 지은 것뿐 아니라, 달로 가는 길에서 그 의미를 보여주었습니다.

아폴로 이후 — 구성에 의한 공학

해밀턴은 이후 수십 년을 아폴로가 가르쳐 준 것을 형식화하는 데 썼습니다: 시스템은 설계에 의해 정확해야 하지, 사후에 디버깅으로 정확해지는 것이 아니라는 것. 1976년 그녀는 Higher Order Software를 공동 설립해 설계 도구 USE.IT을 만들었습니다 — 공리적 규칙 아래 명세된 시스템으로, 코드 한 줄이 실행되기 전에 오류의 부류 전체가 방지됩니다. 1986년에는 케임브리지에 Hamilton Technologies를 설립해 Universal Systems Language(USL)와 001 도구 모음을 개발했습니다 — '사실 이전의 개발', 소프트웨어가 자신이 섬기는 시스템의 엄밀함을 물려받는 시스템 공학. 그녀는 그 일을 여생 내내 이끌었습니다.

수상

President Obama awarding Margaret Hamilton the Presidential Medal of Freedom, 2016
해밀턴에게 대통령 자유 훈장을 수여하는 오바마 대통령, 2016년 — '인류를 우주로 보내는 데 도움을 준, 알려지지 않은 여성들의 세대를 상징한다'. (백악관 사진 — 퍼블릭 도메인)

마지막 말

해밀턴은 2026년 9월 30일 케임브리지에서 세상을 떠났습니다 — 소프트웨어가 무엇이 될 수 있는지 처음 배운 연구소가 보이는 곳에서. 90세였습니다. 딸 로런 — NASA의 절차가 찾지 못한 버그를 손가락으로 찾아낸 그 소녀 —, 사위, 두 명의 손자, 네 명의 증손이 남았습니다. NASA 국장은 그녀를 '아폴로와 인류 최초의 달 여행을 가능하게 한 선구자'라고 불렀습니다. 케임브리지에서 추모식이 계획되어 있습니다.

"두 번째 기회는 없었습니다. 우리는 그걸 알았습니다. 우리는 일을 진지하게 했습니다. 이 여정을 시작할 때 우리 중 많은 이가 겨우 이십 대였습니다… 길을 찾아야 했고, 찾았습니다. 돌이켜보면 우리는 세상에서 가장 운이 좋은 사람들이었습니다. 선구자가 되는 것 외에 선택지가 없었습니다."
— 마거릿 해밀턴, MIT News, 2009

그녀가 거인과 나란히 서는 이유

이 사이트는 사람들에게 프로그래밍을 가르치기 위해 존재합니다. 해밀턴은 프로그래밍이 인명의 무게를 짊어질 수 있음을 증명한 사람입니다 — 그리고 그것은 엄밀함, 겸손, 그리고 오지 않기를 바라는 고장을 위해 설계하려는 의지를 요구합니다. 한밤중 연구실에서 디버깅하는 어머니, 고요의 바다로 내려가는 길에 포기를 거부한 컴퓨터, 그리고 그녀가 몸소 실천해 참으로 만든 단어 — 공학. 바로 그것이 거인의 어깨가 있는 이유입니다.

출처와 더 읽을거리

← 거인들의 어깨 위로 돌아가기