본문 바로가기

카테고리 없음

아폴로 계획의 위대한 숨은 영웅, 마거릿 해밀턴

먼저 아폴로 우주선에 탑재됐던

컴퓨터, AGC를 들여다봐야 하는데요. 1960년대에는

이전 진공관과 트랜지스터에서 진일보된 반도체 집적회로,

즉 IC가 실용화되면서, 컴퓨터를 소형화해

우주선에 싣는 게 가능해졌습니다.

하지만 이 AGC를 구동시킬 프로그램을

어떻게 짜야할지가 큰 문제였죠.

아직 소프트웨어 공학 개념은 정립되기 전이었고,

제대로 된 개발 도구나 가이드도 없었습니다.

그런데 이런 막막한 가운데서 이 정교한 프로그램을

개발하는 데 큰 공을 세운 이가 있었습니다.

과연 어떤 사람이었을까요?

 

마거릿 해밀턴은 당시 33세에 불과했던 워킹맘이었습니다.

여성 과학기술인이 아직 기를 펴지 못하던 1950년대,

해밀턴은 대학에서 수학을 전공합니다.

대학을 졸업하자마자 캠퍼스 커플이던 선배와 결혼해 딸을 낳았고,

남편이 화학석사를 받고 로스쿨까지 다닐 동안

틈틈이 고등학교 수학 선생님도 하며 생활비를 벌고

육아까지 전담했죠.

가정을 위해 여성이 희생하는 게 당연시되던 시대의,

그야말로 평범한 여성으로 남을 뻔했는데요.

하지만 해밀턴은 남편이 보스턴에서 대학원에 다니는 사이

좀 더 학구적인 일거리를 찾습니다.

이때 그녀가 아르바이트로 일한 곳이 MIT 기상학과의

에드워드 로렌즈 교수 연구실이었는데요.

해밀턴은 로렌즈 교수가 고안한 수식을

컴퓨터 프로그램으로 짜냈고, 해밀턴 덕분에

로렌즈 교수는 '브라질에서 나비가 날갯짓을 하면

텍사스에서 토네이도가 일어날 수 있다'는

나비효과(Butterfly Effect)를 발견합니다.

 

이렇게 컴퓨터를 잘 다룬다는 소문이 나면서

해밀턴은 이후 MIT가 맡은 다른 여러 프로그램

개발 업무에도 참여합니다.

그러다 1963년부터 아폴로 우주선 컴퓨터에 들어갈

프로그램 개발 용역을 받은

MIT 찰스 드레이퍼 교수의 연구실에 합류하게 되죠.

소프트웨어를 어떤 구조로 설계하고 개발해야 할지

확립된 체계가 없는 상황에서, 해밀턴은 말 그대로

맨땅에 헤딩을 하면서 차곡차곡 노하우를 쌓아나갑니다.

당시는 편하게 모니터를 보면서 키보드로 프로그램을

짜던 때도 아니었습니다. 하나하나 컴퓨터의 작동 흐름을

머리로 생각하며 타자기로 프로그램을 짜고,

그럼 오퍼레이터가 종이에 구멍을 뚫어

컴퓨터가 읽을 수 있는 '펀치카드'란 걸 만들어줍니다.

이 펀치카드를 컴퓨터에 집어넣으면 그제야 비로소

제대로 작동하나 확인할 수 있었던 시절이었죠.

거기에다 프로그램은 또 단 72킬로바이트 안에

담겨야 했습니다. 오늘날 스마트폰에 들어가는 메모리의

100만 분의 1, 고작 3만 6,864글자로 꼭꼭 축약시켜야 하는

그야말로 미션임파서블이었던 겁니다.

 

해밀턴의 고충은 이뿐만이 아니었습니다.

그녀는 워킹맘이었지만, 과제 일정은 빡빡해서

제때 퇴근할 여유도 없었습니다. 결국 딸 로렌을

연구실에 데려와 앉혀놓고 일을 해야 했는데요.

하지만 다섯 살 어린 딸이 가만히 있을 리 없죠.

컴퓨터 버튼을 이것저것 눌러보며

장난을 치기 일쑤였는데요. 어느 날,

비행 시뮬레이션을 하던 도중, 딸이 돌발적으로

다른 버튼을 눌러버립니다.

순식간에 프로그램이 오작동하며, 컴퓨터에 있던

내비게이션 데이터가 싹 지워지는 사고가 일어났죠.

보통 직장인이라면 사고뭉치 아이를 당장 집에

보냈을 겁니다. 하지만 해밀턴은

그런 손쉬운 선택을 할 수가 없는 처지였죠.

바로 이 때, 해밀턴은 중요한 점을 깨닫게 됩니다.

철부지 어린 아이나 벌일 만한 조작 실수가 있더라도

문제없이 작동하는 프로그램을 만들어야 한다!

 

사실 아폴로 계획 초기만 해도 "우주비행사들은

미군 최정예 파일럿 중에서 선발한 완벽한 사람들로,

이들이 실수할리 만무하다"라는 과도한 믿음이 있었습니다. 하지만 해밀턴의 팀은

이런 믿음이 깨지는 순간까지 대비한 프로그램을

만들어냈습니다. 그리고 그 효과는,

최초로 달 궤도로 날아간 아폴로 8호에서부터 나타났죠.

완벽하다고 믿었던 우주비행사들이 어처구니없는

조작 실수로, 정확히 해밀턴의 딸처럼

우주선 내비게이션 데이터를 싹 날려버린 건데요.

우주 미아가 될 뻔한 아찔한 순간,

이런 실수까지 대비해 설계된 해밀턴의 프로그램 덕분에

데이터는 모두 복구되었고

우주비행사들은 무사히 지구로 돌아올 수 있었습니다.

 

지난 시간, 아폴로 11호의 달 착륙 도중 울린

1202번 에러 역시, 사실은 아폴로 11호 비행사들의

조작 실수가 원인이었습니다. 달착륙선 하강 도중

레이더 끄는 걸 깜빡해서, 레이더에서 데이터가 계속

컴퓨터로 흘러들어와 가뜩이나 부족했던 메모리가

넘쳤던 건데요.

만약 비행사들이 실수를 하지 않을 거란 믿음으로

프로그램이 개발되었더라면, 컴퓨터는 그대로

먹통이 되어 미션도 실패로 끝났을 겁니다.

하지만 해밀턴의 세심한 프로그램 덕분에

달 착륙선 이글 호는 기능을 잃지 않고

인류 최초의 달 착륙에 성공할 수 있었던 것이죠.

 

인간은 아무리 능력이 뛰어나고 조심해도

가끔 어처구니없는 실수를 저지르고는 합니다.

그럴 때 우리는 화를 터뜨리고

그 사람에게 책임을 덮어 씌우기 일쑤죠.

하지만 그런다고 과연 일이 해결될까요?

오늘 보신 아폴로 11호의 비하인드 스토리는

위대한 성공을 거두기 위해서는

거기서 한 발 더 나아가야 함을 보여줍니다.

자, 혹시 여러분 곁에도

육아와 사회생활을 감당하느라 힘들어하는

워킹맘 동료가 있지 않으십니까?

그렇다면 아폴로 계획의 위대한 숨은 영웅

마거릿 해밀턴을 떠올리시면서, 그들의 지혜를 모아

실수마저 품을 수 있는 신뢰성 높은 조직 시스템을

만들어보시기 바랍니다. 감사합니다.