2019.03.08

쉽게 간편한 데이터 분석에 안성맞춤 '주피터 노트북'이란?

Serdar Yegulalp | InfoWorld


주피터 노트북의 구성요소
주피터 노트북에는 여러 종류의 구성 요소를 포함할 수 있다. 이는 각각 다음과 같은 별도의 블록으로 구성된다.

• 텍스트 및 HTML. 문서 아무 데나 일반 텍스트(아니면 HTML 생성을 위해 마크다운 구문으로 주석을 단 텍스트)를 삽입할 수 있다. CSS 스타일링 역시 그때그때 포함하거나, 노트북 생성에 사용되는 템플릿에 추가할 수 있다.
• 코드 및 출력물. 주피터 노트북 내 코드는 주로 파이썬 코드지만, R이나 줄리아 같은 다른 언어 지원 기능을 사용자의 주피터 환경에 추가할 수 있다. 실행된 코드의 결과는 코드 블록 바로 뒤에 나타난다. 그리고 코드 블록은 원하는 순서대로 실행 가능하고 몇 번이고 다시 실행할 수 있다. 
• 시각화. 그래픽과 차트는 맷플롯립(Matplotlib), 플로틀리(Plotly), 보케(Bokeh)와 같은 모듈을 통해 코드로부터 생성할 수 있다. 출력물과 마찬가지로, 이들 시각화는 이를 생성한 코드 옆에 그때그때 표시된다. 단, 필요할 때 외부 파일에 따로 작성되도록 코드를 구성할 수도 있다.
• 멀티미디어. 주피터 노트북은 웹 기술로 구축되었기 때문에 웹 페이지에서 지원되는 각종 멀티미디어를 모두 표시할 수 있다. 노트북에 HTML 요소로 포함시킬 수도 있고 IPython.display 모듈을 통해 프로그램에 따라 생성시킬 수도 있다.
• 데이터. 데이터는 주피터 노트북을 구성하는 .ipynb 파일과 나란히 별도의 파일로 제공되거나 프로그램에 따라 내보내기도 가능하다. 예를 들면, 노트북에 코드를 포함해 공용 인터넷 저장소로부터 데이터를 다운로드 하거나 데이터베이스 연결을 통해 데이터에 접근하는 방식이다.

주피터 노트북의 활용 사례
주피터 노트북이 가장 흔하게 사용되는 곳은 데이터나 공식의 시각화가 필요한 데이터 과학, 수학 등의 연구 프로젝트다. 이 밖에도 다음과 같은 다양한 활용 사례가 있다.

• 대화형 기능 불문 시각화 공유. 사람들은 데이터 시각화 결과를 정지 이미지로 공유하는 경우가 많은데 이 방식이 유용한 것은 어느 정도까지만 그렇다. 주피터 노트북을 공유하면 사용자의 참여를 유도할 수 있다. 사용자는 대화형 방식을 통해 데이터를 철저하게 파악할 수 있다.
• 코드로 과정 기록. 프로그래밍 경험담 블로그를 운영하는 프로그래머 중에는 주피터 노트북으로 게시물을 작성하는 경우가 많다. 다른 사람들은 자신의 노트북을 다운로드 해서 해당 내용을 재현해 볼 수 있다.
• 라이브러리나 모듈을 위한 실시간 기록. 파이썬 모듈에 대한 대부분 기록은 고정적이다. 주피터 노트북은 특정 모듈의 작동 방식을 배우기 위한 대화형 학습 도구로 활용할 수 있다. 노트북 인터페이스에서 무난하게 작동하기만 한다면 어떤 파이썬 모듈이라도 가능하다. (즉, 동작의 일환으로 stdout에 작성되는 것이면 된다.)
• 코드 및 데이터의 일반적인 공유. 주피터 노트북과 관련 데이터 파일을 공유하려면 보관소에 옮겨 넣기만 하면 된다.

주피터 노트북의 한계점
이처럼 강력하고 유용한 주피터 노트북에도 다음과 같이 감안해야 할 한계점이 없지 않다.

• 노트북이 자립적이지 않다. 주피터 노트북 사용에 가장 큰 한 가지 단점이 이것이다. 노트북은 사용하고자 하는 모든 라이브러리와 더불어 주피터 런타임을 요구한다. 자립적 주피터 노트북을 만들기 위한 몇 가지 전략이 존재하지만, 그 중에 공식적으로 지원되는 것은 없다. 노트북을 실행할 수 있는 인프라를 이미 구비하고 있거나 설정에 신경 쓰지 않는 사람에게 노트북을 (예를 들면 아나콘다(Anaconda)를 통해) 배포하는 편이 가장 낫다.
• 세션 상태를 쉽게 저장할 수 없다. 주피터 노트북에서 실행되는 모든 코드는 그 상태를 주피터 노트북의 기본 도구모음으로는 보존하고 복원할 수 없다. 노트북을 불러올 때마다 노트북에서 코드를 다시 실행해야만 그 상태를 복원시킬 수 있다.
• 대화형 디버깅 등 IDE 기능이 없다. 주피터 노트북은 본격적인 파이썬용 개발 환경이 아니다. IDE에 있어야 할 기능(예: 대화형 디버깅, 코드 완성, 모듈 관리) 중 많은 부분이 없다.
ciokr@idg.co.kr




2019.03.08

쉽게 간편한 데이터 분석에 안성맞춤 '주피터 노트북'이란?

Serdar Yegulalp | InfoWorld


주피터 노트북의 구성요소
주피터 노트북에는 여러 종류의 구성 요소를 포함할 수 있다. 이는 각각 다음과 같은 별도의 블록으로 구성된다.

• 텍스트 및 HTML. 문서 아무 데나 일반 텍스트(아니면 HTML 생성을 위해 마크다운 구문으로 주석을 단 텍스트)를 삽입할 수 있다. CSS 스타일링 역시 그때그때 포함하거나, 노트북 생성에 사용되는 템플릿에 추가할 수 있다.
• 코드 및 출력물. 주피터 노트북 내 코드는 주로 파이썬 코드지만, R이나 줄리아 같은 다른 언어 지원 기능을 사용자의 주피터 환경에 추가할 수 있다. 실행된 코드의 결과는 코드 블록 바로 뒤에 나타난다. 그리고 코드 블록은 원하는 순서대로 실행 가능하고 몇 번이고 다시 실행할 수 있다. 
• 시각화. 그래픽과 차트는 맷플롯립(Matplotlib), 플로틀리(Plotly), 보케(Bokeh)와 같은 모듈을 통해 코드로부터 생성할 수 있다. 출력물과 마찬가지로, 이들 시각화는 이를 생성한 코드 옆에 그때그때 표시된다. 단, 필요할 때 외부 파일에 따로 작성되도록 코드를 구성할 수도 있다.
• 멀티미디어. 주피터 노트북은 웹 기술로 구축되었기 때문에 웹 페이지에서 지원되는 각종 멀티미디어를 모두 표시할 수 있다. 노트북에 HTML 요소로 포함시킬 수도 있고 IPython.display 모듈을 통해 프로그램에 따라 생성시킬 수도 있다.
• 데이터. 데이터는 주피터 노트북을 구성하는 .ipynb 파일과 나란히 별도의 파일로 제공되거나 프로그램에 따라 내보내기도 가능하다. 예를 들면, 노트북에 코드를 포함해 공용 인터넷 저장소로부터 데이터를 다운로드 하거나 데이터베이스 연결을 통해 데이터에 접근하는 방식이다.

주피터 노트북의 활용 사례
주피터 노트북이 가장 흔하게 사용되는 곳은 데이터나 공식의 시각화가 필요한 데이터 과학, 수학 등의 연구 프로젝트다. 이 밖에도 다음과 같은 다양한 활용 사례가 있다.

• 대화형 기능 불문 시각화 공유. 사람들은 데이터 시각화 결과를 정지 이미지로 공유하는 경우가 많은데 이 방식이 유용한 것은 어느 정도까지만 그렇다. 주피터 노트북을 공유하면 사용자의 참여를 유도할 수 있다. 사용자는 대화형 방식을 통해 데이터를 철저하게 파악할 수 있다.
• 코드로 과정 기록. 프로그래밍 경험담 블로그를 운영하는 프로그래머 중에는 주피터 노트북으로 게시물을 작성하는 경우가 많다. 다른 사람들은 자신의 노트북을 다운로드 해서 해당 내용을 재현해 볼 수 있다.
• 라이브러리나 모듈을 위한 실시간 기록. 파이썬 모듈에 대한 대부분 기록은 고정적이다. 주피터 노트북은 특정 모듈의 작동 방식을 배우기 위한 대화형 학습 도구로 활용할 수 있다. 노트북 인터페이스에서 무난하게 작동하기만 한다면 어떤 파이썬 모듈이라도 가능하다. (즉, 동작의 일환으로 stdout에 작성되는 것이면 된다.)
• 코드 및 데이터의 일반적인 공유. 주피터 노트북과 관련 데이터 파일을 공유하려면 보관소에 옮겨 넣기만 하면 된다.

주피터 노트북의 한계점
이처럼 강력하고 유용한 주피터 노트북에도 다음과 같이 감안해야 할 한계점이 없지 않다.

• 노트북이 자립적이지 않다. 주피터 노트북 사용에 가장 큰 한 가지 단점이 이것이다. 노트북은 사용하고자 하는 모든 라이브러리와 더불어 주피터 런타임을 요구한다. 자립적 주피터 노트북을 만들기 위한 몇 가지 전략이 존재하지만, 그 중에 공식적으로 지원되는 것은 없다. 노트북을 실행할 수 있는 인프라를 이미 구비하고 있거나 설정에 신경 쓰지 않는 사람에게 노트북을 (예를 들면 아나콘다(Anaconda)를 통해) 배포하는 편이 가장 낫다.
• 세션 상태를 쉽게 저장할 수 없다. 주피터 노트북에서 실행되는 모든 코드는 그 상태를 주피터 노트북의 기본 도구모음으로는 보존하고 복원할 수 없다. 노트북을 불러올 때마다 노트북에서 코드를 다시 실행해야만 그 상태를 복원시킬 수 있다.
• 대화형 디버깅 등 IDE 기능이 없다. 주피터 노트북은 본격적인 파이썬용 개발 환경이 아니다. IDE에 있어야 할 기능(예: 대화형 디버깅, 코드 완성, 모듈 관리) 중 많은 부분이 없다.
ciokr@idg.co.kr


X