심우주에서의 레거시 코드: 보이저 우주선의 유지보수

보이저 1호와 2호 우주선은 지구에서 가장 멀리 떨어진 인류가 만든 물체로서, 성간 우주를 향한 여정을 계속하고 있습니다. 하지만 이들의 장기적인 생존을 결정짓는 핵심 요소는 하드웨어뿐만 아니라, 현재 지구상에서 이를 이해할 수 있는 사람이 거의 없는 1970년대 시대의 프로그래밍 언어로 작성된 레거시 코드베이스입니다.

이 상황은 소프트웨어 유지보수에 있어 독특한 사례 연구를 제공합니다. 현대 소프트웨어처럼 패치를 적용할 수 없고, 통신 지연 시간이 편도 24시간 이상이며, 원본 설계자들이 이제 은퇴 연령에 도달하고 있는 시스템입니다.

성간 레거시 코드의 도전 과제

보이저 우주선을 유지보수하려면 현대 소프트웨어 공학에서는 거의 들어볼 수 없는 일련의 제약 조건들을 다뤄야 합니다. 클라우드 기반 애플리케이션이나 현대적인 위성과 달리, 보이저 탐사선은 수십 년 전에 설계된 하드웨어와 소프트웨어로 작동하고 있습니다.

우주선이 너무 멀리 떨어져 있기 때문에, 모든 소프트웨어 업데이트나 수정은 매우 위험 부담이 큰 작업입니다. 메시지 하나가 탐사선에 도달하는 데 24시간 이상이 걸리는 통신 지연으로 인해 실시간 디버깅은 불가능합니다. 보이저 탐사선으로 전송되는 모든 코드 라인은 전송 전에 완벽하게 계산되고 테스트되어야 합니다.

인적 요소: 지식 전수와 기술 격차

가장 시급한 문제 중 하나는 조직적 지식의 손실입니다. 1970년대에 원본 코드를 작성했던 엔지니어들은 이제 노년기에 접어들었습니다. 이 원본 개발자들이 은퇴함에 따라 NASA는 전문 지식의 공백에 직면하게 됩니다.

젊은 엔지니어들이 이러한 고대 언어를 배울 기술적 능력은 갖추고 있지만, 레거시 시스템을 다루는 것에 대한 의지가 부족한 경우가 많습니다. 하지만 커뮤니티 구성원들이 언급했듯이, 보이저 프로젝트에서 작업하는 것은 매우 명망 있는 기회입니다. 이는 역사적 보존과 활발한 미션 지원이 교착하는 독특한 지점이며, 1970년대 어셈블리와 현대 컴퓨팅 사이의 간극을 메울 수 있는 엔지니어의 경력에 '황금 별'을 선사할 것입니다.

고대 시스템을 위한 현대적 솔루션

보이저 코드베이스를 유지보수하기 위한 고군분투는 NASA가 오늘날 이러한 시스템을 어떻게 관리하는지에 대한 몇 가지 질문을 던집니다. 엔지니어와 애호가들 사이의 논의는 완화 방안으로 몇 가지 잠재적인 경로를 제시합니다:

  • Digitization: 프로젝트의 물리적 문서화에 대한 지속적인 우려가 있습니다. 70년대의 모든 종이 조각과 매뉴얼을 디지털화하는 것은 지식이 물리적 부식으로 인해 손실되지 않도록 보장하는 데 매우 중요합니다.
  • Simulation and Emulation: 변경 사항을 테스트하기 위해, NASA는 아마도 현대 장비 상의 소프트웨어 에뮬레이터나 보이저 하드웨어의 물리적 복제본을 사용하여 공허로 보내는 모든 명령이 안전한지 확인하고 있을 것입니다.
  • The Role of AI: 일부에서는 대규모 언어 모델(LLMs)을 사용하여 오래된 문서와 코드 스니펫을 분석하여 현대 엔지니어들이 1970년대 시스템의 로직을 이해하도록 도울 수 있다고 제안했습니다. 사용 가능한 레거시 코드를 모델에 학습시킴으로써, AI는 소프트웨어의 문서화되지 않은 부분을 번역하거나 문서화하는 데 잠재적으로 도움을 줄 수 있습니다.

70년대 공학의 인내력

인류 탐사의 가장 진보된 업적 중 일부가 대부분의 상업적 분야에서 구득식(obsolete)으로 간주될 코드에 의해 구동된다는 사실에는 깊은 아이러니가가 있습니다. 많은 기업이 은행업의 COBOL 시스템으로 고전하고 있는 반면, 보이저 탐사선은 현존하는 기능적인 레거시 코드베이스의 가장 극단적인 사례를 나타냅니다.

궁극적으로, 보이저 미션은 가장 중요한 소프트웨어는 가장 현대적인 소프트웨어가 아니라, 가장 가혹한 환경에서 거의 반세기 동안 생존할 수 있는 견고하고 신뢰할 수 있는 소프트웨어라는 점을 상기시켜 줍니다.

Sources