인류를 달에 보낸 진짜 주역, '소프트웨어 공학의 어머니' 마거릿 해밀턴의 위대한 유산
안녕하세요! 기술과 역사의 숨은 이야기를 전해드리는 블로그예요. 최근 IT 역사에서 굵직한 족적을 남긴 거인의 부고 소식이 전해졌는데요. 바로 나사의 아폴로 프로젝트에서 소프트웨어 개발을 이끌었던 마거릿 해밀턴(Margaret Hamilton)이 90세를 일기로 별세했다는 소식이에요.
우리가 지금 당연하게 누리고 있는 스마트폰 앱, 웹 서비스, 그리고 수많은 프로그램의 밑바탕에는 그녀가 개척한 '소프트웨어 공학'이라는 분야가 자리 잡고 있어요. 오늘은 그녀가 생전에 남긴 놀라운 업적과 기술적 유산이 현대에 어떤 의미를 갖는지 깊이 있게 들여다볼게요.
1. 남성 중심의 우주 개발사에서 '소프트웨어'라는 새 길을 내다
1960년대, 나사의 아폴로 계획은 인류 역사상 전례 없는 대도약이었어요. 당시 하드웨어 중심이었던 항공우주 분야에서 '소프트웨어'라는 개념은 아직 매우 생소한 영역이었죠. 마거릿 해밀턴은 MIT 인스트루먼트랩의 소프트웨어 공학 디비전을 이끌며 아폴로 유도 컴퓨터(AGC)의 온보드 비행 소프트웨어 개발을 진두지휘했어요.
당시만 해도 프로그래밍은 하드웨어 부속품을 다루는 일에 비해 가볍게 여겨지곤 했어요. 하지만 그녀는 소프트웨어가 하드웨어 못지않게, 어쩌면 그 이상으로 전체 시스템의 명운을 쥐고 있다는 것을 정확히 간파했죠. 급기야 '소프트웨어 공학(Software Engineering)'이라는 용어를 직접 대중화하고, 이를 독립된 하나의 공학 학문으로 정립하는 데 결정적인 기여를 했답니다.
2. 아폴로 11호를 위기에서 구한 전설적인 '우선순위 스케줄링'
마거릿 해밀턴의 업적 중 가장 극적인 순간은 단연 아폴로 11호의 달 착륙 직전 벌어진 일이에요. 1969년, 닐 암스트롱과 버즈 올드린이 탄 달 착륙선이 달 표면에 거의 다다랐을 때 갑자기 컴퓨터 경고음이 울리기 시작했어요. 바로 악명 높은 1201 및 1202 프로그램 경고(Alarm)였죠.
레이더 스위치가 잘못 켜지면서 컴퓨터가 처리해야 할 데이터 양이 폭증해 과부하가 걸린 상황이었어요. 미션 컨트롤 센터에서는 당장 착륙을 포기해야 하나 고민했지만, 해밀턴이 설계한 소프트웨어 아키텍처는 이 위기에서 빛을 발했어요.
그녀의 시스템은 과부하가 걸렸을 때 중요하지 않은 백그라운드 작업을 과감히 중단시키고, 오직 달 착륙과 비행 제어라는 '최우선 업무'에만 컴퓨터의 연산 능력을 집중시키도록 설계되어 있었던 거예요. 만약 이 비동기 처리와 우선순위 멀티태스킹 아키텍처가 없었다면 인류의 첫 달 착륙은 실패로 돌아갔을지도 몰라요. 결국 소프트웨어가 하드웨어의 오류를 스스로 감지하고 복구해 낸 셈이죠.
3. 그녀가 남긴 키만큼의 코드와 영원한 유산
나중에 인터넷상에서 큰 화제가 되었던 유명한 사진이 있어요. 바로 젊은 날의 마거릿 해밀턴이 자신의 키만큼 높이 쌓인 아폴로 소스코드 출력물 옆에서 밝게 미소 짓고 있는 사진인데요! 당시의 코드는 프로그래머들이 직접 한 땀 한 땀 로프를 엮어 만드는 '로프 메모리(Rope Memory)' 방식으로 구현되었기에, 그 무게와 부피만큼이나 엄청난 정성과 노력이 담긴 결과물이었어요.
그녀의 이러한 공로를 인정받아 2016년, 버락 오바마 당시 미국 대통령으로부터 미국 민간인 최고 영예인 대통령 자유 훈장(Presidential Medal of Freedom)을 수여받았답니다. 오바마 대통령은 그녀가 "인류를 우주로 이끄는 데 기여한 보석 같은 여성들의 세대"를 상징한다고 찬사를 보냈어요.
마무리하며
마거릿 해밀턴은 세상을 떠났지만, 그녀가 다져놓은 소프트웨어 공학의 기틀은 오늘날 우리가 사용하는 모든 디지털 기기와 첨단 시스템 속에 고스란히 살아 숨 쉬고 있어요. 거친 미지의 영역에서 새로운 표준을 만들어낸 그녀의 도전 정신을 떠올리며, 오늘 하루 우리 주변의 보석 같은 기술 역사에 대해 한 번쯤 생각해 보는 건 어떨까요?