본문 바로가기

Previous (20-22)/Development

EC2 인스턴스에서 Jupyter Notebook을 쓰면 뭐가 좋을까

안녕하세요.

최근 머신러닝과 관련해서 학습하고 연구를 하고 있는 와중에 Jupyter Notebook을 최근들어 사용하기 시작했습니다.

 

그런데 문득, Jupyter Notebook이 과연 뭐가 좋을까라는 의문도 같이 들게 되어 그냥 넌즈시 글을 써보겠습니다.

 

사실 이 글은 기존에 썼던 다른 글과는 달리 어떤 특별한 정보를 제공하는 글도 아니고 어떻게 보면 제 개인적인 소감에 가깝다고도 볼 수 있습니다. 하지만 IT 관련해서 인터넷을 검색하고 정보도 찾고 보다 보면, 단순히 정보만 막 나열하고 그러는것 보다는 IT 개발자 입장에서는 어떻게 바라보는지를 참고하는 것도 피드백이 될 수 있을 것 같다는 생각도 듭니다.

 

Jupyter Notebook을 잠깐이라도 써보신 분들은 아시겠지만, 웹 상에서 Python이나 R 개발을 하고 직접 결과를 볼 수 있는 아주 편리한 프로그램입니다. AWS에서도 EC2 인스턴스를 사용하여 Jupyter Notebook을 실행시킬 수 있고요.

 

 

어차피 Jupyter Notebook은 AWS에서 원격으로 사용하기보다는, 주로 클라이언트에서 그냥 Python 깔고 Notebook도 깐 다음에 사용하는 경우가 훨씬 많을 것입니다. 로컬에서도 잘 되는데 굳이 원격으로 사용할 이유가 크게 없기 때문이죠.

 

사실 로컬에서도 Jupyter Notebook을 쓰다보면. 딱 드는 생각은 이겁니다.

 

"과연 Python 개발을 위한 전용 에디터가 필요할까?"

 

Jupyter Notebook을 마냥 찬양하는 의미로 쓴 내용은 절대 아닙니다. 그저 단순히. Python에 최적화된 에디터를 웹에서 바로 쓰고 실행하는데 PyCharm이라던가 Eclipse라던가. 심지어 Python Shell이 무슨 필요가 있을까 싶습니다. 그저 단순하게.

 

 

그런데 여기서 AWS EC2 인스턴스는 왜 튀어나오냐.

뭐 제가 최근에 쓴 책이 AWS - Django 서적이기 때문일까요.

 

사실 EC2 인스턴스에서 Django 웹 개발을 하다 보면, Python Shell을 쓸 일이 많이 있습니다.

그런데 굳이 Shell을 쓸 필요도 없이. Jupyter Notebook에서 개발 코드에 대한 일부 출력 결과나 문장을 확인해도 되고.

뭐 편하지 않겠습니까.

 

사실 Django 웹 애플리케이션 산출물은 웹페이지이고, manage.py 파일의 스크립트를 실행시켜서 서버를 가동하는 형태이기 때문에 Jupyter Notebook에서 Django 개발환경을 직접 실행시키거나 할 수는 없을 것입니다. 하지만 개발을 위해서 테스트 코드를 실행한다거나 할 때. 그럴 때에는 Notebook도 역시 유용하게 쓰일 수 있을 것으로 전망합니다.

 

지금 한창 연구하고 있는 머신러닝쪽에서도 여러 방면으로 접목해서 잘 활용할 수 있으면 좋겠습니다.