파이썬은 1991년 Guido Van Rossum이 퍼블리싱한 언어로 인터프리터로 해석되는 스크립트 언어다. 필자는 Matlab, C, Python 중에 하나의 강의를 수강하게 되었는데 웹에 대해서 공부할 때 스크립트 언어에 대해 재미있게 학습한 기억이 있고, 연구실에서도 파이썬을 수강할 것을 추천했기에 파이썬을 선택했다. 강의의 초반부에는 재미있는 얘기를 접할 수 있었는데, 파이썬이 공식적으로 퍼블리싱되던 91년 즈음에는 현재 학생들이 자신만의 모바일 애플리케이션을 제작하는 것처럼 직접 스크립트 언어를 제작하는 것이 유행이었다고 한다. 때문에 비슷한 시기에 다양한 스크립트 언어가 발매되었다고 한다. 비록 지금까지 살아남은 것은 드물지만.


현재 다양한 연구실과 산업분야에서 비싼 값을 치루면서까지 Matlab이 사용되고 있다. 그러나 프로그래밍 언어론적인 측면에서 매틀랩은 파이썬에 비하면 상당히 낮은 수준의 언어라고 한다. 한 때 객체지향 패러다임의 유행으로 산업계에 cpp가 투입됐었지만, 그 동안 유지해 온 절자지향적인 사고방식을 객체지향적인 패러다임으로 전환하는 것이 실패했고, 그 틈새시장을 매틀랩이 차지하게 되었다는 후문이다.


다양한 단점에도 불구하고 인정할 수 밖에 없는 매틀랩의 장점은 계산과 코멘트, 그래프 및 특수문자 삽입이 하나의 파일내에서 작업가능하다는 점이다. 코딩은 IDE에서, 그래프 작업은 웹에서, 문서작업은 워드에서 등 하나의 논문이나 문서를 작성할 때 병행해야 하던 것을 대부분 매틀랩 내에서 처리할 수 있었기 때문에 작업 사이의 동기가 잘 맞는다는 것이다.



매틀랩과 관련된 얘기로 인해 서두가 길었다. 앞으로 주로 사용하게 될 파이썬에 대해서 좀 더 자세히 알아보자. 위에 있는 표는 프로그래밍 언어의 트렌드를 조사한 것인데, 한 동안 꾸준히 성장세를 보이던 자바가 주춤하고, 파이썬이 2위에 위치한 것과 비교적 최근 발매된 스위프트라는 언어가 급상승 중이라는 것을 알 수 있다. 위 표를 통해 앞으로 학습할 파이썬이라는 언어가 상당히 긍정적으로 평가되고 있다는 것을 기억하자.


Pros & Cons


하지만 장점으로 꼽았던 모든 기능들을 최근에는 파이썬에서 처리가능하다. 그리고 덧 붙여 파이썬이 가지고 있는 가장 큰 장점은 쉽다는 점이다. 자바스크립트처럼 타입에도 유연하고, 제공하는 라이브러리도 다양하고 많다. 비록 이전까진 싱글코어 환경으로 제한되어 쉽지만 느린 랭귀지란 생각이 있었는데, 이마저도 최근에는 많이 개선되었다고 한다.


현재 2.7버전과 3.5버전이 있는데, 대게 언어는 점진적으로 개선을 거듭하여 발전하는 법이지만 파이썬은 조금 다르다. 2.7버전과 3.5버전 둘 다 계속 개발중에 있으며, 현재까지는 2.7 버전 사용이 조금 우세하거나 비등한 수준일 것이다. 그도 그럴만한 것이, 파이썬이 가지고 있는 한계점을 대폭 개선하기위해 하위 호환을 적극적으로 고려하지 않고 3.5버전을 출시했다. 때문에 3.5버전 퍼블리싱 당시에는 옹호하지 않는 의견도 다분히 많았다고 한다. 하지만 점차 3.5의 비중이 증가하면서 미래에는 파이썬 버전 3.5가 리드할 것으로 예상한다.


또한 주목 할 만한 점은 최근 프로그래밍 언어들의 추세에 맞게 파이썬 역시 멀티-패러다임을 지원한다. 즉 파이썬 내에서 object-oriented, imperative, functional, procedural, reflective 형식의 프로그래밍이 가능하다는 것이다.

 



1. 개발 환경 설정


파이썬에 대해서 간단히 알아봤으니 이제 실질적으로 프로그래밍 할 수 있는 환경을 구축해보자. 필자는 수강하고 있는 강의 내용과 동일한 개발 환경을 구축할 것이다. 파이썬 버전 3.5를 사용하며, 파이썬 언어를 지원하는 웹 애플리케이션 주피터(Jupyter)를 사용할 것이다. 또한 대학원에서 자주 접할 수학, 공학, 데이터 분석에 최적화 된 파이썬 배포판인 (아나콘다)Anaconda를 사용할 것이다. 아마도 이름을 아나콘다로 작명한 것은 파이썬이 비단뱀을 의미하기 때문일 것이다. 그럼 아나콘다 웹 페이지로 이동하여 자신의 운영체제에 맞는 버전으로 설치해주자. 필자는 윈도우 환경에서 작업하므로 윈도우 64-bit 버전을 사용할 것이다.



2. 주피터 사용


아나콘다 설치가 완료되었다면, 윈도우 기준으로 윈도우 파워쉘(Windows PowerShell)을 켜주자. 일반적인 CMD 창에서는 명령어가 정상적으로 동작하지 않는다고 하니 반드시 파워쉘을 사용 해야한다. 파워쉘에서 아래의 명령어를 입력하면 로컬 서버가 설정되고 웹 환경에서 파이썬 프로그래밍을 진행할 수 있게 된다.

$ jupyter notebook


명령어를 입력하면 자동으로 웹 브라우저가 실행되며, 파워쉘 창은 끄지 말고 내려두자. 만약 종료하면 서버 역시 종료되어 웹에서 작업을 이어갈 수 없다. 또한 파워쉘에서 직접 명령어를 입력할 필요 없이 jupyter notebook이라는 파일을 실행해줘도 동일하다. 정상적으로 실행하면 아래와 같은 파워쉘 화면을 확인할 수 있다.



그리고 자동으로 실행된 웹 브라우저를 확인해보면 쥬피터가 구동 중이라는 것을 파악할 수 있다. 본격적인 프로그래밍은 웹 브라우저 상에서 진행된다.





Github를 사용해 본 사람에게는 매우 익숙한 UI이기 때문에 사용에 크게 어려움은 없을 것 같다. 만약 익숙하지 않더라도, 상당히 직관적이며 실제 윈도우나 리눅스의 디렉토리 구조도 동일하므로 금새 적응할 수 있다. 우측 위에 [New] 버튼을 통해 폴더를 생성할 수 있고, Python3 파일을 생성할 수 있다. 필자는 /Desktop/python 폴더를 생성하고, 그 안에 intro.ipynb 파일을 생성했다. 아마 쥬피터에서 작업하면 확장자가 ipynb로 지정되는 것 같다. 파일이 실행되고 나서 위에 메뉴바를 보면 파일 이름을 변경할 수 있고, 쥬피터 로고 옆에 파일 이름을 클릭해도 이름을 변경할 수 있다. 






Intro라는 파일 제목에 걸맞게 Hello world!를 출력해보고, 정상적으로 출력이 된다면 파이썬 프로그래밍을 위한 개발환경은 구축되었다고 볼 수 있다. 가볍게 아래의 명령어를 입력하고 [Shift + Enter]를 눌러서 정상적으로 출력되는지 확인해보자.

print ("Hello world!")



위의 사진을 확인해보면 검은색 글씨로 출력된 것을 알 수 있다. 이번 포스팅은 여기서 마치지만, 실질적인 파이썬 프로그래밍은 이제부터 시작이다. 개발환경이 이전과 상이하게 다른 만큼 개발 환경인 쥬피터의 기능에 대해서 알아봐야하고, 이어서 파이썬 문법과 기능에 대해서도 알아봐야 한다. 앞으로 적어도 30시간 동안은 꾸준히 사용할 개발 환경인만큼 'h'를 눌러서 쥬피터가 갖고 있는 기능에 대해서라도 한 번 훑어보는 편이 좋을 것이다.



3. 마치며...


필자도 짧게나마 파이썬 프로그래밍을 해 본 경험이 있지만, 쥬피터나 아나콘다 환경은 처음 접해 봤다. 물론 처음이라 낯선 면도 있고, 다른 IDE에 비해서 매우 불편한 것처럼 느껴지지만 최근에는 웹 상에서 이와 같은 작업을 많이 하는 트렌드같다. 한 번은 경험해볼만하고, 익숙해진다면 나쁘지 않을 것 같다. 앞으로 진행될 30시간의 강의동안 최대한 능숙하게 다루기 위해서는 빨리 적응해나갈 필요가 있다.