Skip to content
research

NASA가 우주비행사는 실수하지 않을 것이라 믿었던 Apollo 버그

시뮬레이터 충돌 사고는 누가, 언제 실수를 저지르는지에 대한 위험한 가정을 드러냈습니다. 소프트웨어가 예상치 못한 상황을 대비해야 하는 이유를 실제 임무가 증명하기 전까지 이 수정안은 거부되었습니다.

Aki Tanaka
NASA가 우주비행사는 실수하지 않을 것이라 믿었던 Apollo 버그

4살 아이가 발견한 오류 모드

Apollo 비행 소프트웨어 수석 엔지니어 Margaret Hamilton의 딸인 4살 Lauren Hamilton은 MIT의 사령선 시뮬레이터에서 치명적인 결함을 우연히 발견했습니다. 놀이를 하던 중, 그녀는 시뮬레이션된 우주선이 '비행 중'임에도 불구하고 발사 전 정렬 루틴인 P01을 선택했습니다.

잘못된 작동 상태에서 유효한 명령을 입력한 이 사소해 보이는 행동은 즉시 시뮬레이터의 항법 데이터를 교란하여 시스템 충돌을 일으켰습니다. Lauren의 입력은 소프트웨어에 비행 중 발사 전 절차를 실행하는 것에 대한 안전장치가 부족하다는 위험한 예외 사례를 드러냈습니다.

Margaret Hamilton은 즉시 이 발견의 심각성을 인지했습니다. 그녀는 비행 중 P01 실행을 차단하는 소프트웨어 수정안을 제안하며 방어적 프로그래밍(defensive programming)의 중요한 형태를 구현했습니다. 그러나 고도로 훈련된 우주비행사를 신뢰했던 NASA 경영진은 이 프로그래밍적 해결책을 기각하고 비행 매뉴얼에 간단한 경고 문구를 넣는 방식을 택했습니다. 그들은 우주비행사가 결코 그런 실수를 하지 않을 것이라고 믿었습니다.

경고를 증거로 바꾼 Apollo 8

Lauren Hamilton의 발견을 처음 묵살했던 NASA는 1968년 12월 Apollo 8 임무 중에 냉혹한 현실에 직면했습니다. 사령선 조종사 Jim Lovell은 우주선의 유도 시스템을 조작하던 중 실수로 발사 전 루틴인 P01을 선택했고, 이는 시뮬레이터의 잠재적 위험을 그대로 재현했습니다.

이 우발적인 입력은 중요한 항법 데이터를 삭제하여 우주선이 마치 발사대에 있는 것처럼 공간 인식 정보를 초기화했습니다. 휴스턴의 임무 통제실은 MIT의 Hamilton 팀과 긴밀히 협력하여 긴급하게 새로운 벡터 데이터를 계산하고 업로드함으로써 임무에 필수적인 원격 측정 데이터를 복구하고 Apollo 8의 궤도를 유지했습니다.

이 사건은 중요한 공학적 교훈을 남겼습니다. 승무원 훈련과 비행 매뉴얼의 경고에만 의존하는 것은 모드 오류를 방지하기에 충분하지 않다는 것이 증명되었습니다. 처음에 거부되었던 Hamilton의 소프트웨어 수준 보호 요청은 이제 부정할 수 없는 설득력을 얻게 되었습니다. 이후 엔지니어들은 향후 모든 임무의 Apollo 비행 소프트웨어에 이러한 필수 안전장치를 통합했습니다. 이러한 변화는 숙련된 우주비행사조차 인간의 오류를 범할 수 있음을 인정하고, 견고한 시스템은 이를 고려해야 한다는 방어적 프로그래밍을 향한 초기이자 중요한 발걸음이었습니다.

1202 알람—그리고 계속 작동한 코드

Apollo 11의 달 착륙은 이전과는 다른, 그러나 똑같이 중요한 소프트웨어적 도전을 제시했습니다. Eagle호가 착륙하기 3분 전, Apollo Guidance Computer (AGC)에 1202 및 1201 프로그램 알람이 울렸습니다. 이는 컴퓨터가 작업 과부하 상태임을 의미하는 실행 오버플로(executive overflow)를 나타냈습니다.

이 과부하는 잘못 배치된 랑데부 레이더 스위치로 인해 발생했으며, 이 스위치가 AGC에 불필요한 카운터 펄스를 지속적으로 보냈기 때문입니다. 이 하드웨어 결함은 컴퓨터 처리 용량의 13~15%를 소비하여 달 착륙을 무산시킬 위협을 가했습니다.

그러나 AGC의 설계에는 Margaret Hamilton 팀이 개발한 강력한 기능인 우선순위 스케줄링(priority scheduling)이 포함되어 있었습니다. 이 시스템은 덜 중요한 배경 작업을 동적으로 중단하거나 지연시켜 스로틀 제어 및 항법과 같은 필수적인 유도 및 제어 기능이 중단 없이 계속되도록 보장했습니다. 컴퓨터는 임무에 필수적인 작업에 우선순위를 두어 착륙을 성공적으로 진행할 수 있게 했습니다.

P01 버그와는 별개로, 두 사건 모두 비행 소프트웨어에서 예상치 못한 입력과 경쟁하는 요구 사항을 예측해야 할 필요성을 강조했습니다. P01 에피소드는 인간적인 요소를 부각하며, 고도로 훈련된 우주비행사조차 실수를 범할 수 있음을 보여주었습니다. 반면 1202 알람은 하드웨어 이상에 대한 시스템의 복원력을 입증했습니다. 두 시나리오 모두 방어적 프로그래밍 원칙과 정교한 실행 아키텍처의 중요성을 검증하며 임무 성공에 결정적인 역할을 했습니다. 우주 소프트웨어의 선구자들에 대해 더 알아보려면 Margaret Hamilton - NASA Science를 방문하세요.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

Apollo가 현대 시스템에 주는 교훈

Hamilton의 발견은 이상적인 사용자 행동을 가정하는 것에서 벗어나 인간의 실수를 예측하고 완화하는 패러다임의 전환인 defensive programming에 직접적인 영향을 미쳤습니다. 그녀가 제안한 수정 사항(시스템 상태에 따라 명령을 검증하고 위험한 작업을 제한하는 것)은 핵심 원칙이 되었으며, 완벽함이 아닌 현실을 설계함으로써 치명적인 시스템 오류를 방지했습니다.

Apollo의 혁신적인 우선순위 전략은 load shedding 및 graceful degradation과 같은 현대적 신뢰성 개념을 위한 청사진을 제공합니다. Apollo 11호 달 착륙 당시 Apollo Guidance Computer가 과부하에 직면했을 때, MIT 엔지니어 Hal Laning과 함께 개발한 비동기식 실행 아키텍처는 우선순위가 낮은 작업을 삭제함으로써 핵심 기능을 보존했습니다. 이를 통해 임무 수행에 필수적인 작업이 방해받지 않고 계속될 수 있었습니다.

이 사건은 결정적이었지만, Hamilton의 더 넓은 유산 중 한 측면만을 나타낼 뿐입니다. Apollo 비행 소프트웨어 개발의 리더로서 그녀는 소프트웨어를 공학 분야로 엄격하게 다루는 것을 옹호했습니다. 그녀의 연구는 강력한 시스템이 예측할 수 없는 인간적 요소를 고려해야 함을 입증하며 기초 원칙을 세웠고, 이는 오늘날 복잡한 시스템에서도 여전히 필수적인 교훈입니다.

자주 묻는 질문

Apollo P01 소프트웨어 버그란 무엇인가요?

비행 중에 P01 발사 전 루틴을 시작하면 내비게이션 데이터가 덮어쓰여 Apollo Guidance Computer의 상태를 방해할 수 있었습니다.

Margaret Hamilton의 딸은 어떻게 이 문제를 발견했나요?

4살 된 Lauren이 커맨드 모듈 시뮬레이터를 사용하던 중 시뮬레이션 비행 중에 P01을 선택했고, 이로 인해 시뮬레이션이 중단되었습니다.

Apollo 11호의 1202 알람은 무엇 때문에 발생했나요?

달 착륙 도중 랑데부 레이더와 관련된 과도한 작업으로 인해 가이드 컴퓨터에 과부하가 걸려 알람이 울렸습니다.

Apollo 11호의 소프트웨어는 1202 알람에 어떻게 대응했나요?

우선순위 스케줄링을 통해 컴퓨터가 우선순위가 낮은 작업을 삭제하고 필수적인 착륙 계산 및 제어 기능을 계속 수행할 수 있었습니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

빌더를 위해

이 페이지는 지금 다른 사람의 도구를 위해 일하고 있습니다.

AI 에이전트가 읽고, 구매자가 도착합니다. 8개 언어와 MCP로 답합니다. 당신의 도구도 가질 수 있습니다 — 24시간 안에 공개.