Head First Python 헤드 퍼스트 파이썬 책 읽는 소프트웨어개발자

Head First Python

폴 배리 저/강권학 역
한빛미디어 | 2011년 10월


일전에 파이썬을 이용하여 짧은 코드를 만들어 본 적이 있었습니다. { } 가 없는 대신에, 탭으로 줄 맞춤을 해야한다는 점이 인상적이었습니다.(취향에 따라 이것을 싫어하는 사람도 있지만)


얼마전에는 루비에 관한 책을 다시 보았는데, 통계를 보면 여전히 루비와 파이썬은 소수가 이용하는 프로그래밍 언어임에는 틀림이 없지만, 매력적인 것도 사실입니다. 머리 속의 아이디어를 당장 웹에서 구현하는데 있어 이 두 언어는 발군의 편의성이 있다고 하네요. 


어찌되었든 새로운 프로그래밍 언어를 배운다는 것은 다소 머리가 아플 수 있기 때문에, 읽기 쉽기로는 이미 검증된 헤드 퍼스트 파이썬을 읽기로 했지요. 저는 주로 C, Visual Basic에 경력이 있고, C++, jQuery, JavaScript, PHP를 길지 않은 기간 동안 써본 적이 있었습니다.


당초에 컴퓨터 언어로 C를 접한 것은 그 후에 일하는데 있어서는 좋은 일이었지만(하드웨어를 제어하는 펌웨어의 개발 시 기계에 대한 직접 액세스 등), 그 표현력이나 사용법이 머리 속에 각인되어 객체지향 언어, 함수형 언어 등을 배울 때 빨리 흡수하는데 어려움을 겪은 점도 있었습니다. 거꾸로 처음부터 루비, 파이썬을 배운다면 C로 넘어가기에 애로 사항도 발생하겠지요.


요즘 드는 생각은 머리 속에 들어있는 아이디어를 짧고 빠르게 구현할 수 있는 언어가 개발자의 복지(?)를 위해 좋은 것이다라는 생각을 합니다. 예를 들면 과거 C언어로 OS없이 GUI를 만들고 키보드 이벤트 핸들러를 만들고 하는 작업을 해본 결과, 비록 동작은 했지만 그 복잡함에 수정할 때 머리가 아팠던 기억이 있습니다. C++로 객체지향기술을 이용했다면 조금 더 나았겠지요. 요점은 프로그래밍 언어는 편리한 도구로 존재해야지 프로그래머 위에 군림(아마 MS계열의 방대한 컴파일러와 라이브러리들?)해서는 안된다는 생각입니다.


서론이 길었는데, 이 책은 귀차니즘이 많은 저도 직접 코드를 쳐넣거나 다운로드해서 실행해보는 수고를 하도록 만드는 좋은 책입니다. 아까도 말했지만 파이썬으로 100~200줄 짜리를 작성해본 정도의 경험이었는데, 체계적으로 하나씩 알아가는 재미가 있더군요. 사실 요약하자면 열 몇 페이지로도 요약할 수 있는 정도의 내용이지만, 가볍게 읽고 이해하기 쉽게 하려면 길어지게 마련이지요... 


이 책은 그 와중에도 MVC로 웹 애플리케이션 만들기와 안드로이드에서 돌아가는 앱, Google App Engine(GAE)에서 돌아가는 코드 등까지 소개를 하고 있습니다. 저는 파이썬도 대충 알고 이러한 내용들도 대략 알고 있어서 부담없이 봤는데, 처음 접한다 하더라도 따라하다보면 저절로 알 수 있게 구성이 되어 있지 않나하는 생각이 듭니다. 


특히 구글 앱 엔진은 파이썬과 자바를 지원하고 있는데, 왠만한 규모의 사이트가 아니라면 거의 무료로 이용이 가능하므로, 개발자들에겐 매우 매력적인 것이라 할 수 있습니다. 클라우드 서비스 중에는 CPU IDLE 시간에 대해서도 과금하는 서비스도 있다지만, 구글 앱 엔진은 그런 게 없으니 부담이 없는 듯합니다. 


어쨌든 파이썬은 꽤 매력적인 언어임에 틀림이 없고, 당장 필요하지 않다고 하더라도 루비와 함께 꼭 알아두어야하는 언어가 아닌가 하는 생각이 듭니다. 둘 다 배우기도 쉽고 급할 때 도움이 되니까요. 이 책에서 예로 드는 코드는 난해하지 않으면서도 파이썬의 간결함을 충분히 표현해주고 있습니다. 생각해보니까 일전에 LISP에 관한 책(http://imky.egloos.com/2941829)과도 느낌이 비슷하군요.~  


이 책의 미국 사이트에 접속했다가 블로그에 가보니까, 이 책의 저자가 쓴 블로그 글이 있었습니다. (http://blogs.oreilly.com/headfirst/2011/10/programming-is-fun-again.html#more)


위 블로그 내용에서는 Erlang을 다루고 있습니다. 에릭슨에서 만들었다고 하는 실시간과 지속적인 실행이 중요시되는 환경에서 쓰는 것이라 하는데, 도서관에서 제목을 본 기억이 있어서 내친 김에 동영상을 한번 봤습니다. 1시간짜리인데, 영어라 잘 안들리는 것도 있지만 내용은 어렵지 않게 이해할 수 있었습니다(화질은 안좋지만 유투브의 Erlang The Movie라는 동영상은 10분 정도 길이). 1시간짜리는 슬라이드(http://paulbarry.itcarlow.ie/ErlangWebcast.pdf) 만 받아서 봐도 될 듯합니다.


저자처럼 재미로 다른 언어들을 공부해 보는 것은, 일에 치여서 아무것도 못하는 많은 국내 개발자들에게 좋은 귀감입니다.


심지어 7주에 7가지 언어(http://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X)라는 책도 있더군요. 특정한 프로그램을 짜다보면 그 복잡함에 머리가 아픈 경우가 간혹 있습니다. 더 쉬운 해결방법이 있거나 더 적합한 언어가 있는데, 알고 있는 언어로 억지로 구현하려고 하거나 남들이 만든 오픈소스로 쉽게 해결할 수 있는데 찾아보지 않기 때문일 수가 있지요. 어쨌든 저자가 이야기하듯이 다른 프로그래밍 언어를 공부하는 이유는 충분한 듯합니다. 


지금껏 들은 이야기에 의하면, 훌륭한 개발자는 "재미(fun)"로 개발하며 잉여 시간에도 코딩을 한다고 합니다. 솔직히 저는 재미로 잉여 프로그램을 짜본 적은 없습니다. 물론 하드웨어를 제어하는 펌웨어를 짜는 재미도 쏠쏠하지만, 아무래도 이것 저것 만드는 재미는 웹이나 앱 쪽이 더 있는 듯합니다. 저도 다른 계통으로 갈 생각은 별로 없는 거 같으니까 새로 배운 언어로 이것 저것 만들어보는 재미를 느낄 수 있는 날이 오기를 기대해봅니다.


덧글

댓글 입력 영역