WEBVTT 00:00:06.761 --> 00:00:11.290 1969년 7월 20일 오후 4시경, 00:00:11.290 --> 00:00:16.054 인류는 달 표면에 착륙하기 일보직전이었습니다. 00:00:16.054 --> 00:00:18.734 그러나 우주 비행사들이 최종 하강을 시작하기 직전에 00:00:18.734 --> 00:00:20.714 비상 경고등이 켜졌습니다. 00:00:20.714 --> 00:00:22.804 무언가가 컴퓨터에 과부하를 주고 있어서 00:00:22.804 --> 00:00:25.504 착륙을 중지시켜야 하는 위험에 처했습니다. NOTE Paragraph 00:00:25.504 --> 00:00:28.594 지구에 있는 마거릿 해밀턴은 숨이 막혔습니다. 00:00:28.594 --> 00:00:32.234 그녀는 기내 소프트웨어를 개발하는 팀을 지휘했기에 00:00:32.234 --> 00:00:35.164 이 임무에는 실수의 여지가 없다는 것을 알고 있었습니다. 00:00:35.164 --> 00:00:37.614 하지만 이 막바지 긴급상황은 00:00:37.614 --> 00:00:42.523 그녀의 소프트웨어가 계획대로 정확히 작동한다는걸 증명해 주었습니다. NOTE Paragraph 00:00:42.523 --> 00:00:48.438 33년 전 인디애나 파올리에서 태어난 해밀턴은 항상 탐구심이 강했습니다. 00:00:48.438 --> 00:00:51.268 대학에서 수학과 철학을 전공한 후 00:00:51.268 --> 00:00:55.598 매사추세츠 공과대학에서 연구원으로 근무하며 00:00:55.598 --> 00:00:57.304 대학원 학비를 충당합니다. 00:00:57.304 --> 00:01:00.074 이곳에서 처음으로 컴퓨터를 접하고 00:01:00.074 --> 00:01:04.744 새로운 분야인 카오스 이론 연구를 도울 소프트웨어를 개발합니다. NOTE Paragraph 00:01:04.744 --> 00:01:07.514 이후 MIT의 링컨 연구소에서 00:01:07.514 --> 00:01:11.139 해밀턴은 미국 최초의 항공방어 시스템 소프트웨어를 개발하여 00:01:11.139 --> 00:01:13.189 적 항공기 수색을 가능하게 합니다. 00:01:13.189 --> 00:01:16.781 하지만 유명한 엔지니어 찰스 드레이퍼가 00:01:16.781 --> 00:01:19.351 인류를 달에 보내기 위해 인력을 구한다는 것을 듣고 00:01:19.351 --> 00:01:22.152 곧바로 그의 팀에 합류했습니다. NOTE Paragraph 00:01:22.152 --> 00:01:25.382 NASA는 드레이퍼와 400명이 넘는 그의 엔지니어에게 기대를 품었고 00:01:25.382 --> 00:01:28.822 최초의 소형 운항 컴퓨터를 만들어주길 바랐습니다. 00:01:28.822 --> 00:01:31.112 이렇게 해서 탄생한 것이 아폴로 가이던스 컴퓨터입니다. 00:01:31.112 --> 00:01:32.829 우주 비행사들에게 받은 정보를 이용해서 00:01:32.829 --> 00:01:35.860 이 장치는 안내, 운항과 00:01:35.860 --> 00:01:38.371 선체 조종을 담당하였습니다. 00:01:38.371 --> 00:01:41.890 그다지 신뢰하기 힘든 컴퓨터들이 방 가득 공간을 차지하던 시대에 00:01:41.890 --> 00:01:45.452 아폴로 가이던스 컴퓨터는 한 치의 오차도 없이 작동하는 동시에 00:01:45.452 --> 00:01:48.982 1세제곱 피트의 공간에 들어갈 정도로 작아야 했습니다. NOTE Paragraph 00:01:48.982 --> 00:01:51.612 드레이퍼는 연구원을 두 팀으로 나누어 00:01:51.612 --> 00:01:55.405 한 팀은 하드웨어를 디자인하고 다른 팀은 소프트웨어를 개발했습니다. 00:01:55.405 --> 00:01:58.505 해밀턴은 기내 비행 소프트웨어를 개발하는 팀을 이끌었는데 00:01:58.505 --> 00:02:01.025 사령선과 착륙선을 위한 소프트웨어였습니다. 00:02:01.025 --> 00:02:04.635 그녀가 만든 새로운 단어인 '소프트웨어 엔지니어링'은 00:02:04.635 --> 00:02:07.205 매우 중요한 일이었습니다. 00:02:07.205 --> 00:02:12.165 사람의 목숨이 달린 일이어서 모든 프로그램이 완벽해야만 했습니다. 00:02:12.165 --> 00:02:15.795 마거릿의 소프트웨어는 예상치 못한 오류를 빨리 발견하고 00:02:15.795 --> 00:02:18.395 실시간으로 처리해야 했습니다. NOTE Paragraph 00:02:18.395 --> 00:02:21.725 하지만 이런 유연한 프로그램을 제작하는 것은 매우 어려웠습니다. 00:02:21.725 --> 00:02:25.943 당시 소프트웨어는 미리 설정된 명령만 처리할 수 있었기 때문이죠. 00:02:25.943 --> 00:02:27.370 이 문제를 해결하기 위해서 00:02:27.370 --> 00:02:30.470 마거릿은 '비동기화' 되도록 프로그램을 디자인 했는데 00:02:30.470 --> 00:02:35.662 소프트웨어가 더 중요한 일을 먼저 처리할 것이라는 뜻이었죠. 00:02:35.662 --> 00:02:38.862 그녀의 팀은 모든 과제에 고유한 우선순위를 부여해서 00:02:38.862 --> 00:02:41.631 모든 일이 정확한 순서로 진행되도록 했고 00:02:41.631 --> 00:02:45.951 어떠한 돌발상황에서도 적시에 작동하도록 했습니다. NOTE Paragraph 00:02:45.951 --> 00:02:47.461 이 발견 이후 00:02:47.461 --> 00:02:50.521 마거릿은 자신의 소프트웨어가 비동기적 환경에서 우주비행사들도 00:02:50.521 --> 00:02:53.031 도와줄 수 있다는 것을 깨달았죠. 00:02:53.031 --> 00:02:54.559 그녀는 우선순위 화면을 디자인했는데 00:02:54.559 --> 00:02:57.369 우주비행사들의 일반적으로 계획된 업무들을 제치고 00:02:57.369 --> 00:02:59.389 긴급상황을 경고할 수 있게 합니다. 00:02:59.389 --> 00:03:02.119 그러면 우주비행사들은 관제 센터에 연락해서 00:03:02.119 --> 00:03:04.789 최선의 선택을 결정할 수 있습니다. 00:03:04.789 --> 00:03:08.789 이것이 비행 소프트웨어가 최초로 비행사와 직접적으로 00:03:08.789 --> 00:03:11.639 그리고 비동기적으로 통신한 기록입니다. NOTE Paragraph 00:03:11.639 --> 00:03:16.474 이러한 안전장치들이 달 착륙 직전에 경고를 울린 것입니다. 00:03:16.474 --> 00:03:19.224 버즈 올드린은 재빨리 자신의 실수를 알아챘습니다. 00:03:19.224 --> 00:03:22.864 그가 무심코 랑데부 레이더의 스위치를 건드린 것입니다. 00:03:22.864 --> 00:03:25.351 이 레이더는 귀환할 때 필수적이지만 00:03:25.351 --> 00:03:29.351 이 시점에는 귀중한 컴퓨터 자원만 잡아먹고 있었죠. 00:03:29.351 --> 00:03:34.240 다행히 아폴로 가이던스 컴퓨터는 이런 실수를 잘 처리할 수 있습니다. 00:03:34.240 --> 00:03:37.100 과부하 동안에 소프트웨어는 프로그램들을 재시작했고 00:03:37.100 --> 00:03:40.430 오직 높은 우선순위의 일들만 작동하게 했죠. 00:03:40.430 --> 00:03:43.073 착륙에 필요한 프로그램 같은 것들이요. 00:03:43.073 --> 00:03:46.392 우선순위 표시기는 우주비행사들에게 선택권을 주었습니다. 00:03:46.392 --> 00:03:48.942 착륙할지 말지 말이죠. 00:03:48.942 --> 00:03:53.172 한시가 급한 상황에 관제 센터는 명령을 내립니다. NOTE Paragraph 00:03:53.172 --> 00:03:56.812 아폴로 11호의 착륙은 우주비행사들과 관제 센터, 00:03:56.812 --> 00:04:02.321 소프트웨어와 하드웨어가 모두 같이 통합시스템으로서 작동한 것입니다. 00:04:02.321 --> 00:04:06.598 해밀턴의 역할은 케네디 대통령의 목표인 달에 인류를 보내는 것에 00:04:06.598 --> 00:04:10.986 크게 고무된 기술자들과 과학자들에게 매우 중요했습니다. 00:04:10.986 --> 00:04:14.366 그녀의 중요한 일은 아폴로 11호를 훨씬 뛰어넘어서 00:04:14.366 --> 00:04:20.258 유인 임무 중 기내 비행 소프트웨어에서 그 어떠한 오류도 발견되지 않았습니다. NOTE Paragraph 00:04:20.258 --> 00:04:22.108 아폴로 일 이후에 00:04:22.108 --> 00:04:26.322 해밀턴은 특별한 범용 시스템 언어를 사용하는 회사를 설립하는데 00:04:26.322 --> 00:04:29.393 시스템과 소프트웨어의 새로운 발견을 위한 회사였죠. 00:04:29.393 --> 00:04:32.565 2003년에 나사는 그녀의 업적을 치하하면서 00:04:32.565 --> 00:04:36.945 여태껏 개인에게 지급한 금전적 보상 중 최대치를 지급했습니다. 00:04:36.945 --> 00:04:41.836 그녀의 소프트웨어가 최초로 우주 비행사들을 달로 이끈지 47년 후 00:04:41.836 --> 00:04:45.336 해밀턴은 대통령 자유 훈장을 받았습니다. 00:04:45.336 --> 00:04:48.406 우리가 기술에 대해 생각하는 방법을 바꿔줬기 때문이죠.