차세대 개발환경, jupyter lab 을 사용하자
본문 바로가기
기타 저장소/유용한 tool

차세대 개발환경, jupyter lab 을 사용하자

by _HEBB 2020. 2. 19.

jupyter lab

점점 강력해지고 진화하는 주피터 랩.
이제는 주피터 노트북 말고 주피터 랩을 사용하자

다 아는 주피터 노트북

코딩을 하는 누구라도 자신이 선호하는 툴과 컴파일러가 있다. c 언어 계열 언어를 사용자들은 주로 visual studio 를 사용하고 파이썬 사용자는 파이참, vs code 등을 많이 사용한다. 하지만 이 IDE(통합개발환경) 들은 꽤나 무겁고 용량도 많이 차지한다. pc 의 성능이 좋지않으면 이 프로그램을 켜는데도 제법 시간이 걸린다. 특히 파이썬을 사용한다면 빨리 작성하고 빨리 확인 해보고싶을때 답답하지 않을수가 없다. 그런 와중에 최근에 빛을 발하고 있는 개발환경이 있으니, 바로 jupyter notebook 이다. ipython notebook 기반으로 만들어진 에디터인데 장점이 몇가지가 있다. 우선 cell 단위로 실행을 할 수가 있어서 짧은 코드를 테스트 할때 편리하다. 그리고 어디부분에서 에러가 났는지 쉽게 확인할 수가 있다. 다른 장점은 무거운 ide 가 필요없다는 점이다. jupyter 커널을 열고 웹브라우저를 열면 바로 작성할 수 있는 환경이 된다. 자주쓰는 브라우저에 개발환경이 나오면 친숙함도 더해진다. (크롬 단축기 사용하는것은 주의해야한다. )

주피터 노트북은 특히 데이터 과학, 머신러닝, 딥러닝 프로젝트할 때 많이 사용되는 개발환경이다. 최근에 이 분야들이 활발하게 연구되고 있어서 연구실, 학교, 회사 등에서 주피터에 대한 많은 수요가 있다. 주피터는 데이터 과학 패키지로 유명한 아나콘다를 설치하면 함께 설치가 된다. 당연히 무료고 수많은 튜토리얼도 존재한다. 구글 colab 에선 이 노트북파일을 직접 클라우드에서 돌리는것이 가능할 정도로 호환성도 매우 높다. 사실, 이젠 주피터 노트북을 모르는 사람은 별로 없다. 그런데 주피터 노트북보다 이쁘고 더 좋은 주피터 랩은 아직 많이 모르는것 같다.

왜 주피터 랩을 사용해야 하는가?

랩은 주피터 노트북을 기반으로 만들어진 프로젝트다. 이름에서 알 수 있듯이 작은 연구실 같이 다양한 기능을 제공한다. 프로젝트를 수행하는데 적합한 개발환경이다. 기능을 보면 노트북보다 훨씬 유용하다는것을 알 수 있다. 나는 주피터 랩만 사용한다.

기존의 노트북은 탭 하나당 하나의 노트북 파일(.ipynb) 만을 열 수 있었다면 랩은 다중 창 지원, 다중창에서 이미지와 csv 파일, pdf 까지 열 수 있다. 모니터가 충분히 넓다면 그래프도 띄우고 표와 이미지를 함께 보며 여러개의 스크립트를 동시에 띄우고 사용할 수 있다. 번거롭게 탭을 이동해가며 볼 필요없이 대시보드처럼 사용할 수 있다는 것이 큰 장점이다.

또한 노트북과는 다르게 새로운 브라우저 탭을 열지않고 디렉토리를 확인하고 생성 수정 삭제를 할 수 있다. 왼쪽에 작은 메뉴로 되어있는데 펼치면 디렉토리를 볼 수 있다. 하나의 브라우져 탭에서 거의 모든 작업을 할 수 있는 장점이 있다.

주피터 랩은 노트북보다 더 심플하고 이쁘다. 투박해보이지만 심플한것이 상당히 매력적이다. 특히 다크테마를 사용했을 때 더 멋있게 느껴진다. 스크롤바도 다크하게 꾸미면 더 완성도가 느껴진다. 여담이지만 이게 무슨 프로그램이냐고 물어보고 환경을 갈아탄 사람이 꽤 있었다. 추가로 F11 을 눌러 전체화면으로 보면 어디가도 꿇리지않는 비쥬얼을 느낄 수 있다.

주피터 랩 잘 쓰기

주피터 랩을 잘 쓰려면 다양한 기능을 사용할 수 있어야 한다. 알면 생산성이 극대화되는 기능 및 단축기를 소개한다. 노트북의 단축기와 중북되는것이 많다. 모르고 있는 사람이 많아서 공유하면 도움이 많이 될 것 같다. 내가 실제로 주로 사용하는 기능들인데 정말 편하다. 마우스가 필요없을 정도로 숙달되면 키보드를 두드리는 재미를 느낄 수 있다.

  • 이동 : 위 아래 화살표(커서가 셀 밖에 있어야 함!)

  • cell 탈출 : esc

  • 셀 이동 : 드래그 앤 드랍

  • 셀 생성 : a 선택한 cell 위에 새로운 cell 생성 b 선택한 cell 밑에 새로운 cell 생성

  • 셀 제거 : d x 2

  • 셀 복사 : c

  • 셀 붙여넣기 : v

  • 셀 병합 : shift + m

  • 셀 분리 : ctrl + shith + -

  • 멀티커서 : ctrl 누른 채로 여러군데 클릭

  • 사각형 영역 선택 : alt 누른 채로 드래그

  • 탐색 : ctrl + f

  • word 단위 이동 : ctrl 누른 채로 좌우 방향키

  • word 단위 선택 : ctrl + shift 누른 채로 좌우 방향키

  • word 단위 삭제 : ctrl 누른 채로 backspace 또는 del

  • 특정 라인으로 이동 : 하단의 Line 에 line 번호 입력

  • 새 탭 : 아래 표시된 곳을 우클릭 - new view for notebook 클릭

  • docstring 확인 : 궁금한 메서드 / 클래스에 커서로 선택한 후 shift + tab

  • 매직 명령어 - % cell 에서 붙이고 사용. 각종 편리기능들이 있다.
    매직 명령어로 텐서보드를 주피터 랩 안에서 띄울 수 있다!

  • 터미널 및 콘솔 환경작업 - 터미널을 따로 열 필요 없이 주피터에서 터미널 환경에서 작업할 수 있다.

  • 확장 기능 프로그램 : 좌측 메뉴에 퍼즐 모양 아이콘 클릭

  • 파일 export : 상단 메뉴에 - 서 원하는 파일포맷으로 export

설치방법 및 실행

만약 아나콘다를 설치했다면 랩은 노트북과 함께 설치된다. 아나콘다 프롬프트에서 jupyter notebook 을 쳐서 커널을 열고 크롬을 켜서 localhost 주소를 치는것이 가장 빠른 실행법이다. 뒤에 /lab 을 꼭 붙여줘야만 주피터 랩을 사용할 수 있다. http://localhost:8888/lab

나는 위 사진처럼 주피터 커널을 여는 프롬프트 창을 아예 작업표시줄에 고정시켜놓고 쓴다. 이러면 다른 실행파일처럼 클릭만 하면 명령어를 칠 필요 없이 그냥 커널이 열린다. 그 다음에 크롬만 열면된다. 만약 아나콘다 설치없이 그냥 주피터만 쓰고 싶다면 pip 로 간단히 설치하면 된다.

pip install jupyterlab

그리고 터미널을 열고 주피터를 치고 커널을 열면된다.

아쉬운점

장점만 있는것은 아니다. 가장 아쉬웠던 부분은 소스 네비게이션 기능이 없다는 점이었다. 어떤 파일의 어떤 부분에 정의되어있는 클래스인지 확인하는것이 조금 번거러울수도 있다고 생각한다.

+ 글을 쓰다가 확장 기능에 이 네비게이션을 할 수 있는 프로그램을 설치할 수 있음을 확인했다. 랩에서도 코드 네비게이션을 할 수 있다. 웹기반으로 만들어져서 그런지 별의별 확장프로그램을 만들고 설치할 수 있다.

주피터 랩을 적극 사용해보자

주피터 재단에서 언젠가 주피터 노트북을 주피터 랩이 완전히 대체하도록 만든다고 했다. 즉 주피터 노트북은 사라질 가능성이 있다는 말이다. 노트북을 사용하고 있는 사람들은 지금부터 랩을 사용하는 것이 더 현명할 수도 있다.

가볍지만 강력한 기능을 바라는 개발자들, 비주얼적으로 심플하고 깔끔한 환경을 찾는 개발자들, 특히 머신러닝 연구나 프로젝트 하는 분들에게 주피터 랩을 적극 추천하며 마친다.

댓글