At roughly 4pm on July 20, 1969, mankind was just minutes away from landing on the surface of the moon. But before the astronauts began their final descent, an emergency alarm lit up. Something was overloading the computer, and threatened to abort the landing.
1969년 7월 20일 오후 4시경, 인류는 달 표면에 착륙하기 일보직전이었습니다. 그러나 우주 비행사들이 최종 하강을 시작하기 직전에 비상 경고등이 켜졌습니다. 무언가가 컴퓨터에 과부하를 주고 있어서 착륙을 중지시켜야 하는 위험에 처했습니다.
Back on Earth, Margaret Hamilton held her breath. She'd led the team developing the pioneering in-flight software, so she knew this mission had no room for error. But the nature of this last-second emergency would soon prove her software was working exactly as planned.
지구에 있는 마거릿 해밀턴은 숨이 막혔습니다. 그녀는 기내 소프트웨어를 개발하는 팀을 지휘했기에 이 임무에는 실수의 여지가 없다는 것을 알고 있었습니다. 하지만 이 막바지 긴급상황은 그녀의 소프트웨어가 계획대로 정확히 작동한다는걸 증명해 주었습니다.
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive. In college, she studied mathematics and philosophy, before taking a research position at the Massachusetts Institute of Technology to pay for grad school. Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
33년 전 인디애나 파올리에서 태어난 해밀턴은 항상 탐구심이 강했습니다. 대학에서 수학과 철학을 전공한 후 매사추세츠 공과대학에서 연구원으로 근무하며 대학원 학비를 충당합니다. 이곳에서 처음으로 컴퓨터를 접하고 새로운 분야인 카오스 이론 연구를 도울 소프트웨어를 개발합니다.
Next at MIT's Lincoln Laboratory, Hamilton developed software for America’s first air defense system to search for enemy aircraft. But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
이후 MIT의 링컨 연구소에서 해밀턴은 미국 최초의 항공방어 시스템 소프트웨어를 개발하여 적 항공기 수색을 가능하게 합니다. 하지만 유명한 엔지니어 찰스 드레이퍼가 인류를 달에 보내기 위해 인력을 구한다는 것을 듣고 곧바로 그의 팀에 합류했습니다.
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer. Using input from astronauts, this device would be responsible for guiding, navigating and controlling the spacecraft. At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors, and fit in one cubic foot of space.
NASA는 드레이퍼와 400명이 넘는 그의 엔지니어에게 기대를 품었고 최초의 소형 운항 컴퓨터를 만들어주길 바랐습니다. 이렇게 해서 탄생한 것이 아폴로 가이던스 컴퓨터입니다. 우주 비행사들에게 받은 정보를 이용해서 이 장치는 안내, 운항과 선체 조종을 담당하였습니다. 그다지 신뢰하기 힘든 컴퓨터들이 방 가득 공간을 차지하던 시대에 아폴로 가이던스 컴퓨터는 한 치의 오차도 없이 작동하는 동시에 1세제곱 피트의 공간에 들어갈 정도로 작아야 했습니다.
Draper divided the lab into two teams, one for designing hardware and one for developing software. Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules. This work, for which she coined the term “software engineering," was incredibly high stakes. Human lives were on the line, so every program had to be perfect. Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
드레이퍼는 연구원을 두 팀으로 나누어 한 팀은 하드웨어를 디자인하고 다른 팀은 소프트웨어를 개발했습니다. 해밀턴은 기내 비행 소프트웨어를 개발하는 팀을 이끌었는데 사령선과 착륙선을 위한 소프트웨어였습니다. 그녀가 만든 새로운 단어인 '소프트웨어 엔지니어링'은 매우 중요한 일이었습니다. 사람의 목숨이 달린 일이어서 모든 프로그램이 완벽해야만 했습니다. 마거릿의 소프트웨어는 예상치 못한 오류를 빨리 발견하고 실시간으로 처리해야 했습니다.
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order. To solve this problem, Margaret designed her program to be “asynchronous,” meaning the software's more important jobs would interrupt less important ones. Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time— regardless of any surprises.
하지만 이런 유연한 프로그램을 제작하는 것은 매우 어려웠습니다. 당시 소프트웨어는 미리 설정된 명령만 처리할 수 있었기 때문이죠. 이 문제를 해결하기 위해서 마거릿은 '비동기화' 되도록 프로그램을 디자인 했는데 소프트웨어가 더 중요한 일을 먼저 처리할 것이라는 뜻이었죠. 그녀의 팀은 모든 과제에 고유한 우선순위를 부여해서 모든 일이 정확한 순서로 진행되도록 했고 어떠한 돌발상황에서도 적시에 작동하도록 했습니다.
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well. She designed Priority Displays that would interrupt astronaut’s regularly scheduled tasks to warn them of emergencies. The astronaut could then communicate with Mission Control to determine the best path forward. This marked the first time flight software communicated directly— and asynchronously— with a pilot.
이 발견 이후 마거릿은 자신의 소프트웨어가 비동기적 환경에서 우주비행사들도 도와줄 수 있다는 것을 깨달았죠. 그녀는 우선순위 화면을 디자인했는데 우주비행사들의 일반적으로 계획된 업무들을 제치고 긴급상황을 경고할 수 있게 합니다. 그러면 우주비행사들은 관제 센터에 연락해서 최선의 선택을 결정할 수 있습니다. 이것이 비행 소프트웨어가 최초로 비행사와 직접적으로 그리고 비동기적으로 통신한 기록입니다.
It was these fail safes that triggered the alarms just before the lunar landing. Buzz Aldrin quickly realized his mistake— he’d inadvertently flipped the rendezvous radar switch. This radar would be essential on their journey home, but here it was using up vital computational resources. Fortunately, the Apollo Guidance Computer was well equipped to manage this. During the overload, the software restart programs allowed only the highest priority jobs to be processed— including the programs necessary for landing. The Priority Displays gave the astronauts a choice— to land or not to land. With minutes to spare, Mission Control gave the order.
이러한 안전장치들이 달 착륙 직전에 경고를 울린 것입니다. 버즈 올드린은 재빨리 자신의 실수를 알아챘습니다. 그가 무심코 랑데부 레이더의 스위치를 건드린 것입니다. 이 레이더는 귀환할 때 필수적이지만 이 시점에는 귀중한 컴퓨터 자원만 잡아먹고 있었죠. 다행히 아폴로 가이던스 컴퓨터는 이런 실수를 잘 처리할 수 있습니다. 과부하 동안에 소프트웨어는 프로그램들을 재시작했고 오직 높은 우선순위의 일들만 작동하게 했죠. 착륙에 필요한 프로그램 같은 것들이요. 우선순위 표시기는 우주비행사들에게 선택권을 주었습니다. 착륙할지 말지 말이죠. 한시가 급한 상황에 관제 센터는 명령을 내립니다.
The Apollo 11 landing was about the astronauts, Mission Control, software and hardware all working together as an integrated system of systems. Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon. And her life-saving work went far beyond Apollo 11— no bugs were ever found in the in-flight software for any crewed Apollo missions.
아폴로 11호의 착륙은 우주비행사들과 관제 센터, 소프트웨어와 하드웨어가 모두 같이 통합시스템으로서 작동한 것입니다. 해밀턴의 역할은 케네디 대통령의 목표인 달에 인류를 보내는 것에 크게 고무된 기술자들과 과학자들에게 매우 중요했습니다. 그녀의 중요한 일은 아폴로 11호를 훨씬 뛰어넘어서 유인 임무 중 기내 비행 소프트웨어에서 그 어떠한 오류도 발견되지 않았습니다.
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software. In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual. And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.
아폴로 일 이후에 해밀턴은 특별한 범용 시스템 언어를 사용하는 회사를 설립하는데 시스템과 소프트웨어의 새로운 발견을 위한 회사였죠. 2003년에 나사는 그녀의 업적을 치하하면서 여태껏 개인에게 지급한 금전적 보상 중 최대치를 지급했습니다. 그녀의 소프트웨어가 최초로 우주 비행사들을 달로 이끈지 47년 후 해밀턴은 대통령 자유 훈장을 받았습니다. 우리가 기술에 대해 생각하는 방법을 바꿔줬기 때문이죠.