본문 바로가기

책을읽자

[우아한 사이파이] 우아한 코드를 분석하는 일은

반응형
우아한 사이파이 - 8점
후안 누네즈-이글레시아스 외 지음, 최길우 옮김/한빛미디어


"우아한 사이파이"라니. IT 관련 책 이름 치고는 뭔가 어색해보였습니다. 번역 과정에서의 과욕이 아닌가 싶었는데, 원서 제목 자체가 "Elegant SciPy"입니다. 저자는 서문에서 왜 "우아한"인가를 설명해주고 있습니다.


A good piece of code just feels right. When you look at it, its intent is clear, it is often concise (but not so concise as to be obscure), and it is efficient at executing the task at hand. For the authors, the joy of analyzing elegant code lies in the lessons hidden within, and the way it inspires us to be creative in how we approach new coding problems.


번역은 다음과 같습니다.

훌륭한 코드는 마음을 편하게 한다. 의도가 명확하고 간결하며 효율적이다. 우아한 코드를 분석하는 일은 즐거울 뿐 아니라 내공까지 쌓인다. 그리고 새로운 코딩 문제에 창의적으로 접근하는데 영감을 준다.


저자의 생각은 이런 겁니다. 이미 파이썬, 넘파이, 사이파이를 설명하는 콘텐츠는 차고 넘쳐납니다. 저자가 이 책을 쓰지 않더라도 사이파이를 공부할 수 있는 공간은 쉽게 찾을 수 있습니다. 커뮤니티를 기반으로 성장하고 있기 때문에 그렇겠지요. 하지만 저자는 그냥 매뉴얼대로 뭔가를 사용하는 방식이 전파되는 것을 원하지 않습니다. 뭔가 완벽함을 추구하는 아름다움을 코드에서 만나기를 바라는 것이라고 합니다. 그렇기 때문에 우아한이라는 단어가 이 책에서 중요한 자리를 차지하고 있습니다.


* 배달의 민족으로 알려진 "우아한 형제들" 회사명에도 Elegant 라는 의미가 담겨져있다고 합니다. 코드에서도 우아한~을 찾고 있는지는 모르겠네요.

https://estimastory.com/2013/05/31/woowa/

https://estimastory.com/2013/05/31/woowa/


이 책의 원본은 깃허브에 공개되어있다고 합니다. 영어에 익숙하다면 책을 구입하지 않고 깃허브에 있는 자료를 받아보아도 되겠네~ 라고 생각했는데, 깃허브에 공개된 콘텐츠와 책은 좀 다릅니다. 깃허브에 올려진 내용은 편집되지 않은 상태의 거친 콘텐츠입니다. 아마 텍스트 교정이나 이미지 편집을 전혀 하지 않은 상태가 아닌가 싶습니다.


예를 들어 1장에서 분자생물학을 설명하는 이미지가 등장하는데 깃허브에는 이런 그림이 있구요.

https://github.com/elegant-scipy/elegant-scipy/blob/master/markdown/ch1.markdown


같은 그림이 사파리 온라인(오라일리 이북 사이트)에서는 이런 그림으로 바뀌었습니다. 사파리 온라인에서는 1장을 미리보기할 수 있어서 확인해볼 수 있었습니다. 번역서에서는 아래 그림을 번역해서 제공하고 있습니다. 뭐 원본 이미지도 나름 매력있습니다. 다만 글씨를 못알아볼 수도 있고, 내용을 모르면 그림 자체를 이해하기 힘들수도 있습니다. 

https://www.safaribooksonline.com/library/view/elegant-scipy/9781491922927/ch01.html

번역서에서는 코드 내 주석 부분을 다 번역해놓아서~ 살짝 애매한 부분이 있습니다. 이게 주석인지 코드의 일부인지가 잘 보이지 않습니다. 물론 실제 코드에서는 코드 하일라이트 처리를 해주기 때문에 명확하게 이 부분이 주석이라는 것을 알 수 있지만 책에서는 그런 부분이 잘 드러나지 않습니다. 물론 대부분의 경우 책을 보고 코드를 입력하는 일은 없을테니깐 큰 문제는 아닙니다.

저자 또는 역자가 올려놓은 코드를 확인하고 테스트해볼 수 있습니다. 역자가 검증한 코드가 좀 더 최신이라고 할 수 있으니 역자의 코드를 참고하는 것이 더 좋겠네요.


https://github.com/AstinCHOI/elegant-scipy


첫 번째 챕터가 너무 어려운 주제라 난감할 수 있습니다. 코드는 둘째치고 내용 자체를 이해하기가 쉽지 않습니다. 역자도 깃허브에 그런 고충을 올려놓았더군요. 이게 순서가 있는것이 아니라서 첫 챕터가 어렵다면 다음 챕터부터 시작해도 괜찮습니다. 이미지 처리 같은 것은 그나마 어떤 일을 하려는 것인지는 이해할 수 있으니깐요.

728x90