주피터 노트북 (Jupyter Notebook)
쉽게 풀면
주피터 노트북은 코드를 짧은 조각(셀) 단위로 실행하면서 그 결과와 그래프를 바로바로 확인할 수 있는 프로그램이다. 코드 전체를 한 번에 실행하는 대신 한 셀씩 실험해 볼 수 있어서 데이터를 탐색하거나 모델을 디버깅하는 과정에 특히 편리하다. 연구 논문의 실험 코드나 튜토리얼이 자주 노트북 형태(.ipynb 파일)로 공개되는데, 이는 코드와 그 실행 결과, 설명을 한 문서 안에 함께 담을 수 있기 때문이다.
왜 중요한가
주피터 노트북은 연구 재현성과 코드 공개 문화를 뒷받침하는 표준 도구로 자리 잡았기 때문에 데이터과학, 머신러닝, 계산과학 논문에서 자주 언급됩니다. 코드와 실행 결과, 설명을 한 문서에 담을 수 있어 논문 부록이나 오픈사이언스 저장소에 실험 과정을 투명하게 공개하는 수단으로도 널리 쓰입니다.
논문에서는 이렇게 쓰입니다
연구팀이 데이터를 살펴보며 분석한 과정을 코드와 결과가 함께 담긴 노트북 파일로 남겨 공개했다는 의미이다.
머신러닝 논문에서 재현성을 확보하기 위해 노트북을 코드 공개 수단으로 활용할 때 흔히 쓰이는 문장입니다.
조금 더 깊게 보면
주피터 노트북 파일(.ipynb)은 코드, 실행 결과, 마크다운 설명이 JSON 형식으로 함께 저장되는 구조를 갖고 있어, 코드뿐 아니라 실행 시점의 출력까지 버전 관리에 포함됩니다. 다만 셀을 임의 순서로 실행할 수 있다는 특성 때문에 저장된 결과가 실제 코드를 처음부터 순서대로 실행한 결과와 다를 수 있어, 최근에는 "Restart and Run All" 같은 전체 재실행 절차나 nbconvert 같은 도구로 노트북을 스크립트화해 재현성을 검증하는 관행이 권장됩니다.
주의할 점
노트북은 셀을 순서와 다르게 실행하기 쉬워서, 실제로는 코드를 처음부터 순서대로 실행했을 때와 다른 결과가 저장되어 있는 경우가 있어 재현성 문제가 지적되기도 한다.