본문 바로가기
AI/자연어처리

[생활속의 IT] 자연어 처리 - 참고) Jupyter의 개념

by 생활속의 IT램프 2020. 3. 22.

파이썬을 이용하여 개발할 때 주피터를 이용하는 경우가 많습니다.

본 포스트에서는 자연어 처리 프로젝트를 하기 전에 Jupyter에 대한 개념을 잡고 가겠습니다.

 

1. Jupyter란?

 

2. 가상환경과 jupyter 연결하기

1. Jupyter란?

Jupyter의 동작 메커니즘을 이해하기 위해 역사를 조금 아는 것이 좋습니다.

처음 Jupyter의 탄생은 파이썬을 이용할 때 shell로 이용할 수 있도록 하기 위한 프로젝트로 탄생했습니다.

 

즉 Shell 에서 OS 명령어(ls, cp, mv 등)도 이용하면서 OS 내 객체들을 확인하면서

파이썬 코드도 쉽게 작성할 수 있도록 만들어진 것이죠.

이때 진행됐던 프로젝트를 ipython Notebook 이라 했습니다.

그 때는 ipython 패키지를 설치한 후 아래 그림처럼 사용했었습니다.

CMD창을 띄운 후 파이썬 코드를 한줄 한줄 입력하면서 결과물을 볼 수 있고

OS명령어들도 이용할 수 있었다는 말이지요.

(파이썬은 한줄씩 해석해가는 인터프리터 방식 언어이기에 한줄씩 결과를 보여주는게 가능합니다)

 

그런데 이제는 파이썬 뿐만 아니라 R이나 하스켈, 루비 등의 언어까지 지원하는 폭넓은 프로그램이 됐습니다.

그러면서 이름을 Jupyter로 바꾸게 되었습니다.

Jupyter을 쓸 때는 브라우저를 띄어 이용하게 되는데 그럼 이제 파이썬 개발할 때 Jupyter만 깔면 ipython 패키지는 설치할 필요가 없는 것인가요?

 

그렇지 않습니다.

브라우저는 UI 역할을 할 뿐 내부에선 여전히 ipython을 사용하게 됩니다.

여기서 주피터의 아키텍처를 한번 보도록 하겠습니다.

 

가상환경 A는 ipykernel 패키지 설치 후 주피터 커널을 생성하였으므로 주피터에서 이용 가능하다. 하지만 가상환경 B는 ipykernel을 만들지 않았기에 주피터에서 이용이 불가하다.

 

먼저 ipython --> jupyter로 넘어오면서 브라우저를 사용한다는 것은 설명했습니다. 

주피터에는 커널이란 개념이 있습니다. 이 커널은 OS의 커널과는 전혀 다른 의미입니다.

주피터에서 커널이란 뭘까요?

주피터의 커널

주피터에서 커널은 두 가지 의미를 갖고있습니다.

 

(1) 주피터 서버가 R 혹은 루비 혹은 파이썬과 인터랙션 하기 위한 중간다리 

(2) 파이썬 가상환경과 연결하는 중간다리

 

우리 PC or 서버에 R, 루비, 파이썬 3개의 언어가 설치되어 있다고 합시다.

주피터는 3가지 언어 모두 지원한다고 했으므로 주피터에서 소스를 작성하고 싶은 경우

주피터가 R과 루비, 파이썬을 호환되어야겠죠? 이 인터랙션을 위한 것이 커널입니다.

 

또한 파이썬은 가상환경이 있다고 했습니다.

주피터와 파이썬간 인터랙션은 OK인데, 가상환경 A, B, C가 있다면 

가상환경과 주피터를 어떻게 연결할까요?

 

바로 가상환경마다 커널을 생성해주는 것입니다.

그래서 위 아키텍처 그림에서 가상환경 A와 주피터가 연결되어 있는 것이죠. 

 

그럼 가상환경에서 주피터 커널을 등록하는 법을 보도록 하겠습니다.

 

2. 가상환경과 jupyter 연결하기

ipykernel

먼저 가상환경에서 ipykernel 패키지를 설치해야 합니다.

ipykernel은 주피터의 커널을 만들어주기 위한 라이브러리입니다.

아래와 같이 아나콘다 CMD창에서 실행해보도록 하겠습니다.

(이전 포스트 https://itlamp.tistory.com/11에서 가상환경까지는 생성하였습니다)

 

 

가상환경 목록 확인하기: conda env list

 

 

이제 realState 가상환경과 주피터를 연결하기 위해 ipykernel 패키지를 설치합니다.

 

> pip install ipykernel

 

그러면 관련된 여러 패키지들이 설치됩니다.

마지막 단계로 realState 가상환경을 주피터가 이용할 수 있도록 아래와 같이 명령합니다.

 

> python -m ipykernel install --user --name realState --display-name "realState"

 

-m 옵션은 라이브러리를 실행하라는 뜻으로 방금 설치한 ipykernel을 실행하라는 의미입니다.

--name: 가상환경 이름인 realState를 입력합니다.

--display-name: 주피터에서 보여질 커널 이름을 정합니다. realState 이름으로 보이도록 만들겠습니다.

 

여기까지 하면 realState 가상환경과 주피터간 연결되어 주피터에서 realState 가상환경에 접근할 수 있게 됩니다.

그리고 realState 가상환경에서 주피터 커널 목록을 확인할 수 있습니다.

 

> jupyter kernelspec list

 

realstate 라는 주피터 커널이 잘 만들어진 것을 확인할 수 있습니다.

그리고 이제 주피터를 실행하면 오른쪽 메뉴에서 realState가 보이는 것을 확인할 수 있습니다.

 

 

이제 주피터에서 realState 가상환경을 이용하려면 저 커널을 선택하면 됩니다.

 

댓글