스마트폰보다 못한 60년대 컴퓨터, 어떻게 아폴로 13호의 운명을 바꿨나?

November 9, 20253 minutes

스마트폰보다 못한 60년대 컴퓨터, 어떻게 아폴로 13호의 운명을 바꿨나?
스마트폰보다 못한 60년대 컴퓨터, 어떻게 아폴로 13호의 운명을 바꿨나?

스마트폰보다 못한 60년대 컴퓨터, 어떻게 아폴로 13호의 운명을 바꿨나?
스마트폰보다 못한 60년대 컴퓨터, 어떻게 아폴로 13호의 운명을 바꿨나?

영화 ‘아폴로 13호(Apollo 13)‘에는 정말 손에 땀을 쥐게 하는 장면이 나오는데요.

거대한 새턴 V(Saturn V) 로켓이 하늘로 솟구치던 중, 5개의 엔진 중 중앙 엔진 하나가 갑자기 꺼져버리는 아찔한 순간입니다.

그런데 더욱 놀라운 점은 이 모든 상황을 당시의 컴퓨터가 스스로 감지하고, 인간의 개입 없이 나머지 엔진의 연소 시간을 늘려 임무를 정상 궤도에 올려놓았다는 사실이거든요.

지금 우리 손에 들린 스마트폰의 수백만 분의 일도 안 되는 성능을 가진 1960년대의 컴퓨터가 어떻게 이런 복잡한 판단을 스스로 내릴 수 있었던 걸까요?

마치 스스로 생각하는 인공지능처럼 보이지만, 그 비밀은 사실 놀랍도록 단순하면서도 천재적인 설계 원리에 있었습니다.

생각하는 기계가 아닌, 주어진 규칙을 따르는 기계

우리가 먼저 이해해야 할 점은 당시의 컴퓨터는 ‘생각’을 하는 기계가 아니었다는 점인데요.

오늘날의 인공지능처럼 복잡한 데이터를 분석해 새로운 결론을 도출하는 것이 아니라, 미리 정해진 ‘만약 ~하면, ~한다(if-then)‘라는 아주 기본적인 논리 회로에 따라 움직이는 기계였습니다.

쉽게 말해, 수많은 엔지니어들이 발사 과정에서 일어날 수 있는 거의 모든 비상 상황을 예측하고, 각각의 상황에 맞는 대응 시나리오를 컴퓨터에 미리 입력해 놓은 것이죠.

아폴로 13호의 경우, 컴퓨터는 엔진의 압력, 연료 흐름, 온도 같은 수치들을 끊임없이 감시하도록 프로그래밍되어 있었는데요.

만약 특정 센서의 값이 미리 정해진 안전 범위를 벗어나면, 컴퓨터는 고민 없이 ‘해당 엔진을 즉시 종료한다’는 명령을 수행하도록 설계된 것입니다.

이는 사실 우리 주변의 온도 조절 장치나 보일러가 설정된 온도에 따라 자동으로 켜지고 꺼지는 것과 근본적으로 같은 원리입니다.

목표는 ‘시간’이 아닌 ‘속도’라는 마법

그렇다면 엔진 하나가 꺼진 상황에서 어떻게 전체 임무를 정상 궤도에 올릴 수 있었을까요?

여기에 바로 새턴 V 로켓 컴퓨터 설계의 핵심적인 천재성이 담겨 있는데요.

로켓의 1단 및 2단 엔진 연소 프로그램은 ‘정해진 시간 동안 연소한다’가 목표가 아니었습니다.

컴퓨터의 유일한 목표는 바로 ‘궤도 진입에 필요한 정확한 속도에 도달할 때까지 연소한다’는 것이었죠.

아폴로 13호의 발사체 디지털 컴퓨터(Launch Vehicle Digital Computer, LVDC)는 내장된 가속도계를 통해 로켓의 속도를 실시간으로 계산하고 있었거든요.

중앙 엔진이 꺼지자 로켓의 가속력은 당연히 예상보다 떨어졌습니다.

하지만 컴퓨터는 당황하지 않고, 그저 목표 속도에 도달하지 못했기 때문에 나머지 4개의 엔진을 계속해서 연소시켰을 뿐입니다.

결과적으로 4개의 엔진이 원래 계획보다 더 오래 연소되면서, 손실된 추진력을 보충하고 로켓을 완벽하게 목표 속도에 도달시킨 것이죠.

마치 내비게이션이 중간에 길이 막히면 목표 도착 시간에 맞춰 자동으로 다른 길을 안내해주는 것과 같은 이치입니다.

1초에 1만 2천 번, 한계를 극복한 천재들

이 모든 과정이 가능했던 것은 당시 기술의 한계를 인간의 지성으로 뛰어넘었기 때문인데요.

새턴 V의 컴퓨터는 1초에 약 12,000개의 명령어를 처리할 수 있었습니다.

이는 수십억 개의 명령어를 처리하는 현대 컴퓨터와는 비교조차 할 수 없는 수준이죠.

심지어 이때의 ‘명령어’란 ‘A 저장소의 값을 B로 옮겨라’ 또는 ‘C 값에 1을 더하라’ 같은 아주 원시적인 단위의 작업이었습니다.

당시 프로그래머들은 이 제한된 성능 안에서 모든 것을 해결해야 했거든요.

그들은 코드 한 줄 한 줄을 최적화하고, 명령어 하나하나를 직접 세어가며 프로그램이 정해진 시간(예를 들어 0.018초) 안에 반드시 완료되도록 설계했습니다.

소프트웨어 공학(Software Engineering)이라는 용어를 처음 만들었다고 알려진 마거릿 해밀턴(Margaret Hamilton)과 같은 리더들의 지휘 아래, 엔지니어들은 기계의 한계를 인간의 완벽주의와 철저한 계획으로 극복해낸 것입니다.

결국 1960년대의 원시적인 컴퓨터가 아폴로 13호를 구한 것은 결코 기적이 아니었는데요.

‘만약’의 상황을 철저히 대비한 논리적 설계, ‘속도’라는 명확한 목표 설정, 그리고 그 모든 것을 제한된 하드웨어 안에 구현해낸 천재 프로그래머들의 땀과 노력이 만들어낸 위대한 성과였습니다.