내겐 너무 목성 같은, Jupyter Notebook



친근한 두 개의 단어, 주피터(목성-은 jupiter이지만-)와 노트북(notebook-공책)의 결합인 Jupyter notebook. 머신러닝을 할 때 매번 터미널에 입력하는 jupyter notebook라는 녀석을 매번 따라 적기만 하다가 문득 궁금해져서 이것저것 찾아보다 정리하게되었다(라는 fake, 일하기 싫어서 딴짓 중입니다 ;).

1. Notebook document(노트북 문서) [1]

Notebook document(혹은 notebooks)은 Jupyter Notebook 애플리케이션을 통해 생성된 문서를 말한다.
Julia, Python, R 등의 컴퓨터 코드뿐만 아니라 문자, 방정식, 표 등과 같은 다양한 형태로 작성할 수 있는 문서이다. 이러한 특성 때문에 표, 설명, 방정식, 미디어를 결합한 단일 문서에 코드의 결과를 함께 출력할 수 있으며, *.ipynb와 같은 포맷을 지니는 노트북 문서를 파일 형식으로 타인과 공유할 수있다.

2. Jupyter Notebook(주피터 노트북)

Jupyter Notebook은 Notebook document를 작성하거나 실행할 수 있는 웹 기반의 대화형 애플리케이션이다.
Jupyter라는 오픈 소스 소프트웨어 프로젝트의 메인 애플리이션인 Jupyter Notebook 직관적인 사용법, 재현 가능성 그리고 신속한 개발이 가능해 다양한 분야에서 활용되고 있다. 전 세계적으로 학계, 정부, 기업에서 상업용 및 비영리 서비스 구축을 위해 널리 사용되고 있다고 한다.
Jupyter Notebook 애플리케이션은 인터넷이 연결되어있지 않은 상태에서 로컬로 실행할 수 있으며, 서버에 Jupyter Notebook을 설치해두고 네트워크를 통해 접근할 수도 있다.

3. “Jupyter”의 어원은?

(개인적으로 가장 궁금했던 부분) 프로젝트 이름가 Jupyter인 이유에는 아래와 같이 세 가지 이유가 있다고 한다. [2]

첫 번째 스펠이 유사한 목성(jupiter)에서 시작되었다고 한다. 설명에 따르면 과학의 전통과 이념을 불러일으키는 이름으로 프로젝트명을 짓고 싶은 의지를 담았다고 한다.

두 번째 Jupyter가 지원하는 핵심 언어는 Julia, Python 그리고 R인데, 세 가지 언어의 앞글자를 연결하면 절묘하게 jupyter와 비슷해지는 것을 알 수 있다. 특히 Python의 ‘y’를 존중하기 위해 목성의 스펠인 ‘jupiter’의 ‘i’를 ‘y’로 치환(!!)했다고 한다.

세 번째 목성의 위성을 최초로 발견했던 갈릴레오가 자신이 연구한 내용을 정리해 출간물이 냈었는데, 그 책자가 근거 데이터가 잘 수록되어있는 자료의 시초였다고 한다. 이러한 데이터는 과학적 재현성에 매우 중요한 의미를 지니는데 Jupyter 역시 재현성에 큰 초점을 맞추고 있기 때문에 jupyter라는 단어를 사용했다고도 한다.

4. 마무리

jupyter notebook을 글로 정리해도 실제로 잘 사용하지는 못하겠지만 그래도 포스팅을 남기니까 일한 것 같은 느낌적인 느낌이 들어서 좋구나~ 근데 Jupyter 어원을 혹시 나만 궁금해 했던건 아니겠지? 🤭