Science Is Open Software
이 글은 현대 과학, 특히 계산과학이 오픈 소스 소프트웨어의 원칙과 사실상 같다고 주장합니다. 과학적 결과가 검증·수정·확장되려면 실행 가능하고 신뢰할 수 있는 코드가 필요하며, 이를 위해 코드 공개와 재현 가능한 환경, 소프트웨어 기여를 인정하는 연구 문화를 제안합니다.
AI 요약
이 글은 현대 과학을 오픈 소스 소프트웨어(Open Source Software)와 연결해 설명합니다. 저자가 말하는 핵심은 소프트웨어가 과학 연구를 보조하는 부수적인 도구가 아니라, 계산과학(Computational Science)에서 과학적 지식과 예측 모델을 실제로 표현하는 방식이라는 점입니다. 논문이 결과와 결론만 제시하고 그 결과를 만든 방법을 숨긴다면, 독자는 해당 지식을 자신의 이해 체계에 넣고 검증하거나 수정하거나 확장하기 어렵습니다. 따라서 과학이 과학답기 위해서는 소프트웨어 역시 공개적이고 재현 가능해야 한다고 주장합니다.
■ 과학의 목적은 예측 가능한 내부 모델을 만드는 것입니다
글은 과학을 “검증 가능한 가설과 우주에 대한 예측의 형태로 지식을 만들고 조직하는 체계적인 분야”라는 정의에서 출발합니다. 저자는 논문에 어떤 지식이 들어 있다는 사실만으로 충분하지 않다고 봅니다. 그 지식이 독자가 시험할 수 있고, 체계화할 수 있으며, 세계를 더 잘 예측하는 데 사용할 수 있어야 합니다. 이를 설명하기 위해 Kenneth James Williams Craik의 ‘내부 모델(inner model)’ 개념을 인용합니다. 인간은 외부 세계와 자신이 취할 수 있는 행동을 머릿속의 작은 시뮬레이션으로 구성하고, 여러 대안을 시험하면서 더 나은 판단을 내립니다.
이 관점에서 과학의 목적은 연구자와 독자가 세계를 예측하는 내부 모델을 개선하는 데 있습니다. 논문이 독자의 모델을 개선하려면 그 안의 아이디어를 직접 적용하고 시험할 수 있어야 합니다. 계산과학에서는 소프트웨어가 바로 이 예측 모델을 인코딩하고 공유하는 수단입니다. 그러므로 소프트웨어가 실행되지 않거나, 구현을 이해하고 수정할 수 없거나, 결과를 재현할 수 없다면 논문의 지식은 다른 연구자가 활용할 수 있는 형태로 충분히 전달되지 않은 셈입니다.
■ 재현성은 결과를 한 번 복제하는 것보다 넓은 개념입니다
저자는 reproducibility를 단순히 논문에 적힌 숫자나 그래프를 똑같이 다시 만드는 능력으로 한정하지 않습니다. 재현성은 과학적 아이디어를 자신의 내부 모델에 포함하고, 필요에 맞게 변형하고, 그 위에 새로운 작업을 쌓거나, 예측력을 떨어뜨린다면 폐기할 수 있는 능력까지 포함합니다. 같은 결과가 특정 저자의 환경에서만 한 번 나오는 것이 아니라, 다른 사람이 코드를 실행하고 구조를 이해하며 수정할 수 있어야 한다는 뜻입니다.
이 주장은 수학적 모델과 소프트웨어를 비교하면 더 분명해집니다. 물리학 논문이 어떤 방정식이 X를 예측한다고 말하면서 방정식 자체는 보여주지 않는다면, 독자는 그 주장을 검증하거나 변형할 수 없습니다. 저자는 계산과학에서 방법과 구현을 감추는 일도 같은 문제를 만든다고 말합니다. 재현되지 않는 아이디어는 확장될 수 없고, 결과적으로 과학 지식의 누적에 기여하기 어렵다는 논리입니다.
■ 소프트웨어의 오류는 과학적 결론의 오류가 됩니다
현대 과학은 다른 사람이 만든 소프트웨어 위에 세워져 있습니다. COVID 모델, 검색 알고리즘, 실험실 프로토콜 등 다양한 연구 활동이 소프트웨어에 의존합니다. 연구자가 모든 의존성(dependency)을 직접 살펴보고 구현 세부 사항을 검증하거나, 결과를 무효화할 수 있는 오류를 모두 확인하기는 어렵습니다. 그럼에도 과학적 결과가 해당 소프트웨어를 통해 산출된다면, 소프트웨어의 정확성과 신뢰성은 연구 결과의 신뢰성과 분리할 수 없습니다.
글은 버그가 이미 여러 논문의 철회(retraction)를 초래했다고 언급합니다. 다른 연구자의 작업을 어느 시점에는 신뢰하고 그 위에 올라서야 하므로, 소프트웨어는 일관되게 신뢰할 수 있어야 합니다. 저자가 제시하는 소프트웨어의 조건은 두 가지입니다. 첫째, reproducible해야 하며 여기에는 실행 가능성뿐 아니라 수정 가능성(modifiability)도 포함됩니다. 둘째, reliable해야 하며 결과를 반복해서 신뢰할 수 있어야 합니다.
■ 오픈 소스가 제공하는 재현성과 수정 가능성
저자는 오픈 소스 소프트웨어가 이 두 조건을 제공한다고 봅니다. 공개된 코드는 연구자가 필요에 맞게 바꾸고, 다른 환경에 맞춰 적용하며, 이전 구현을 기반으로 개선할 수 있게 합니다. 글에서는 Hugging Face 모델을 예로 들며, 공개된 모델과 도구를 연구 목적에 맞게 조정하는 작업을 설명합니다. 반복적인 수정과 검토가 가능해야 지식이 누적되고, 특정 연구실이나 특정 연구자의 개인 환경에 갇히지 않습니다.
다만 오픈 소스가 모든 문제를 자동으로 해결하는 것은 아니라고 선을 긋습니다. 지식재산권(IP)과 보안 문제가 남아 있고, 공개된 코드에도 버그가 있을 수 있으며, 안정성이 보장되지 않을 수 있습니다. 그러나 오픈 소스에서는 적어도 이러한 결함이 공개적으로 기록되고, 다른 사람이 발견하고 수정할 수 있습니다. 저자는 이 점에서 오픈 소스 소프트웨어를 과학적 방법의 시뮬레이션처럼 볼 수 있다고 주장합니다. 과학적 이해가 공개된 검토와 수정으로 개선되듯, 공개 코드는 구현을 지속적으로 검증하고 고칠 수 있게 합니다.
■ 저자가 그리는 공개형 계산과학
글이 제시하는 미래상에서는 모든 연구 결과를 즉시 재현할 수 있습니다. 예를 들어 새로운 약물이 증상을 30% 줄인다는 논문을 읽은 사람이 링크를 클릭하면, 저자가 사용한 것과 동일한 환경에서 데이터 처리, 통계 검정, 시각화를 브라우저에서 직접 실행할 수 있습니다. 재현 가능한 컨테이너(reproducible container)가 환경을 보존하기 때문에 분석이 특정 연구자의 컴퓨터 설정에 종속되지 않는다는 구상입니다.
과학 소프트웨어는 Wikipedia처럼 발전할 수 있습니다. 기후 모델이 개별 연구실에서 고립되어 관리되는 대신 전 세계 커뮤니티가 유지하고, 케냐의 연구자가 대기 난류 계산의 버그를 발견하면 수정 사항이 전 세계 기후 시뮬레이션으로 빠르게 전파되는 방식입니다. 연구자가 매번 처음부터 도구를 만들지 않고, 읽을 수 있을 뿐 아니라 실행하고 수정할 수 있는 선행 작업 위에 올라서면 발견의 속도도 빨라질 수 있다고 설명합니다. 기후 모델, 경제 예측, 의료 권고의 기반이 되는 코드가 투명하고 감사 가능(auditable)해지면 과학에 대한 신뢰와 과학 커뮤니케이션도 강화될 수 있다고 봅니다. 저자는 이 미래를 실현하는 데 필요한 요소로 오픈 소스 커뮤니티, 재현 가능한 환경, 협업 개발 플랫폼이 이미 존재한다고 말합니다.
■ 연구자가 지금 할 수 있는 일
저자는 컴퓨터화된 세계에서 과학을 수행하려면 오픈 소스 소프트웨어가 필요조건이라고 주장합니다. 소프트웨어를 실행 가능한 수학적 모델로 보고, 다음과 같은 실천을 제안합니다.
첫째, 코드를 처음부터 작성하고 문서화하며 공유해야 합니다. 코드가 없는 논문은 다른 사람이 통찰을 기반으로 작업하기 어렵기 때문에 과학성이 낮아질 수 있으며, 이상적으로는 모든 주장을 재현 가능한 코드로 뒷받침해야 한다고 말합니다. 둘째, 안정적인 코드를 작성하고 재현 가능한 환경을 사용해야 합니다. 글은 의존성과 실행 환경을 일정하게 유지하는 방법으로 NixOS를 강조합니다. Docker와 Conda 같은 도구도 더 나은 선택이 될 수 있지만, 저자는 NixOS가 더 포괄적인 보장을 제공하고 장기적으로 동일한 실행을 보장하는 도구라고 평가합니다.
셋째, 각자 새로운 도구를 만들기보다 기존 도구 위에 구축해야 합니다. 공통 과학 지식 기반을 개선하려면 여러 플랫폼에서 작동하는 도구가 필요하며, 특히 neuromorphics처럼 작은 분야에서는 오픈 소스 소프트웨어가 확장에 중요하다고 설명합니다. 이를 위해 Open Neuromorphic 소프트웨어 가이드를 살펴보라고 권합니다. 넷째, 소프트웨어를 만드는 연구자의 기여를 학술 승진과 평가에서 인정해야 한다고 제안합니다. 소프트웨어가 과학 결과에 미치는 영향이 큰 만큼, 논문만을 중심으로 연구자를 평가하는 방식도 바뀌어야 한다는 주장입니다.
■ Hacker News 반응
• @jegp — 요약하면, 현대 과학은 오픈 소스 소프트웨어와 동의어라고 주장합니다. 이 글은 그 이유와 중요성, 그리고 지금 여러분이 할 수 있고 해야 하는 일을 설명합니다.
• @jegp — 동등하다는 뜻인가요? 수학이나 물리학 결과에 비유하면, 그것은 다른 사람의 뇌 안에 있지만 우리가 접근하거나 검증할 수 없는 정신 모델입니다. 우리는 그저 그것이 참이기를 바랄 뿐입니다.
• @IanCal — 오픈 소스는 단순히 소스 코드를 공개하는 것보다 훨씬 더 많은 의미를 가집니다. 핵심은 라이선스에 관한 것입니다.
• @altmanaltman — 하지만 그건 소프트웨어에는 전혀 대응되지 않지 않나요?
• @random3 — 보통 제품으로 들어가게 되는, 공개하지 않은 채 비공개로 진행되는 연구를 말합니다.
원문: jepedersen.dk / 번역·요약: Trawling