만약 헤밍웨이가 자바스크립트로 코딩한다면

By | 2017/02/17

만약 헤밍웨이가 자바스크립트로 코딩한다면

본 서평은 한빛미디어로부터 책을 증정받아 읽고 쓴 글임을 알립니다.

작년 말에 팟캐스트 "나는 프로그래머다" 자바스크립트 편을 들을 때, 만약 헤밍웨이가 자바스크립트로 코딩한다면 이라는 재미있는 책이 나왔다는 말을 들었다. 프로그래밍 관련 서적은 대부분이 특정 언에에 대한 입문 서적인데, 특이하게 문학의 거장들의 프로그래밍을 주제로 책이 나왔다니. Yes24에 접속해서 미리보기로 처음 몇 장을 읽어보니 정말 특이했다. 첫 이야기가 바로... 헤밍웨이가 피보나치 수열을 짠다면?

이 책은 자바스크립트에 대한 책이 아니다. 자바스크립트가 어떤 언어인지, 문법은 어떠한지에 대한 설명따위는 없다. 고로, 자바스크립트를 모르는 사람은 이 책을 이해할 수가 없다. 나도 자바스크립트를 잘 하는 것은 아니지만, 학부때 컴퓨터를 전공했고, 웹 프로그래밍 경험이 몇 번 있다보니 자바스크립트에 대해 어느 초급 이상의 지식은 충분히 갖고 있다고 생각하고 있었다. 이 책을 읽기 전 까지는...

이 책에서는 헤밍웨이를 포함한 총 25명의 문학거장들이 자바스크립트를 이용하여 피보나치수열 등의 간단한 알고리즘을 코딩한다면 과연 어떻게 코딩했을까? 에 대해 다루고 있다. 직접 자바스크립트 코드를 보여주고, 왜 해당 문학거장이 이런 식으로 코딩을 했을지에 대해 설명해주는 패턴이다. 절대 잘 짜여진 코드는 아니다. 철저하게 해당 문학거장의 스타일만을 담고 있다. 심지어 무슨 말인지 알아볼 수 없는 코드도 있다. 괴짜같은 문학 거장이 코딩했다면 당연히 코드리뷰따위는 고려도 하지 않고 자기만 알아볼 수 있게 짰을테니까. 해설을 한참 들여다보고서야 겨~우 이해가 될 법 한 코드도 많다. 코드골프 같기도 하고.

최근에 셜록홈즈 전집을 읽었던 터라, 책 내용 중에 코난 도일의 계승 알고리즘 코드가 매우 마음에 남았다. 코난 도일이 작성한 코드는 "주어진 인수의 계승(팩토리얼)을 반환하는 함수". 셜록홈즈는 관찰한 내용을 기반으로 철저하게 과학적으로 접근한다. 이런 셜록홈즈의 스타일이 반영된 코난 도일의 코드는 첫 줄 부터 남다르다.

"use strict";
고백하건데, 자바스크립트에서 "use strict"; 가 뭘 뜻하는지 몰랐다... 그냥 코드 처음부터 쌩뚱맞에 문자열이 나왔구나 라고 생각만 했는데 해설을 보면서 "use strict";를 이용하여 strict mode로 코드를 실행하도록 했다는 사실을 알았다. 이 뿐만 아니라, 매우 개성이 강한 문학거장들의 코드답게 이해하기 어려운 부분들이 몇 군데 있었다. 덕분에 깨달았다. 나는 아직 자바스크립트 한참 초보이구나...

최근에 "대통령의 글쓰기"라는 책이 인기가 있었다. 청와대에서 연설비서관으로 일했던 저자가 김대중, 노무현 전 대통령의 연설문을 이야기하면서 글쓰기에 대해 이야기하는 책이라 매우 재미있게 읽었던 기억이 난다. 문득, 한국 문학가들 스타일로 자바스크립트로 코딩을 한다면?! 또는, 상상해보자. 박근혜가 자바스크립트로 코딩을 한다면? 문재인이 자바스크립트로 코딩을 한다면? 굳이 자바스크립트가 아니어도 괜찮을 것 같다. 유재석이 파이썬으로 코딩한다면? 설현이 자바로 코딩한다면? 이 또한 재미있지 아니하겠는가.

이 책에 나온 코드들이 좋은 코드가 아닌 것은 분명하다. 하지만 그 코드의 의미를 하나하나 생각하며 읽는 재미가 매우 쏠쏠하다. 심지어 주석마저도. 이 책을 읽고나니 이 책에 나온 피보나치, 팩토리얼 등의 간단한 알고리즘을 짜보고 싶어졌다. 궁금하다. 남이 보는 나의 코딩은 어떤 스타일일까? 내 코드에는 내 개성이 얼마나 묻어날까?

function review(book) {
    if (book==="만약 헤밍웨이가 자바스크립트로 코딩한다면") return "Read it, Right Now"
}
Category: