"1202 알람!" 달 착륙 3분 전, NASA를 구한 천재 여성의 코드

스마트폰보다 10만 배 느린 컴퓨터로 어떻게 달에 갔을까? 달 착륙 3분 전, '1202 알람' 위기에서 NASA를 구한 아폴로 유도 컴퓨터(AGC)와 천재 개발자 마거릿 해밀턴의 숨겨진 이야기를 파헤칩니다.
아폴로 컴퓨터의 위기와 그것을 구한 마거릿 해밀턴을 극적으로 묘사한 썸네일


안녕하세요, 오래된 기술 속에서 미래의 실마리를 찾아 헤매는 '우주아저씨'입니다. 1969년 7월, 인류가 달에 첫발을 내딛던 그 순간을 기억하시나요? 우리는 닐 암스트롱의 위대한 발걸음은 기억하지만, 그를 달 표면까지 안전하게 인도한 작은 컴퓨터에 대해서는 잘 알지 못합니다.

사실 달 착륙선 '이글호'를 조종한 '아폴로 유도 컴퓨터(AGC)'는 지금 여러분 손에 들린 스마트폰의 계산기 앱보다도 못한 성능을 가졌습니다. 상상이 가시나요? 착륙 단 3분을 남기고, 이 보잘것없는 컴퓨터는 비명을 지르기 시작했습니다. 바로 '1202 프로그램 알람'. 모든 것을 수포로 돌릴 수 있었던 절체절명의 위기였죠.

하지만 기적적으로 임무는 성공했습니다. 이건 단순한 행운이 아니었습니다. 오늘은 최첨단 기술의 힘이 아닌, 한 천재 여성 개발자의 위대한 통찰과 철학이 어떻게 인류를 달에 착륙시켰는지, 그 숨 막히는 비하인드 스토리를 파헤쳐 보려 합니다. 우리가 정말로 믿어야 할 것이 무엇인지, 그 답은 반세기도 더 된 코드 속에 있었습니다.

1. 스마트폰 10만분의 1 성능, 이 컴퓨터의 정체

아폴로 유도 컴퓨터, 줄여서 AGC. 이름은 거창하지만 그 속을 들여다보면 실소를 금할 수 없습니다. 이 컴퓨터의 처리 속도는 약 2MHz. 요즘 스마트폰이 수 GHz로 작동하는 것과 비교하면 그야말로 거북이걸음 수준이었죠.

아폴로 컴퓨터와 스마트폰의 성능 차이를 보여주는 비교표

저장 공간은 더 기가 막힙니다. 데이터를 잠시 저장하는 램(RAM)은 고작 4KB, 운영체제와 프로그램이 저장되는 롬(ROM)은 72KB에 불과했습니다. 지금 우리가 찍는 사진 한 장의 용량도 채 되지 않는 공간에 인류의 운명을 건 프로그램을 구겨 넣어야 했던 겁니다.

"이런 컴퓨터로 달에 갈 생각을 했다고?" 라는 질문이 절로 나오지 않나요? 맞습니다. 상식적으로는 불가능한 도전이었어요. 그래서 NASA의 천재들은 단순히 빠른 컴퓨터를 만드는 대신, 느리고 멍청한 컴퓨터를 가장 똑똑하게 사용할 방법을 고민하기 시작했습니다. 그 고민의 첫 번째 답이 바로 메모리에 숨어있었습니다.

2. 한 땀 한 땀 '바느질'로 만든 메모리

“우리가 만든 소프트웨어는 손으로 짠 것이나 다름없었다. 여성 직공들이 바늘과 실을 이용해 직접 전선을 엮어 정보를 저장했다.”
MIT Instrumentation Lab 기록, 1966

AGC의 가장 큰 특징 중 하나는 '코어 로프 메모리(Core Rope Memory)'라는 아주 특별한 롬(ROM)입니다. 이건 반도체 칩이 아니라, 말 그대로 수만 개의 작은 자성 링(코어) 사이로 전선을 어떻게 엮느냐에 따라 0과 1을 기록하는 방식이었죠.

코어 로프 메모리를 바느질하듯 만드는 여성 직공의 모습

놀라운 사실은 이 복잡한 '전선 직조' 작업을 당시 레이시온사의 여성 직공들이 손으로 직접 했다는 겁니다. 그들은 설계도를 보며 바늘에 전선을 꿰어 수많은 코어 사이를 통과시키거나 혹은 비껴가게 하며 소프트웨어를 '하드웨어'로 만들어냈습니다. 그래서 엔지니어들은 이 메모리에 'LOL 메모리(Little Old Ladies Memory)'라는 애정 섞인 별명을 붙여주기도 했죠.

이렇게 만들어진 메모리는 전원이 꺼져도 데이터가 절대 지워지지 않는, 그야말로 '돌에 새긴' 프로그램이 되었습니다. 극도의 안정성이 필요했던 우주 환경에 최적화된 방식이었던 겁니다.

구분 아폴로 유도 컴퓨터 (AGC) 최신 스마트폰 (예시)
처리 속도 약 2.048 MHz 3.0 GHz 이상 (약 1,500배+)
램 (RAM) 4 KB 8 GB 이상 (약 2,000,000배+)
롬 (ROM/저장공간) 72 KB 256 GB 이상 (약 3,500,000배+)

3. 모든 것을 구할 단 하나의 코드, '우선순위'

튼튼한 메모리를 가졌다고 해도, 컴퓨터의 처리 능력 자체는 여전히 형편없었습니다. 만약 착륙이라는 중요한 임무 중에 누군가 실수로 버튼을 잘못 누르거나, 센서가 오류 데이터를 보내면 어떻게 될까요? 제한된 자원을 가진 AGC는 순식간에 과부하에 걸려 모든 것을 멈출 수 있었습니다.

바로 이 지점에서 MIT 소프트웨어 팀을 이끌었던 천재 개발자, 마거릿 해밀턴의 위대한 아이디어가 빛을 발합니다. 그녀는 컴퓨터에게 '무엇이 더 중요한 일인지' 판단하고 스스로 작업을 정리하는 능력을 부여하기로 했습니다.

AGC 우선순위 스케줄러의 작동 원리를 시각화한 다이어그램

그녀의 팀이 개발한 소프트웨어는 모든 작업에 '우선순위'를 매겼습니다. 그리고 컴퓨터 자원이 부족해지면, 가장 중요한 핵심 작업을 제외한 나머지 부수적인 일들은 자동으로 무시하거나 뒤로 미루도록 설계했죠. 이것이 바로 '1202 알람'의 비밀을 푸는 열쇠입니다.

  • 1단계: 비상 상황 발생
    컴퓨터의 처리 능력을 초과하는 작업 요청이 동시다발적으로 들어옵니다. (예: 착륙 제어 + 불필요한 레이더 데이터 처리)
  • 2단계: 자동 우선순위 판단
    AGC는 미리 정의된 우선순위에 따라 '착륙 제어'가 가장 중요하다고 판단하고, '레이더 데이터 처리'는 후순위로 미룹니다.
  • 3단계: 핵심 작업 집중 및 알람
    시스템은 확보된 자원을 오직 착륙 제어에만 집중시키고, 조종사에게는 "지금 덜 중요한 일은 무시하고 있어!"라는 의미의 '1202 알람'을 띄워 상황을 알려줍니다.

4. 역사상 가장 극적인 3분, 1202 알람의 재구성

자, 이제 1969년 7월 20일, 달 상공 9km 지점의 '이글호' 조종석으로 들어가 보시죠. 제가 당시 관제실의 막내 엔지니어였다면 아마 손에 쥔 연필이 땀으로 흥건했을 겁니다. 착륙선이 하강을 시작하고, 모든 것이 순조로워 보이던 바로 그 순간이었습니다.

"Program alarm." 닐 암스트롱의 차분하지만 다급한 목소리가 관제실 스피커를 통해 울려 퍼졌습니다. "It's a 1202." 심장이 멎는 듯한 정적이 흘렀습니다. 

아폴로 11호의 1202 알람 당시 극적인 상황 재구성

1202 알람, 'Executive Overflow'. 컴퓨터가 처리 능력을 초과했다는, 가장 우려했던 시나리오가 현실이 된 겁니다. 수년간의 노력이 단 하나의 에러 코드와 함께 사라질 위기였죠.

나중에 밝혀진 원인은 어이없게도 단 하나의 스위치 때문이었습니다. 착륙 과정에 불필요했던 '랑데부 레이더' 스위치가 켜져 있었고, 여기서 나온 의미 없는 데이터들이 AGC의 CPU를 마구잡이로 점유했던 겁니다. 인간의 작은 실수가 재앙을 부르기 일보 직전이었습니다.

하지만 바로 그 순간, 마거릿 해밀턴과 그녀의 팀이 심어놓은 '우선순위 스케줄러'가 조용히 깨어났습니다. AGC는 스스로 이 상황이 비정상적인 과부하 상태임을 인지했습니다. 그리고는 가장 중요한 임무인 '착륙 유도 프로그램'을 제외한 모든 잡무(불필요한 레이더 데이터 처리 등)를 시스템 뒤편으로 던져버렸습니다. 컴퓨터는 재부팅되며 스스로를 정화했고, 가장 중요한 임무에만 집중하기 시작했습니다. 관제실에서는 "계속 진행해(Go)!"라는 외침이 터져 나왔고, 인류는 무사히 달 표면에 안착할 수 있었습니다.

5. 실패를 대비한 설계, 그 위대한 철학

“문제가 생기지 않도록 하는 것만으로는 부족했다. 우리는 문제가 생겼을 때, 바로 그 순간에 시스템이 스스로를 치유하고 임무를 계속할 수 있도록 만들어야만 했다.”
Margaret Hamilton, 2016 Presidential Medal of Freedom 수상 소감 중

제가 분석한 바로는, 아폴로 11호의 성공 비결은 단순히 뛰어난 하드웨어나 코딩 기술에 있지 않습니다. 그것은 바로 '인간은 반드시 실수하고, 기계는 언젠가 고장 난다'는 사실을 인정한 겸손함에서 출발합니다. 마거릿 해밀턴의 팀은 완벽한 시스템을 꿈꾼 것이 아니라, 실패가 발생했을 때 어떻게 그것을 우아하게 극복할 것인가에 모든 것을 걸었습니다.

그들의 접근 방식은 당시로서는 혁명이었습니다. 대부분의 프로그래머들이 정해진 순서대로만 작동하는 코드를 짤 때, 그들은 언제 어디서 터질지 모르는 예외 상황, 즉 '에러'를 처리하고 복구하는 로직에 더 많은 공을 들였습니다. '1202 알람'은 실패의 신호가 아니라, 시스템이 스스로 문제를 감지하고 해결하고 있다는 '건강한 신호'였던 셈입니다.

이러한 철학은 오늘날 우리가 사용하는 모든 소프트웨어의 근간이 되었습니다. 우리가 앱을 사용하다 오류가 나도 앱 전체가 멈추지 않고, 인터넷 연결이 잠시 끊겨도 게임이 강제 종료되지 않는 것. 이 모든 것이 바로 아폴로 프로젝트가 남긴 '실패를 대비하는 설계'라는 위대한 유산 덕분입니다.

구분 일반적인 프로그램 AGC의 오류 처리 방식
에러 발생 시 시스템 전체가 멈추거나 충돌(Crash) 에러를 감지하고, 스스로 재시작하며 복구
자원 관리 모든 작업에 자원을 동일하게 배분하려 시도 작업의 '우선순위'를 판단해 핵심 작업에 집중
설계 철학 오류가 없는 '완벽한 실행'을 목표 오류는 필연적이며, '안전한 실패'를 목표

6. 소프트웨어 공학, 달에서 탄생하다

믿기 어렵겠지만, 아폴로 프로젝트 이전에는 '소프트웨어 공학(Software Engineering)'이라는 말 자체가 없었습니다. 

아폴로 프로젝트에서 시작된 소프트웨어 공학의 기원

당시 소프트웨어 개발은 체계적인 학문이라기보다는 일부 천재들의 개인적인 기술에 가까웠죠. 마거릿 해밀턴은 이래서는 안 된다고 생각했습니다.

그녀는 다리를 짓고 로켓을 만드는 하드웨어 엔지니어링처럼, 소프트웨어도 체계적인 설계와 엄격한 테스트, 그리고 협업을 통해 만들어져야 한다고 주장했습니다. 바로 이 '공학적 접근법'을 강조하기 위해 그녀 스스로 '소프트웨어 엔지니어'라는 용어를 만들어 사용하기 시작했습니다. 처음에는 동료들의 비웃음을 사기도 했지만, 결국 그녀의 방식이 옳았음이 증명되었죠.

결국 아폴로 유도 컴퓨터 프로젝트는 단순한 달 착륙 이상의 의미를 갖게 됩니다. 이는 인류 최초의 '소프트웨어 공학' 프로젝트였으며, 오늘날 우리가 IT 강국으로 살아가는 데 필요한 모든 방법론의 뿌리가 되었습니다. 이 작은 컴퓨터가 남긴 진짜 유산은 다음과 같습니다.

  • 체계적인 개발론의 정립: 주먹구구식 코딩이 아닌, 설계-개발-테스트-검증으로 이어지는 현대적 개발 프로세스의 기틀을 마련했습니다.
  • 오류 복구 시스템의 중요성: 예외 처리와 비동기 프로그래밍 등, 시스템의 안정성을 높이는 기술의 표준을 제시했습니다.
  • 소프트웨어의 가치 재정의: 소프트웨어를 하드웨어의 '부속품'이 아닌, 시스템의 성패를 좌우하는 핵심 요소로 격상시켰습니다.

Q&A

Q1) 아폴로 유도 컴퓨터(AGC)는 정말 요즘 계산기보다 성능이 낮았나요?
A1) 네, 그렇다고 볼 수 있습니다. AGC의 처리 속도는 약 2MHz, 램은 4KB 수준이었습니다. 이는 최신 스마트폰은 고사하고 1990년대 가정용 PC나 간단한 공학용 계산기보다도 낮은 사양입니다. 하지만 AGC는 달 착륙이라는 단 하나의 임무를 위해 극도로 최적화되었기 때문에 임무 수행이 가능했습니다.
Q2) 1202 알람이 울렸는데 어떻게 착륙에 성공할 수 있었던 건가요?
A2) 1202 알람은 '실패' 신호가 아니라, 시스템이 '스스로 문제를 해결하고 있다'는 신호였기 때문입니다. AGC는 과부하가 걸리자 착륙에 필수적인 작업 외의 모든 부수적인 작업을 자동으로 중단하고, 가장 중요한 일에만 자원을 집중했습니다. 이는 사전에 마거릿 해밀턴 팀이 설계한 '우선순위 기반 작업 스케줄링' 덕분이었습니다.
Q3) 마거릿 해밀턴은 왜 그렇게 중요한 인물로 평가받나요?
A3) 그녀는 아폴로 프로젝트의 소프트웨어 개발 총책임자였을 뿐만 아니라, '소프트웨어 공학'이라는 개념을 만들고 정착시킨 선구자입니다. 그녀는 소프트웨어도 건축이나 기계공학처럼 체계적이고 엄격한 원칙에 따라 만들어져야 한다고 주장했고, 특히 '오류 감지 및 복구'의 중요성을 강조하여 현대 소프트웨어의 안정성에 지대한 영향을 미쳤습니다.
Q4) 코어 로프 메모리는 왜 그렇게 특이한 '바느질' 방식으로 만들어졌나요?
A4) 가장 큰 이유는 '절대적인 안정성' 때문입니다. 코어 로프 메모리는 물리적으로 전선을 엮어 만들기 때문에 전원이 나가거나 우주 방사선에 노출되어도 저장된 데이터가 손상될 염려가 거의 없는 비휘발성 메모리였습니다. 당시 반도체 기술이 아직 미숙했기 때문에, 가장 확실하고 튼튼한 방법으로 소프트웨어를 저장하기 위한 선택이었습니다.
Q5) 아폴로 프로젝트의 기술이 현대 우리 삶에 직접적인 영향을 준 게 있나요?
A5) 네, 아주 많습니다. 앞서 말한 '소프트웨어 공학' 개념은 오늘날 모든 IT 산업의 근간이 되었습니다. 또한, 아폴로 프로젝트를 위해 개발된 수많은 기술들, 예를 들어 위성 통신, 정밀 센서, 신소재, 심지어 동결 건조 식품까지 우리 일상 곳곳에 녹아들어 있습니다. 인류의 가장 위대한 도전이 낳은 수많은 부산물들을 우리는 지금도 누리며 살고 있는 셈입니다.
아폴로 기술이 현대 일상에 미친 영향을 시각화한 이미지

마치며

아폴로 유도 컴퓨터의 이야기를 깊이 파고들면서, 제가 얻은 결론은 명확합니다. 인류를 달에 보낸 것은 초고성능 슈퍼컴퓨터가 아니었습니다. 오히려 그 반대였죠. 부족한 하드웨어의 한계를 인정하고, 그 안에서 최선의 답을 찾으려 했던 인간의 지혜와 통찰이었습니다.

특히 '1202 알람' 사건은 우리에게 중요한 교훈을 줍니다. 우리는 흔히 완벽함을 추구하며 실패를 두려워하지만, 마거릿 해밀턴과 NASA의 엔지니어들은 실패는 당연히 일어나는 것이라 생각하고, 그 실패를 어떻게 관리하고 극복할 것인지에 집중했습니다. 그 결과, 실패의 신호였던 알람은 오히려 성공을 보증하는 신호가 될 수 있었습니다. 이것이야말로 진정한 의미의 '혁신'이 아닐까요?

AGC의 자가 복구 시스템과 일반 프로그램의 충돌 방식 비교

결국 기술의 가치는 성능(Spec)이 전부가 아닙니다. 그 기술을 어떤 철학으로 설계하고, 어떤 상황을 대비하며, 어떻게 사용하는지가 훨씬 더 중요합니다. 반세기가 지난 아폴로 유도 컴퓨터가 최첨단 AI 시대를 살아가는 우리에게 여전히 깊은 울림을 주는 이유일 겁니다. 오래된 기술 속에서 가장 빛나는 미래의 지혜를 발견하는, '우주아저씨'였습니다.

실패를 인정하고 설계에 반영한 마거릿 해밀턴의 철학을 상징하는 이미지


아폴로 유도 컴퓨터, AGC, 달 착륙, 아폴로 11호, 1202 알람, 마거릿 해밀턴, 코어 로프 메모리, NASA, 소프트웨어 공학, 우주 경쟁

댓글 쓰기