4. Jupyter Notebook 사용 Last updated: 2023-10-17 10:28:15

주피터 노트북(Jupyter Notebook)은 파이썬과 R 언어를 위해 인터렉티브한 컴퓨팅 환경을 제공하기 위해 개발되어 무료로 제공되고 있는 웹 기반의 소프트웨어이다. 인터렉티브 하다는 말은 대화형으로 입력과 출력을 확인할 수 있다는 의미이다. 주피터 노트북은 셀이라는 블럭의 집합으로 코드를 작성할 수 있도록 해주며, 각 셀은 따로 수정하고 실행할 수도 있고, 순서대로 전체를 한번에 실행할 수도 있다. 웹 기반이기 때문에 브라우저 상에서 동작하며 테이블 결과나 이미지나 차트와 같은 시각적인 결과물도 셀 단위로 출력을 확인할 수 있다. 셀을 실행한 결과는 메모리에 저장되며 셀을 삭제해도 이전에 실행되어 메모리에 생성된 변수는 그대로 남아 있다. 이와 같이 많은 장점을 가지고 있는 주피터 노트북을 설치하고 사용하는 방법에 대해 알아보도록 하자.

4.1. 주피터 노트북 설치

주피터 노트북을 설치하는 방법은 두 가지이다. 하나는 파이썬 가상 환경에서 명령어를 이용해 실행하는 것이고, 두 번째는 앞에서 설명한 아나콘다를 이용하는 방법이다.

4.1.1 명령 창에서 주피터 노트북 설치

명령 창에서 Jupyter Notebook을 설치하려면 아래 명령을 사용하면 된다.

> pip install notebook

설치가 완료되면 다음 명령을 이용해 노트북을 실행한다.

> pip jupyter notebook

위의 명령이 실행되면 자동으로 브라우저가 실행되면 아래와 같이 주피터 노트북 페이지로 이동한다. 이제 주피터 노트북에서 파이썬 코드를 작성할 준비가 되었다.


image

[그림 2-4-1] 주피터노트북 실행 화면



4.1.2 Anaconda Navigator에서 주피터 노트북 설치하기

아나콘다에서 Jupyter Notebook을 설치하는 방법은 간단한다. 우선 윈도우 시작 메뉴에서 Anaconda Navigator를 찾아 실행한다. 좌측 메뉴에서 [Home] 탭을 누르고 [All Applicatons] 뒤에 목록을 열어 프로그램을 설치할 가상 환경을 선택한다. 우리는 [test_env] 를 선택하였다.

image

[그림 2-4-2] 아나콘다에서 가상환경 선택


아래에서 스크롤을 조금 내려 [Jupyter Notebook] 항목으로 이동하여 [Install] 버튼을 클릭해 프로그램을 설치한다.


image

[그림 2-4-3] 주피터노트북 설치


설치가 완료되면 다음과 같이 Jupyter Notebook의 [Launch] 버튼이 보이다. [Launch] 버튼을 클릭해 프로그램을 실행한다.


기본 웹브라우저가 자동으로 실행되고 localhost:8888/tree 주소로 연결된다. 이제 Jupyter Notebook이 실행되었으니 사용하면 된다.


image

[그림 2-4-4] 주피터 노트북 실행 화면



4.2 Jupyter Notebook 설정


4.2.1 시작 경로 지정하기

Jupyter Notebook을 실행하면 사용자 폴더(c:사용자{사용자 이름})가 기본 위치로 설정되어 프로그램이 시작된다. Jupyter Notebook에서는 지정한 경로 위로 이동할 수는 없기 때문에 원하는 경우 프로젝트를 위한 경로를 따로 지정할 필요가 있다. Jupyter Notebook 실행할 때 기본 경로를 지정하는 방법에 대해 설명한다.


A. Jupyter 환경 파일 생성

우선 Jupyter Notebook의 환경 파일을 생성해야 한다. 만일 다음의 경로에 폴더와 파일이 이미 생성되어 있다면 이 단계를 지나가기 바란다.

  • c:사용자{사용자 이름}.jupyter

만일 해당 폴더가 없다면 명령창을 실행한다. Jupyter Notebook에서 우측 [New] 메뉴를 눌러 [Terminal]을 실행한다.


image

[그림 2-4-6] 주피터노트북에서 터미널 실행 메뉴


만일 Anaconda Navigator에서 터미널을 실행하려면 [‘Environments’ > ‘가상 환경의 메뉴 선택’ > ‘Open Terminal’]을 차례로 선택하여 실행한다.


image

[그림 2-4-7] 아나콘다에서 터미널 실행 메뉴


이제 명령창에서 다음의 명령을 입력하여 환경 설정 파일을 생성한다.

> jupyter notebook --generate-config

실행이 정상적으로 되었다면 아래 경로에 ‘jupyter_nnotebook_config.py’ 파일이 생성되었을 것이다.


[파일 2] c:사용자{사용자 이름].jupyterjupyter_notebook_config.py

# Configuration file for jupyter-notebook.


c = get_config() #noqa


#------------------------------------------------------------------------------

# Application(SingletonConfigurable) configuration

#------------------------------------------------------------------------------

## This is an application.


## The date format used by logging formatters for %(asctime)s

# Default: %Y-%m-%d %H:%M:%S


..

[중간 생략]

..



B. jupyter_notebook_config.py 파일 수정

‘jupyter_notebook_config.py’ 파일을 텍스트 편집기에서 열어 아래 부분을 찾는다.

## The directory to use for notebooks and kernels.

# Default: ""

# c.NotebookApp.notebook_dir = ""


‘c.NotebookApp.notebook_dir’ 항목 앞의 주석(#)을 제거하고 시작할 전체 경로를 입력한다.


## The directory to use for notebooks and kernels.

## Default:

c.NotebookApp.notebook_dir = "C:python_project"


파일을 저장하고 닫는다. Jupyter Notebook을 재시작 한다. 지정한 경로가 시작 화면에 표시되는지 확인한다. 만일 적용되지 않는다면 Anaconda Navigator를 다시 시작한다.



4.3 Jupyter Notebook 사용하기

Jupyter Notebook의 사용 방법에 대해 알아보자.


4.3.1 폴더 다루기


A. 폴더 생성

현재 보여지는 위치에 새로운 폴더를 만드는 방법에 대해 설명한다. [New > Folder] 메뉴를 클릭한다.

image

[그림 2-4-8] 주피터노트북에서 폴더 생성


다음과 같이 기본적으로 ‘Untitled Folder’ 라는 이름으로 폴더가 생성된다.


image

[그림 2-4-9] 주피터노트북에서 폴더 생성된 결과



B. 폴더 이름 변경

폴더 이름을 변경하려면 폴더 이름 앞의 옵션을 체크 한다. 그러면 상단에 [Rename] [Move] 메뉴가 표시된다. [Rename] 버튼을 클릭한다.

image

[그림 2-4-10] 주피터노트북에서 폴더 이름 변경


변경하고자 하는 이름을 입력하고 [Rename] 버튼을 클릭한다.


image

[그림 2-4-11] 폴더 이름 입력창


다음과 같이 폴더의 이름이 변경되었다.


image

[그림 2-4-12] 폴더 이름 변경 결과



C. 폴더 이동

폴더에 포함된 파일들의 위치를 이동할 수 있다. 단. 폴더를 이동할 때 주의할 점은 폴더 내에 실행 중인 노트북이 있으면 안되고, Jupyter Notebook 시작할 때 열린 기준 폴더 밖으로 이동은 불가능한다. 이동할 폴더 앞의 체크 박스를 클릭하고 메뉴에서 [Move] 버튼을 클릭한다.

image

[그림 2-4-13] 폴더 이동


이동하기 원하는 경로를 시작 폴더 기준으로 입력하고 [Move] 버튼을 클릭한다.


image

[그림 2-4-14] 폴더 이동 경로 지정 화면


‘test_1_1’ 폴더가 ‘test_1’ 폴더 아래로 이동한 것을 확인할 수 있다.


image

[그림 2-4-15] 폴더 이동 결과



D. 폴더 삭제

폴더를 삭제하려면 삭제할 폴더 이름 앞의 체크 박스를 클릭한다. 그리고 휴지통 [Delete Selected] 버튼을 클릭한다.

image

[그림 2-4-16] 폴더 삭제하기


삭제 확인 창이 뜨면 [Delete] 버튼을 클릭하면 폴더가 삭제된다.


image

[그림 2-4-17] 폴더 삭제 확인창



4.3.2 노트북

노트북은 파이썬 프로그램 코드를 작성하고 테스트 해볼 수 있는 코드 편집창을 의미한다. 노트북을 다루는 방법에 대해 알아보자.


A. 노트북 생성

파이썬 노트북 파일을 생성하려면 [New > Python 3] 메뉴를 클릭한다.

image

[그림 2-4-18] 노트북 생성


자동으로 ‘Untitled’’ 라는 이름의 노트북 파일이 생성된다. 파일 이름을 변경하려면 상단의 파일 이름 부분을 클릭한다.


image

[그림 2-4-19] 노트북 이름 변경하기


노트북 파일명을 새로 입력하고 [Rename] 버튼을 클릭한다.


image

[그림 2-4-20] 노트북 이름 지정 화면



B. 노트북 실행

생성되어 있는 노트북을 실행하려면 목록에서 해당 노트북 파일을 클릭하면 된다. 아래 그림에서 보면 목록에서 sample_1.ipynb 파일이 있다. 노트북이 중지 중이라면 검은색 아이콘이다.

image

[그림 2-4-21] 노트북 실행하기


만일 이미 실행 중이라면 아래와 같이 초록색 아이콘이다.


image

[그림 2-4-22] 노트북 실행 중인 상태


실행 중이거나 중단된 상태거나 상관 없이 해당 노트북을 열려면 목록에서 클릭하면 된다.



C. 노트북 닫기 및 중단

열려 있는 노트북을 닫으려면 브라우저 탭에서 x자를 클릭해 닫으면 된다. 하지만 주의할 점은 창을 닫았다고 해서 해당 노트북이 중단된 것이 아니다.

image

[그림 2-4-23] 노트북 닫기


실행 중인 노트북을 확인하려면 Jupyter Notebook 메인 화면에서 [Running] 탭을 확인하면 된다. 아래 그림과 같이 Notebooks 목록에 보여지는 노트북은 커널이 실행 중이다. 해당 노트북을 완전히 종료 시키려면 [Shutdown] 버튼을 클릭한다.


image

[그림 2-4-24] 노트북 종료하기


혹은 [Files] 탭에서 중단할 노트북을 체크한 후 [Shutdown] 버튼을 클릭하면 여러 노트북을 한번에 중단 시킬 수 있다.


image

[그림 2-4-25] 노트북 여러 개 동시에 중단하기



4.3.3 셀 편집 및 실행

Jupyter Notebook은 기본적으로 셀 단위로 구성되어 있다. 아래 그림과 같이 하나의 블록을 셀이라고 한다. 셀은 코드, 마크다운, 로우 형식의 3가지로 구성된다.

  • 마크다운(Markdown): 마크다운 셀은 주석을 위한 셀로 마크다운 문법에 따라 텍스트로 문서을 작성할 수 있게 해준다. 코드셀 상단에서 설명을 추가하거나, 보고서를 위해 내용을 추가할 수 있다.

  • 코드(Code): 코드 셀은 파이썬 코드 작성을 위한 셀로 파이썬 언어의 문법 규칙을 그대로 따른다. 셀 단위로 실행하면 출력 값이 있는 경우 셀 바로 아래 부분에 실행한 결과가 출력 된다.

  • 로우 (Raw NBConvert) : Jupyter Notebook은 NBConvert 명령을 통해 작성한 노트북 파일을 다른 파일로 변환하여 출력할 수 있다. Raw NBConvert 셀에서는 LaTeX 문법으로 작성한 문법을 이해해 해당하는 출력 포맷으로 변경해서 리포트를 파일을 생성해 준다.

image

[그림 2-4-26] 셀 편집하기


Hint! NBConvert가 무엇인가?

NBConvert는 Notebook Convert의 약자로 Jupyter Notebook 파일을 다른 포맷으로 변경해 주는 기능을 말한다. 출력 가능한 포맷은 HTML, LaTeX, Markdown, PDF, reStructuredText 등 이다. NBConvert에 대한 자세한 내용은 홈페이지 (https://nbconvert.readthedocs.io/en/latest/)를 참고하시기 바란다. 셀을 편집하려면 마우스로 해당 셀의 편집 영역을 클릭하거나, 키보드로 셀 이동 후 [Enter] 키를 치면 편집 모드로 바뀐다.



A. 셀 형식 변경하기

셀 형식을 변경하려면 셀을 선택한 후 상단에 셀 유형 선택 목록을 통해 변경하면 된다.

image

[그림 2-4-27] 셀의 형식 변경하기


셀의 형식을 변경하고 나서 결과를 확인하려면 셀을 실행해야 한다. 셀을 실행하려면 셀을 선택한 후 메뉴에서 [Run] 버튼을 클릭한다. 코드 형식으로 셀을 실행하면 아래와 같이 ‘# cell format convert’ 문구는 주석으로 처리된다.


image

[그림 2-4-28] 셀을 코드형식으로 변경된 결과


셀 형식을 Markdown으로 지정하고 실행하면 다음 그림과 같이 Header 1 형식의 마크다운으로 표시된다.


image

[그림 2-4-29] 셀을 마크다운으로 변경된 결과



B. 셀 실행하기 (Run 혹은 Shift + Enter)

셀 하나를 실행하는 방법에 대해 알아보자. 아래 방법으로 셀을 실행하면 셀에 작성된 코드가 실행된다. 전체 파일의 코드가 아니라 셀 단위로 실행된다는 것을 기억하자.

  • 버튼: Run

  • 키보드: Shift + Enter


C. 모든 셀 실행하기

Notebook에 작성된 셀이 여러 개일 경우 각각 실행하기 번거로울 수 있다. 이 때 모든 셀 실행하기 기능을 이용하면 첫 번째 셀부터 마지막 셀 까지 전부 실행하게 할 수 있다.

  • 메뉴: Cell > Run All

image

[그림 2-4-30] 셀 실행 이력 번호 확인



E. 처음부터 이전 셀까지 실행하기

코드를 작성하다 보면 작성한 코드를 테스트 하기 위해 처음부터 특정 셀까지 다시 실행해 보고 싶을 때가 있다.

다음 단계로 실행한다.

  1. 실행하고 싶은 마지막 셀의 다음 셀을 선택한다. (셀 1번 ~ 셀 2번 까지 다시 실행하려면 셀 3을 선택합니다)

  2. 메뉴에서 [Cell > Run All Above]를 클릭한다.

아래 그림과 같이 2번 셀 까지만 실행된 것을 확인할 수 있다.


image

[그림 2-4-31] 셀 2번까지 실행된 결과



F. 모든 셀 다시 실행하기

노트북 파일을 처음부터 끝까지 다시 실행하고 싶을 때 이 기능을 사용한다.

  • 메뉴: [Cell > Run All] (이전 결과를 그대로 두고 다시 전체를 다시 실행)

  • 메뉴: [Kernel > Restart & Run All] (커널을 재시작하여 이전 기록을 모두 지우고 처음부터 다시 시작)

  • 버튼: [Restart the kernel, then re-run the whole notebook] (▶▶) (커널을 재시작하여 이전 기록을 모두 지우고 처음부터 다시 시작)


G. 셀 실행 중단

셀이 실행이 종료되기 전에 중단하기 위해 이 기능을 셀 실행 중단 기능을 사용한다. 경우에 따라 셀이 실행이 오래 걸리거나 문제가 있는 경우 임의로 인터럽트를 걸어 셀 실행을 중단 시킨다. 이 때 셀 실행만 중단되는 것이지 커널이 중단되는 것은 아니다.

  • 버튼: [Interrupt the kernel] (■)

  • 메뉴: [Kernel > Interrupt the kernel]


H. 하단에 셀 추가

현재 선택된 셀 하단에 새로운 셀을 추가하는 방법은 다음과 같다.

  • 버튼: [Insert cell below] (+)

  • 메뉴: [Insert > Insert Cell Below]

  • 키보드: [B] (Below)


I. 상단에 셀 추가

현재 선택된 셀 하단에 새로운 셀을 추가하는 방법은 다음과 같다.

  • 메뉴: [Insert > Insert Cell Above]

  • 키보드: [A] (Above)


J. 셀 삭제

현재 선택된 셀을 선택하는 방법은 다음과 같다. 다중 선택된 셀이라도 한 번에 삭제된다.

  • 메뉴: [Edit > Delete Cells]

  • 키보드: [DD]


4.4 Anaconda Code-in-the-cloud (무료 Jupyter Notebook)

아나콘다에서는 무료로 클라우드 상에서 무료로 사용해 볼 수 있는 도구를 제공한다. 이 도구를 사용하면 아나콘다를 설치할 필요 없이 아나콘다를 체험해보고, 파이썬 코드를 작성해 볼 수 있다. 개인 사용자는 계정을 만들면 100MB 용량, 하루 500초 고성능 컴퓨터를 사용할 수 있다. 회원 가입 만으로 웹 상에서 파이썬 코드를 학습해 볼 수 있는 환경을 무료로 사용할 수 있다.

A. 아나콘다 홈페이지로 이동

아나콘다 홈페이지(https://www.anaconda.com/)로 이동해 [Start Coding Now]를 클릭한다.

image

[그림 2-4-32] 아나콘다 홈페이지에서 Start Coding Now 이동하기


회원 가입을 진행한다.


image

[그림 2-4-33] 회원 가입하기


아래와 같이 서버를 실행하는 과정이 진행된다. 잠시 기다린다.


image

[그림 2-4-34] Code-in-the-Cloud 실행 중


시간이 지나면 아래와 같이 Jupyter Notebook 화면이 보이다. Notebook을 사용하는 방법은 앞의 내용과 같다.


image

[그림 2-4-35] Code-in-the-Cloud에서 주피터노트북 실행 화면


이제 jupyter notebook 도구가 실행되었다. 앞에서 Anaconda를 통해 PC에 설치한 Jupyter Notebook과 동일하고 사용방법도 다르지 않다. 다만 무료 서버이므로 파일 용량에 제한이 있을 수 있고, 서버가 중단되면 파일이 사라질 수 있다는 점을 기억하고, 간단한 코드를 테스트해보는 용도로 사용하면 좋을것 같다.