파이썬 코딩, 주피터노트북으로 본격 시작(1)
업데이트:
주피터 노트북 맛보기
지난 포스팅(링크)에서 아나콘다(Anaconda) 파이썬 배포판을 함께 설치해보면서 주피터노트북(Jupyter Notebook)에 대해서도 잠깐 언급했다. 앞으로 이 블로그에서 소개할 대부분의 파이썬 코딩은 주피터노트북을 통해 진행할 예정이다. 이번 포스팅에서는 기초 사용법에 대해 살펴보고, 추후 다양한 기능들에 대한 별도의 포스팅을 마련할 생각이다.
1) 주피터 노트북 실행하기
아나콘다 설치를 마쳤다면 아래와 같은 시작메뉴 그룹(Anaconda3 64-bit)에서 주피터노트북 실행 아이콘을 확인할 수 있다.
윈도우 시작메뉴에서 주피터노트북을 클릭하자 |
클릭하면 검정색 바탕에 흰 글씨로 채워진 새창이 아래처럼 나타나고, 뒤이어 각자가 사용하는 기본 웹브라우저(크롬,익스플로러 등)의 새창 또는 새탭이 하나 열린다.
주피터노트북 실행 정보 |
웹브라우저 상에 뜬 주피터노트북 초기화면 |
지난번 포스팅에서 살펴봤던 스파이더(Spyder) 같은 일반 IDE와는 달리, 주피터노트북은 웹 기반 개발환경이라는 점이 특징이다.
하지만 이는 웹브라우저 상에서 코딩을 하는 어플리케이션일 뿐, 인터넷 연결이 굳이 필요하지는 않다. 각자의 PC 설치된
파이썬 인터프리터와 라이브러리를 기초로 하기 때문이다. 웹브라우저에 뜬 주피터노트북 초기화면의 url 주소를 보면 http://localhost:8888/
이라고 나와 있다. 실제 인터넷 상의 어떤 주소가 아니라 로컬(본인 PC)에서 생성한 주소인 것으로, 보여지는 페이지 역시
로컬에서 만들어진 것을 웹브라우저에 띄운 것이다.
주피터노트북 초기 화면에는 윈도우 탐색기 같은 폴더 구조가 나타난다. 최상위 폴더가 구체적으로 어느 위치인지 확인하기
어려운데, 보통 C:\Users\사용자계정명
으로 설정돼있다(‘사용자계정명’은 현재 자신이 사용하는 윈도우 계정의 이름).
[참고] 자동으로 주피터노트북의 새창이나 새탭이 열리지 않을 때
경우에 따라 주피터노트북 탭(창)이 자동으로 열리지 않는 경우가 있다. 앞서 검정바탕의 ‘Jupyter Notebook (Anaconda3)’라는 제목의 창이 띄워져있다면, 일단 로컬 서버는 생성된 것이다. 그 창에 제일 마지막 줄의or
다음에 있는http:// ~~~
로 시작하는 주소를 마지막 글자까지 복사(Ctrl+C)하자. 웹브라우저에 빈 탭을 하나 열어서 붙여넣은 뒤 엔터를 치면, 위와 똑같은 주피터노트북 초기화면이 뜰 것이다. (이 방법을 쓰면 인터넷 연결이 제한된 사내망에서도 문제없이 돌아간다!)
폴더 구조에서 Desktop
이라는 이름의 폴더가 바로 우리가 사용하는 [바탕화면]이다. 바탕화면에 python1 이라는 이름의
새폴더를 하나 만들어두고, 주피터노트북에서 초기화면 -> Desktop -> python1 으로 순차적으로 클릭해 들어가자.
주피터노트북에서 [바탕화면]의 python1 폴더로 진입한 모습 |
이제 python1 폴더는 우리의 첫 코딩을 시작하는 ‘프로젝트 폴더’가 된다. 우측 상단에 [New] -> [Python3] 버튼을 차례로 누르면, 새탭이 열리면서 아래와 같은 파이썬 코드 편집화면이 나타난다.
드디어 본격 코딩할 준비가 되었다! |
주피터노트북에서 파이썬 코드 파일을 새로 만들면 기본 이름이 ‘Untitled’로 뜬다. 해당 부분을 클릭하면 파일 이름을 수정할 수 있다. ‘Example1’ 이라고 입력한 다음, 초기화면 탭으로 돌아와 새로고침(F5키)해주면 ‘Example1.ipynb’ 라는 파일이 생성되어 있다. 이제 본격적으로 코딩을 할 준비가 되었다!
2) 주피터노트북의 입출력 방식
편집화면에서 커서가 깜빡이고 있는 박스의 좌측에는 In [ ] :
이라는 표시가 있다. 이는 앞선 포스팅(링크)에서
보았던 파이썬 콘솔(Console) 창에서의 입력 프롬프트와 동일한 것이다. 주피터노트북에서 코드를 입력하는 기본 단위인
이 네모칸을 셀(cell)이라고 한다. 코드 실행 후 입력 프롬프트의 [ ]
안에 나타나는 숫자는 각 셀의 실행 순서를
의미한다.
주피터노트북의 코드 작성 및 실행 방식은 앞서 설명했던 레플(REPL) 방식을 기본으로 한다. 입력한 명령을 실행하면 곧바로 이에 대한 결과를 출력해준다. 이는 파이썬 콘솔에서와 동일한 방식이지만, 차이가 있다면 명령의 입력이 한줄 단위가 아니라 셀 단위로 이뤄진다는 것이다. 하나의 셀에는 여러 줄의 코드를 한번에 입력하고 실행할 수 있다. 말하자면 셀 단위 입출력 구조에서는 레플(REPL) 방식으로, 각각의 셀 내부에서는 스크립트(Script) 실행 방식으로 코딩이 이뤄지는 셈이다.
아래와 같이 직접 코드를 입력하고 실행해보자. 첫번째 셀에서 a = 1
을 입력한 후 Shift + Enter
키를 치면, 해당
셀의 내용을 실행한 후 다음 셀을 생성한다. 같은 방식으로 네번째 셀까지 진행하자.
예시 코드 |
- 첫번째 셀에서는 출력(Out)이 없다. 단순히 변수의 값을 할당했기 때문이다.
- 두번째 셀에서는 b와 c 변수의 값을 할당한 후, 마지막 줄에서 c만 입력하고 실행했다. 그 결과 변수 c의 값인 3이 출력(Out)되었다. 변수명 입력시 그 값이 바로 출력되는 것은 레플(REPL) 방식의 특징이며, 스크립트 실행 방식에서는 작동하지 않는다. 주피터노트북 역시 기본적으로는 레플 방식이기 때문에 변수명 입력을 통한 변수 값 출력이 가능하다.
- 세번째 셀에서 변수 d의 값은 출력되었으나 변수 c의 값은 출력되지 않았다. 주피터노트북에서 변수명 입력을 통한 변수 값 출력은 항상 셀의 마지막 줄에서만 가능하다. 앞서 설명했듯 각각의 셀은 하나의 스크립트로 인식되기 때문에 마지막 줄이 아닌 곳에서는 변수명을 입력하더라도 값 출력으로 이어지지 않는다.
- 네번째 셀에서는 변수 c와 d의 값이 각각 출력이 되었다. 스크립트 실행 방식으로 코딩을 할 때, 코드가 실행되는 과정에서
중간에 값을 출력하려면 반드시
print(변수명)
명령을 사용해야 한다. 변수 c는 스크립트 실행 방식으로, 변수 d는 레플 방식으로 값이 출력된 것이다.
3) 주피터노트북의 장점
이와 같이 레플 방식과 스크립트 실행 방식이 적절하게 결합돼있는 입출력 방식이 주피터노트북 활용의 중요한 이점이다. 구체적으로 말하자면 다음과 같다.
-
스크립트 방식으로 코딩을 하다보면 중간 진행 결과를 확인해야할 필요가 있다. 일반 IDE에서 디버깅(debugging)이라는 기능을 활용할 수 있지만, 비개발자인 회사원들에게는 다소 어려울 수 있다. 주피터노트북에서 셀 단위로 코드 조각들을 입력하고 각 결과를 확인하면서 코딩을 진행한 뒤에, 완성된 코드 조각들을 모아서 스크립트(코드파일, .py)를 만드는 식으로 코딩을 진행하면 편리하다.
-
아래 그림과 같이 주피터노트북은 작성한 코드와 시각화된 결과(표, 그래프 등)들을 한 곳에 모아 차례대로 보여주고 공유하는 것이 가능하다. 파이참, 스파이더와 같은 IDE에서는 시각화 결과들을 별도의 창으로 띄워주는 반면, 주피터노트북은 마치 보고서와 같은 형태로 코드와 나란히 보여준다. 다음 절에서 설명할 ‘마크다운(markdown)’ 기능을 사용하면 설명 텍스트도 예쁘게 붙여넣을 수 있다. 이런 이유로 파이썬을 활용한 ‘(빅)데이터 분석’ 분야에서는 주피터노트북을 주로 사용한다.
텍스트, 코드, 표/그래프를 한 번에 보여줄 수 있다 |
댓글남기기