원래 보통 분석할 때 Jupyter Notebook에서 많이 진행했다.

 

새로운 프로젝트를 진행하면서 VSCode를 처음 사용해 봤는데, 

프로젝트 디렉토리 관리, Extensions를 통한 편의성 등이 비교도 안되게 편했다.

 

다만, 로컬PC에 있는 VSCode 작업공간 내에서 .ipynb 파일을 생성해서 작업하는 것은 가능했지만,

개발 서버에 존재하는 docker container 안에 있는 jupyter notebook을 파이썬 인터프리터로 사용하지 못해

개발 서버에서 테스트하기가 어려웠다.

 

그래서 찾아보니 VScode에는 "Connect to a remote Jupyter Server" 기능이 존재한다. **참고1

여기에 실행 중인 Jupyter Notebook 주소를 넣으면 해당 인터프리터 내에 존재하는 파이썬 커널 사용이 가능하다.

(처음에 F1 단축키 누른 후,  "Notebook: Select Notebook Kernel" 선택하면 다음 버튼으로 선택 가능하다.) **참고2

 

 

※ "Connect to a remote Jupyter Server" 기능은 VScode 내에 python (또는 jupyter) Extension이

    설치되어 있어야 보이는 것 같다. 

 

※ 로컬 PC에 Docker Desktop을 설치하면 Extension을 활용해서 진행할 수 있다는 의견이 있었으나,

    라이선스 이슈가 걸려서 실행하지 않았다.

 

**참고

1. https://code.visualstudio.com/docs/datascience/notebooks-web#_connect-to-a-remote-jupyter-server

 

Jupyter Notebooks on the web

Working with Jupyter notebooks on the web with Visual Studio Code.

code.visualstudio.com

2. https://code.visualstudio.com/docs/datascience/jupyter-notebooks#_connect-to-a-remote-jupyter-server

 

Working with Jupyter Notebooks in Visual Studio Code

Working with Jupyter Notebooks in Visual Studio Code.

code.visualstudio.com

 

데이터를 분석하거나 모델링 하는 업무는 어떤 언어, 어떤 개발환경(IDE)를 사용하던지 핵심에는 차이가 없다.

파이썬은 입문 난이도 및 확장성을 고려했을 때 가장 효율적인 언어이다.

 

서비스에 모델 결과를 제공하기 위해서는 .py 스크립트로 작성하지만,

코드 한줄 한줄마다의 결과를 관찰하며 모니터링 하기엔 주피터 노트북을 사용하는 것이 효율적이다.

(jupyter notebook 또는 jupyter lab)

 

주피터 노트북에서 분석한 결과는 해당 노트북 파일의 링크를 바로 공유할 수도 있고,

내보내기를 통해서 다양한 파일 포맷으로 다운받을 수 있다. (pdf, html, slide 등)

 

nbconvert와 RISE 패키지는 이러한 변환 or 노트북 환경에서의 슬라이드쇼 보기를 지원한다.

- nbconvert : .ipynb 노트북 파일을 HTML, LaTeX, PDF, 마크다운 등 정적인 포맷 파일로 전환

- RISE : 즉각적으로 주피터 노트북을 슬라이드쇼 형태로 보기 (Reveal.js - Jupyter/IPython Slideshow Extension)

Primarily, the nbconvert tool allows you to convert a Jupyter .ipynb notebook document file into another static format including HTML, LaTeX, PDF, Markdown, reStructuredText, and more. 
nbconvert can also add productivity to your workflow when used to execute notebooks programmatically.

With RISE, a Jupyter notebook extension, you can instantly turn your jupyter notebook into a live reveal.js-based presentation.

 

plotly로 분석결과를 시각화 했을 때 인터랙티브한 그래프를 손쉽게 그릴 수 있다.

이 때 pdf 파일로 출력하는 경우 해당 기능을 출력물에서 온전히 사용하기 어렵다.

 

슬라이드 타입은 PPT 같은 느낌을 줄 수 있으나,

이를 위한 사이즈 조정, 포매팅 작업이 더 손이 많이 간다고 판단했다.

 

따라서 HTML 파일로 출력하고자 했고,

jupyter notebook 내에 download 기능은 설치오류가 있어서 

서버 커맨드 라인에서 pip install을 통해 nbconvert를 설치하고,

커맨드라인 명령어를 통해서 파일을 생성했다.

 

최종 결과 코드는 아래와 같다.

--execute 명령어를 입력하지 않으면 plotly 그래프 결과물이 보이지 않는다.

--no-input 명령어를 입력하면 input으로 들어가는 코드 부분이 출력되지 않아 결과만 깔끔하게 볼 수 있다.

jupyter nbconvert --to html --execute --no-input /work_dir/temp.ipynb
# --execute : 실행
# --no-input : 코드 없이

 

 

 

 

[참고]

 - nbconvert: Convert Notebooks to other formats — nbconvert 7.2.10 documentation

 - RISE — RISE 5.7.1

최초에 블로그에 글을 쓰기로 한 것은 취업 포트폴리오를 정리하기 위한 목적이었다.

하지만 뭔가 공부한 내용을 깔끔하게 정리하지 못했고,

공모전 수상이라던가 하는 거창한 성과가 없었기에 블로그는 그저 애매한 낙서장처럼 되었다.

그리고 시간이 많이 지났다.

 

다시금 글을 쓰려는 이유는 글쓰는 능력을 기르는 것이 중요하고,

기록되고 기억되지 않는 하루는 사실 없었던 하루가 아닐까 하는 두려움 때문이다.

 

어떤 방식으로든 내 생각을 정리하고 표현하는 능력을 길러야한다.

가장 좋은 연습 방법은 내가 경험하고 깨닳은 내용을 글로 쓰는 것이다.

 

또한 지나간 하루하루는 저마다 강한 생명력을 가지지 않는다.

그래서 우리는 특별한 일 없이 지나간 하루를 기억하지 못한채 계속 다가오는 내일을 맞이한다.

오늘의 나는 과거 하루하루 있었던 경험과 생각의 결과물이니,

그저 가만히 흘러만 가는 하루는 어쩌면 오늘의 나에게 도움되지 못하는 버려진 하루가 되는게 아닐까?

그래서 하루를 정리하고, 생각하고 고민한 내용들을 정리하기 위해서 또 기록하려고 한다.

 

그래서 다시 블로그를 시작하려고 한다.

양질의 글을 써낼 재주도, 시간도 없다.

단지 오늘 회사에서 일하며 해결했던 문제들, 오늘 고민한 생각들을 자연스레 써내려 갈 예정이다.

 

이 또한 오래가지 않을 수 있지만

지금 당장 필요하다고 생각되는 일을, 

당장 오늘부터 작게라도 실천할 수 있는 사람이 된 것에 감사하며 글을 마친다.

+ Recent posts