본문 바로가기

Book review

코드가 모든 것을 말해준다 (만들면서 배우는 리스프 프로그래밍 - 한빛미디어)

  혹시 리스프에 대해서 들어본 적이 있나요? 저는 이전에도 들어본 적은 있지만 자세히 알고 있는 것은 없었죠. 그저 꽤나 오랜 역사를 가지고 있는 언어라는 정도 밖에 모르고 있었습니다. 그리고 이전에 비해서 사용하고 있는 사람이 많이 줄었다는 것 정도. 이번에 이 책을 읽게 되면서 여러가지 정보에 대해서 접하게 되었는데 오브젝트 파스칼 만큼 은근하게 현업에서 이용하는 기업이 꽤 있다고 합니다. 그렇다면 이 리스프의 정체는 무엇일까요? 

  리스프는 1958년 처음 만들어졌으며 처음에는 수학 표기법을 나타내기 위해서 만들어졌다고 합니다. (당시에는 수식을 표기하기에 적절한 프로그램이 없었나 봅니다) 현재 사용되고 있는 프로그래밍 언어가운데 두번째로 오래된 언어라고 합니다. 이런 리스프가 왜 아직또 쓰이고 있는 것일까요? 오래된 언어들이 살아남는건 특징적인 가치를 지니고 있어서 일텐데, 그럼 리스프가 가진 현대에 유용한 특징적인 가치란 무엇일까요? 이 책에서는 RDF 형식을 가진 메타데이터를 다루는데 사용하기에 매우 적잘하다고 합니다. 시멘틱 웹에서도 그러한 이유로 이용되고 있다고 하지요.


  리스프는 괄호를 많이 가진 코드로 유명합니다. 표기법이 명확하기로 유명하다고는 하는데 이 책을 보기 전에는 몰랐었습니다... ㅎ 어떻냐면요. 제가 주로 사용하는 델파이에서는

(3 + (2 * 4))

 이런식으로 수식을 표현합니다. 이 것이 일반적인 수식의 표현법이라고 할 수 있겠죠. 일반적인 수학책이나 사람들이 계산을 하는 경우에는 이런 것들이 가독성이 높을 것입니다. 왜냐구요? 익숙하니깐요. 하지만 이 수식을 리스프에서는 아래와 같이 표현합니다.

(+ 3 (* 2 4))

두 수식의 결과는 동일하죠. 11입니다. 어떤가요? 우리 눈에 익숙한 위와 같은 방법이 여러분이 보시

기에는 좀더 편안하고 읽기가 좋으시죠? 하지만 리스프의 방식도 생각해보면 나쁘지 않습니다. 금방 익숙해지기에도 무리가 없어 보이고 말이죠. 코드의 기본은 이런식이라고 보시면 됩니다. 처음에는 조금 적응이 안되는 듯 싶지만, 계속 읽어가다 보시면 그렇지 않다는 것을 알게 되실 겁니다. 
제가 이번 리뷰에는 2주간 집에 가지 못하는 일이 생겨서 직접 실습은 못하고 그저 읽는 것 만 했음에도 코드를 알아보는데 무리가 없었습니다. 그만큼 이 책이 잘 적혀 있기도 합니다 :)


  알고보니 이 책의 원서가 꽤 유명하더군요. 아마존에서도 좋은 평가를 받고 있고, 제 일본 친구이면서 IT계 종사자인 모씨도 이 책의 원서를 읽은 적이 있다고 하더군요. 국내에서 리스프에 대한 책이 나올꺼란 생각을 못하고 있어서 저도 나중에 읽어봐야지 하고 인터넷 서점 보관함에 원서를 넣어놓았던 적이 있는데요, 구매할 필요가 없을 것 같습니다.


  이 책의 특징 중에 하나는 독자의 흥미와 관심을 지속적으로 이어나기기 위해서 게임을 만드는 과정을 통해서 배우게 된다는 점입니다. 그리고 가장 큰 잠점은 만화가 중간중간 있다는 점입니다. 일반 삽화나 일러스트와는 다른 재미있게 몰두할 수 있도록 여러가지 노력을 한 흔적이 보인다는게 읽는 동안 흐뭇하게 바라볼 수 있었던 계기가 되지 않았나 생각이 듭니다. 



  맨 앞쪽 리스프 환경 세팅에 대해서는 너무 간략하게 넘어가는게 조금 아쉬웠습니다. 뭐 구성에 어려움이 딱히 있진 않지만 다운받아서 설치하면 된다. 실행은 명령창에서 어떻게 하면 된다. 이렇게만 되어 있는데 친절함이 조금 아쉽더군요. 하지만 이 점은 크게 불편한 점은 아니니 넘어갑니다. 사실은 책 자체보다는 함수형 언어이기 때문에 어색함과 익숙치 못함에서 오는 불편함이 이 책의 유일한 단점이라고 할 수 있을 것 같습니다. 게다가 위에서 말했던 이유로 제가 실습을 거의 못해봤기 때문에 잘 이해가 안가는 부분도 꽤 있었구요... (이 부분은 뭐 제 불찰이니 ㅇㅅㅇ;;)



  끝까지 내용을 따라가보면 아 이런 언어도 있구나, 이런 점은 나중에 개인 프로젝트에서 써먹어도 괜찮겠다. 오브젝트 파스칼과는 이런식으로 조화롭게 사용해도 되겠구나 하는 이런저런 생각들이 들었습니다. 부족했던 실습에 대해서는 차츰 만회하는 시간을 가져봐야겠습니다. 
전체적으로 이 책의 출판 자체에 큰 의미가 있다고 생각이 됩니다. 비인기 언어, 유저가 적고, 잘 팔릴것 같지 않은 책인데도 (IT 출판 업계가 책으로 레퍼런스를 얻는 경우는 초보 독자가 대부분이라고 생각하기 때문임. 책이 나빠서 안팔릴것 같다는 것이 아님;;) 이렇게 멋지게 나와주었다는 점이 저에게는 너무 기쁘구요. 나중에라도 한번 만져봐야지 했던 리스프라서 더더욱 기쁘다 할 수 있겠습니다. 완성도 또한 높은 편이기 때문에 다 방면에서 활용 가능한 리스프를 배우고 싶어하시는 분들이라면 읽어보시면 좋을 것같네요 ^^