주피터 노트북 익스텐션을 활용하여 생산성 높이기

주피터 노트북 익스텐션을 활용하여 생산성 높이기

2019, Jan 08    
jupyter_extensions

주피터 노트북 익스텐션을 활용하여 생산성 높이기

by JunPyo Park

Reference


Medium에 올라온 주피터 노트북 익스텐션에 관련된 글을 번역하여 정리해 보았습니다. 설치하는 방법과 몇가지 기능들에 대해 살펴보도록 하겠습니다.

설치하기

터미널에 다음과 같이 입력하여 주피터 노트북 익스텐션을 설치합니다.

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

주피터 노트북 Home 화면에서 위와 같이 Nbextensions 탭이 생성된것을 확인할 수 있습니다.

확장탭이 보이지 않는다면 Edit > nbextensions config 에 들어가서 설정이 가능합니다. 설치가 정상적으로 완료되었다면 노트북을 실행하였을 때 다음과 같은 툴바가 생성됨을 확인할 수 있습니다.

주피터 노트북 익스텐션은 자바스크립트를 활용하여 만들어졌으며 현재 주피터 Lab에서는 지원되지 않습니다.

추천 기능들 5가지

Table of Conents: 마크다운 헤더 수준에 따른 목차 생성

주피터 노트북 작업시 셀이 많아지다 보면 특정 셀을 찾을때 어려움을 겪게 됩니다. Table of Contents 기능을 활용하여 이런 문제를 해결할 수 있습니다. 이 기능을 사용하면 아래 사진과 같이 마크 다운 헤더 수준에 따라 자동으로 목차를 만들어서 띄워줍니다. 목차 클릭을 통해 해당 위치의 셀로 바로 이동이 가능합니다.

만들어진 목차를 다음과 같이 셀에 삽입이 가능합니다. 본 게시글의 'Table of Contents' 항목이 이 기능을 통해 만들어진 것입니다.

Autopep8: 자동 코드정리기능( PEP 8 스타일 가이드 적용 )

복잡한 문제를 해결하다보면 코드가 지저분해지는 경우가 많은데 망치모양 버튼을 클릭하면 PEP 8 스타일 가이드에 맞게 코드를 자동으로 정리해 줍니다.

Variable inspector: 변수들을 트래킹 하는 익스텐션

Variable inspector를 사용하여 노트북 상에서 생성된 변수와 그 값들(type, size, shape 등)을 트래킹 할 수 있습니다.

변수 확인을 위해 print(x), type(x), len(x), df.shape 이런 명령어들을 자주 사용하셨다면 이제는 그럴필요가 없습니다.

ExecuteTime: 셀이 돌아가는 시간 측정

어떤 알고리즘이 더 소비되는 시간이 적은지 또는 특정 셀이 돌아가는 시간을 측정하고 싶을때 이 익스텐션을 유용하게 활용가능합니다. 셀이 작업을 마친 시간과 돌아가는데 걸린 시간을 측정하여 다음과 같이 조그만 글씨로 표시하여 줍니다.

셀 마다 %%timeit과 같은 매직메서드를 입력할 필요가 없어 편리합니다.

Hide Code input: 코드부분을 숨기고 결과만 보여줍니다.

지저분하게 널려있는 코드를 보기 싫은 사람들을 위한 익스텐션입니다. 다음과 같이 클릭을 통해 띄워진 코드들을 숨기고 출력된 결과물만 볼 수 있습니다.

이상 몇가지 익스텐션 기능들에 대해 살펴보았습니다. 개인적으로 유용하게 사용하는 것들을 정리하였으며 전체 익스텐션 리스트 및 자세한 설명은 Nbextensions 설정창에서 확인하실 수 있습니다. 둘러 보면서 본인에 맞는 익스텐션들을 활용하면 되겠습니다. 감사합니다!