Jupyter(IPython Notebook)을 사용해보자.

기존에 IPython Notebook으로 많이 알려졌던 Jupyter(주피터) 소개한다.

Jupyter 로고, 다양한 언어를 지원하고 있음을 로고의 배결을 통해서 알 수 있었다.

프로젝트 명이 Jupyter가 된 이유?
원래 IPython에서 클라이언트와 파이썬 해석기 사이에 메시지를 중개하기 위한 ZeroMQ가 사용된 것은 다양한 클라이언트를 지원하기 위해서였는데 그런데 이는 동시에 다양한 커널을 도입하기 위해서는 IPython이라는 이름이 적절하지 않았던 것 같다. IPEP 25 이 문서에서 다양한 언어를 지원하는 커널의 내용을 확인해 볼 수 있다.

Jupyter는 웹 어플리케이션 기반이며 문서 공유 및 여러 언어의 라이브 코드와 수식을 포함할 수 있다. 이를 이용하면 간단히 말해 코드가 포함된 문서를 공유할 수도 있고 이를 시각적으로 더 잘 보여줄 있다.

설치
나는 맥(Mac) 기준으로 설치해봤다. 설치는 여기 링크를 참고해서 진행하면 된다. 나는 먼저 Python의 버전을 확인해봤다.

> python --version
Python 2.7.10

2.7도 Jupyter를 사용하는데는 문제가 없지만 나는 Python3의 문법을 사용하고 싶어서 3 버전을 설치하기로 했다. Python3의 설치는 다운로드 페이지를 통해서 가능했고 pkg파일이여서 간단하게 클릭만으로 설치가 끝났다.

> python3 --version
Python 3.5.2

이제 Jupyter를 설치해보자. 그 전에 pip를 업데이트했다.

> pip3 install --upgrade pip
> pip3 install jupyter


설치가 끝났으면 콘솔창에서 다음과 같이 입력해보자.

> jupyter notebook

실행화면
그리고 자동으로 브라우저가 실행되는 것을 확인할 수 있었다. 내 로컬 디렉터리가 보였다.

실행화면, 바로 탐색기 형태의 브라우저가 나타났다.
수식 및 그래프 지원
새로운 문서를 만들 수도 있지만 다른 문서들을 https://nbviewer.jupyter.org/에서 검색해볼 수도 있었다. 검색된 몇가지 문서를 보면 LaTeX을 이용해서 수식을 작성할 수도있고 pyplot(Python 기준)을 을 이용해서 그래프 등을 시각적으로 보여줄 수도 있었다.

수식을 이용해 그래프를 생성 예제

연구자의 입장에서 다른사람의 선행 연구를 재현한다는 것은 매우 중요한 문제라고 생각한다. 왜냐하면 그로 인해서 새로운 연구로 이어갈 수도 있고 기존 연구의 문제점도 발견해서 개선할 수 있기 때문이다. 하지만 많은 연구에서 실제 코드가 공유되지 않아 재현하는데 많은 시간을 사용하거나 불가능 한 경우가 많다. Jupyter를 사용하면 이런 연구의 재현 문제를 해결하는데 도움을 줄 것이다.