오랜만의 글입니다. 이번 글에서는 ipython notebook이라는 것에 대해 알아보겠습니다.
일단 실행을 하려면 (저같은 경우 Linux에서는) 명령창을 열고 command prompt에 다음과 같이 치면
인터넷 browser에 (저같은 경우 google chrome에) 다음과 같은 창이 하나 생깁니다.
여기서 오른쪽 위에 있는 “new” 버튼을 누르고 “python3″를 선택하면 다음과 같은 창이 생깁니다.
여기에 다음과 같이 a = 1; b =2; c = a+b; print(c) 와 같은 python 프로그램을 쓰고
실행버튼 (|>)을 누르면 아래와 같이 실행된 장면을 볼 수 있습니다.
결론적으로 ipython에서 할 수 있는 모든것을 여기서 할 수 있습니다. 그렇다면 그냥 ipython을 쓰지 굳이 이렇게 notebook을 열어서 쓸 필요가 있을까요?
“필요없다”가 제가 한동안 가지고 있던 생각이었는데, 매우 잘못된 생각이었다는 것을 며칠전에 알았습니다.
notebook은 이렇게 python 명령을 실행시킬 뿐만 아니라 매우 유용한 한가지 기능이 있습니다.
각종 버튼이 있는 줄에 “code”라고 되어있는 버튼이 보이는데요. 이걸 누르면 “markdown”이라는 것을 선택한 후 여기에 각종 설명이나 수식을 (심지어 LaTeX 수식을 쓸 수도 있습니다) 쓸 수 있습니다. 아래 그림이 한 예입니다.
위의 그림 맨 밑줄에 있는 다항식은 “markdown” 상자에 다음과 같이 쓰여진것입니다. “$$” 로 “x(t) = -0.206t^4 + 0.9167 t^3 - ...” 둘러싸고 실행 버튼 (|>)을 누누누르면 위와 같이 예쁜 수식으로 바꾸어 줍니다.
notebook의 매우 유용한 기능은 바로 이것입니다. 매우 자세히 여러가지 생각을 프로그램과 함께 적어둘 수 있습니다. 보통 어떤 문제를 풀때 프로그램을 짜기 시작하면 초기 실행 하는 작은 프로그램을 만들고, 그것이 점점 커지고 그러다가 각종 변경을 하는데... 이걸 잘 관리하지 않으면 나중에 도대체 왜 내가 이렇게 했던가? 이 변경은 왜 했지? 이 프로그램하고 저 프로그램하고 뭐가 다른거지? 등등을 완전히 잊어버리게 됩니다.
notebook은 그러한 모든것을 한곳에 관리하게 해 줍니다. 아마도 절대 앞으로는 “이 부분은 왜 이렇게 바꿨지?” 하는 상황은 피할 수 있지 않을까요?
그뿐만 아니라 자신이 짠 프로그램을 다른 사람에게 설명과 함께 보내줄때도 매우 편리합니다.
물론, 이렇게 프로그램 개발 과정을 notebook을 이용하여 기록해 두긴 하지만, 실제 커다란 프로그램이나 대량의 데이타를 처리하는 경우에는 notebook에서 실행하기보다 원래 하던대로 프로그램 전용 환경에서 하는것이 현명하겠죠.