본문 바로가기

Development/Python

주피터 노트북(Jupyter Notebook) 설치 및 사용 방법

들어가며

주피터 노트북(Jupyer Notebook)은 IPython과 같이 상호작용 형식의 라이브 코드를 제공하는 웹 베이스 애플리케이션이다. 주피터 노트북을 사용하면 웹 브라우저 안에서 실행하고자 하는 코드를 입력하고, 그 결과를 바로 확인할 수 있다. 또한, 웹 브라우저에서 일반 프로그램으로는 구현하기 어려운 수학 공식을 표현할 수 있고, 다양한 그래프를 통해 데이터를 시각적으로 확인할 수도 있다. 뿐만 아니라, 나레이션 텍스트나 이미지 등을 추가하여 별도의 문서를 만든 후 공유할 수 있기 때문에 파워포인트, 키노트(Key Note)와 같은 프레젠테이션 프로그램으로도 많이 사용된다.

설치 방법

주피터 노트북은 오픈 소스 프로그램이므로, 무료로 다운로드하여 사용할 수 있다. 단, 주피터 노트북을 설치하기 전에 파이썬 설치 방법을 확인해보아야 한다. 만약, 아나콘다 파이썬을 설치하였다면, 주피터 노트북이 이미 설치되어 있을 것이므로, 이 단계는 건너뛰어도 되지만, 공식 사이트를 통해 파이썬을 설치하였다면 아래 명령어를 통해 별도로 설치해주어야 한다.

$ pip install jupyter

사용 가능한 언어 종류

과거 주피터 노트북의 명칭은 IPython Notebook 이었으나, 파이썬 뿐만 아니라 Go, R, Julia, C++, Java 등 여러 프로그래밍 언어를 지원함에 따라 명칭을 주피터 노트북으로 변경하였다. 주피터 노트북에서 지원하는 프로그래밍 언어의 종류는 아래 링크를 통해 확인할 수 있다.

구성 요소

주피터 노트북은 크게 네 개의 컴포넌트로 구성되어 있다.

  • Application : 클라이언트 측과 서버 측으로 구분된다. 클라이언트 측은 브라우저를 통해 Document를 실행하거나 수정할 수 있도록 해주며, 서버 측은 http 또는 웹 소켓(web socket)을 통해 들어온 요청을 프로그래밍 언어의 Kernel로 처리한 결과를 웹으로 보여준다. 만약, 클라이언트와 서버가 같은 호스트에서 실행된다면 인터넷에 연결되어 있지 않아도 주피터 노트북을 실행할 수 있으며, 서로 다른 호스트에서 실행된다면 인터넷 연결이 되어 있어야 실행된다.
  • Dashboard : 주피터 노트북 실행 시 첫 번째로 보여지는 화면이며, Document 또는 Kernel을 실행하는데 사용된다.
  • Document : 주피터 노트북에 의해 생성되는 json 형식의 파일(.ipynb)이다. 이 파일에는 클라이언트 측에서 실행되는 코드 또는 데이터의 정보가 저장된다.
  • Kernel : 서버 측에서 사용하는 연산 엔진이다. 클라이언트 측에서 Document에 저장된 코드를 실행하면, 서버 측에서 http 또는 웹 소켓 프로토콜을 통해 요청을 받고, Kernel로 연산을 수행한 결과를 클라이언트 측에 넘겨주어 웹 브라우저에 나타낸다.

실행 방법

터미널에서 아래 명령어를 입력하면 로컬 서버(http://127.0.0.1:8888)가 실행되며, 로컬 서버 주소와 token 정보가 터미널에 출력된다.

$ jupyter notebook

웹 브라우저를 통해 로컬 서버로 접속하면 아래 그림과 같이 Password or token 입력 창이 나타나는데, 터미널에 출력된 로컬 서버 주소 뒤에 위치한 ?token= 뒤의 값을 입력 후 Log in 버튼을 클릭하면 주피터 노트북 Dashboard로 이동할 수 있다.

token을 입력하는 대신에 비밀번호를 사용하고자 한다면 아래 그림과 같이 Setup a Password 아래에 token을 입력하고 비밀번호를 설정하면 된다.

주피터 노트북이 실행될 때 터미널에 입력된 현재 폴더 위치가 주피터 노트북의 최상위 폴더로 인식되는데, 작업하고자 하는 폴더를 변경하려면 ctrl + c를 입력하여 주피터 노트북을 종료시킨 후에 아래 코드와 같이 cd ~ 명령어를 사용하거나, % 기호 사이에 변경하고자 하는 폴더 경로를 입력하면 된다.

$ cd < 이동할 폴더 경로 >
$ jupyter notebook
$ jupyter notebook %< 이동할 폴더 경로 >%

사용 방법

주피터 노트북을 사용할 때에는 용도에 따라 서로 다른 폴더에 관리하는 것이 효율적이다.

새 폴더 생성

주피터 노트북 페이지에서 New 버튼을 클릭하고 Folder를 클릭하면 새로운 폴더를 생성할 수 있다.

새로 생성된 폴더명은 Untitled Folder로 지정되는데, 해당 폴더를 체크한 후 좌측 상단에 위치한 Rename 버튼을 클릭하여 폴더명을 변경할 수 있다.

Document 생성

마찬가지로 New 버튼을 클릭하고 Python 3를 클릭하면 새로운 Document를 생성할 수 있다.

새로 생성된 Document의 제목 또한 Untitled로 지정되는데, 제목을 클릭하면 Document의 제목을 변경할 수 있다.

코드 실행

Run 버튼을 클릭하여 코드를 실행할 수 있다. 예를 들어, Hello World!를 출력하면 아래 그림과 같은 결과가 출력된다. 이때, 실행된 코드의 경우 In 옆에 번호가 부여되는데, 실행된 코드의 한 칸을 셀이라고 한다.

주피터 노트북은 하나의 Documentd에서 서로 다른 셀에 정의된 변수나 함수는 모두 공유되므로, 셀이 바뀌어도 변수나 함수를 다시 정의하지 않아도 된다.

단축키

새로운 셀을 생성하거나, 코드를 실행할 때 단축키를 활용하면 더욱 효율적으로 작업을 할 수 있다. 단축키 정보는 Help 메뉴 중에서 Keyboard shortcuts를 클릭하거나, esc 키를 누른 후 H 키를 눌러 확인할 수 있다.

수정/커맨드 모드

셀을 선택하면 좌측에 녹색 또는 청색 세로 줄이 보여지는데, 각각 수정(edit) 모드와 커맨드(command) 모드를 의미한다. 수정 모드는 말 그대로 셀 안의 코드를 삽입하거나 수정할 수 있는 모드이며, 수정 모드일 때에는 셀 생성 및 삭제 단축키는 사용할 수 없다. 셀 생성 및 삭제 단축키를 사용하기 위해서는 세로 줄을 클릭하거나 esc 키를 눌러 커맨드 모드로 변경하여야 한다.

  • 수정 모드

  • 커맨드 모드

마크다운

주피터 노트북은 마크다운(markdown)을 지원하며, 아래 그림과 같이 Code로 설정된 모드를 클릭한 후 Markdown으로 모드를 변경하면 마크다운을 입력할 수 있다. 마크다운 모드로 변경하면 셀 번호가 사라지고, 코드를 실행하면 마크다운 코드가 html로 인코딩된다.

매직 커맨드

주피터 노트북에서는 IPython에서 제공하는 편리한 기능 중 하나인 매직 함수를 사용할 수 있으며, Code 모드에서 사용 할 수 있다. 주피터 노트북에서 사용 가능한 매직 커맨드(magic command)는 %lsmagic을 입력하여 아래 그림과 같이 확인할 수 있다.

OS 커맨드

파이썬에는 os 모듈이 내장되어 있다. %alias를 입력하여 os 모듈에서 제공하는 함수를 확인할 수 있다.

파일 목록

%ls를 입력하여 현재 폴더에 위치한 파일 목록과 남은 저장 공간을 확인할 수 있다.

새 폴더 생성

%mkdir < 새 폴더명 >을 입력하여 새로운 폴더를 생성할 수 있다.

환경 변수 설정 및 참조

%env IS_DOCKER_ENV=true를 입력하여 환경 변수를 설정할 수 있으며, %env IS_DOCKER_ENV를 통해 환경 변수 값을 확인할 수 있다.

시간 측정

%%time를 입력하여 코드의 실행 시간을 확인할 수 있다.

파일 내보내기

%%writefile < 파일명 >을 입력하여 해당 셀의 코드를 .py 형식의 파일로 내보낼 수 있다.

파일 불러오기

%%load < 파일명 >을 입력 후 실행하면 .py 형식의 파일에 저장된 코드를 불러온 후 해당 셀에 자동으로 입력된다. 해당 셀을 한 번 더 실행하면 매직 커맨드는 주석으로 처리되고, 불러온 코드가 실행된다.

설정 방법

주피터 노트북의 설정을 위해서는 주피터 노트북이 설치된 폴더에 jupyter_note_config.py 파일이 존재해야 한다. 먼저, 커맨드에 아래 명령어를 입력하여 설정 파일을 생성해주도록 한다.

$ jupyter notebook -generate-config

생성된 파일은 기본 설정으로, 모든 항목이 주석으로 처리되어 각각의 항목의 기본 설정 값이 입력되어 있다. 만약, 주피터 노트북을 통해 별도의 서비스를 제공할 목적인 경우 해당 설정 파일을 통해 포트 번호, 기본 실행 폴더 등을 설정하면 된다.

마치며

이렇게 주피터 노트북의 설치 방법 및 사용 방법과 간단한 기능들에 대해서 정리해보았다. 파이참(Pycharm)을 설치한 이후로는 한 번도 사용하지 않고 있지만, 파이참이 설치되지 않은 환경에서 간단하게 파이썬과 주피터 노트북만을 설치하여 개발 환경을 구축할 수 있다는 부분이 가장 큰 장점인 것 같다.