메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

자바스크립트로 맛보는 소문의 명서

lks7***

|

2023-02-26

자바스크립트로 배우는 SICP

모든 프로그래밍 언어에서 유용한 사고법과 그 표현법을 소개해 프로그램을 효율적으로 조직화하는 법을 알려준다. 개발자라면 반드시 읽어야 할 고전을 사용자가 많은 자바스크립트로 재해석했다.

  • 저자 : 해럴드 에이블슨 , 제럴드 제이 서스먼 , 마틴 헨즈 , 토비아스 브릭스타드 , 줄리 서스먼
  • 번역 : 류광
  • 출간 : 2022-12-30

SICP 즉 "컴퓨터 프로그램의 구조와 해석" 책은 예전에 나온 책입니다.

프로그램 개발자라면, 한번쯤은 들어본 책일 것입니다.

그리고, 그 소문은.. MIT에서 사용하는 교재라는 것이죠.

 

이러한 유명세로 SICP는 이미 출판되어 있습니다.

2007년에 양장으로 근사하게 나왔고, 2008년에는 양장이 부담스러웠는지, 2권으로 분리되어서 출판되었습니다.

그리고, 2016년도에 2판이 나오기도 했죠.

http://www.yes24.com/Product/Goods/2715278

http://www.yes24.com/Product/Goods/3745925

http://www.yes24.com/Product/Goods/23951885

 

위의 링크에 있는 오리지널 책들은 인사이트에서 출판되었는데, 2023년에 나온 이 책은 한빛미디어에서 출판되었습니다.

 

자, 그럼 이 예전 오리지널 책과, "자바스크립트로 배우는 SICP"의 차이점은 뭘까요?

내용 자체는 동일합니다만, 그 내용을 설명하기 위해 사용한 언어가 다르다는 점이 차이점입니다.

오리지널 책에서는 "스킴"이라는 LISP기반의 언어를 사용해서, 설명을 하고 있습니다.

얼마전, 함수형 프로그램이 인기를 끌기 시작하면, 클로저, 하스켈, 스칼라 이 3개 언어가 핫이슈가 된 적이 있었습니다. 이들 언어의 뿌리라고 할 수 있는 함수형 프로그램 언어의 시작점은 아무래도 LISP이 아닐까 싶은 것이죠.

 

LISP은 다양한 파생 언어를 갖고 있었는데, Common Lisp, Clojure, Racket, Railgun, 그리고 Scheme 이 유명합니다.

 

이 오리지널 SICP는 Scheme를 가지고, 프로그램을 어떻게 만들고, 그렇게 만들어진 프로그램이 어떻게 동작하는지를 설명했던 책입니다. 좀더 길게 얘기하자면, Scheme 설명, 컴파일러 생성, 에뮬레이서 생성, 에뮬레이터에서 컴파일러 올려서 Scheme로 만든 프로그램을 돌려보기.. 까지의 과정을 설명하는 책이었습니다.

 

내용만 보자면, 800여 페이지 분량이 부족하게 느껴질 정도의 방대한 분량인데, 사실, 일반적인 대학 과목에서라면, 3가지 정도의 과목(컴퓨터 기본구조, 프로그래밍 개론, 컴파일러)이 하나로 합쳐진 것이 아닐까 싶으니까 말이죠.

 

함수형 프로그램을 공부할 때, 가장 큰 장애물은, 기존 순차적 프로그램 언어에 익숙한 개발자라면, 개발 패러다임을 바꿔야 한다는 점이었습니다. c 나 java의 경험이 오히려 함수 기반의 프로그램 개발을 방해한다는 것이었는ㄷ데, 이것은, 객체지향 패러다임이 나왔을 때, 기존 C 프로그래머들이 반발하던 것 보다도 더 심하지 않을까 싶긴 했습니다.

 

아무튼, 그래서, 아예 처음 프로그램을 배우는 사람이 Scheme으로 시작한다면, 좀더 쉬울 수 있었겠지만, 소문만 듣고 이 책을 보는 사람들에게는 "아 이게 뭐지?" 하는 사용 언어의 장벽이 크게 작용했다는 점이 문제였습니다.

 

그리고, 초판이 나온 뒤, 수십년 뒤에, Scheme이라는 LISP 기반의 언어, 함수형 프로그래밍 언어에 익숙해지지 못해서, 도중에 포기해버린 개발자들을 위해, 저자는 새로운 언어, 즉 Javascript를 가지고 다시, 원래의 이야기를 설명하게 되었는데, 이 책이 바로 그 책입니다.

 

확실히, scheme으로 설명된 오리지널을 보는 것 보다, javascript로 설명된 이것을 보는 것이 편했습니다.

(책장에 처음 샀을 때 그 모습 그대로 꽃혀있는, 2007년도의 오리지널 양장본 책을 보면서 느꼈던 죄책감을 이제야 줄일 수 있을 것 같네요)

 

누군가가 그러더군요. <<클래식이란, 모두가 알지만 아무도 읽지 않은 책이다>> 라고 말입니다.

 

확실히 이 책은 클래식은 맞습니다. 수 많은 프로그램의 대가들이 극찬한 책이었으니까요. 또한 모두가 좋은 책이라고 말하고 있으니까요.

 

하지만, 과연 scheme를 사용했던 오리지널 책으로 제대로 읽은 사람이 얼마나 있을까 하는 것은 의심이 드는 책이기도 했습니다. (산 사람은 많지만 읽은 사람은 없을 것 같은 그런 책이었으니까요)

 

그러나, Javascript라면? 그러면, 읽은 사람이 훨씬 많이 늘어나지 않을까 싶은 그런 책이었습니다.

 

하지만, 그럼에도 불구하고, 쉽게 읽히지는 않는 책이었습니다. 혼자 본다면, 도중에 포기할 유혹을 강하게 느낄 수 있는 책이기도 합니다.

일단, 책이 너무 두껍기 때문에 (페이지 뿐만 아니라, 출판사에서 신경써서, 좋은 종이로 인쇄했기 때문에, 종이 질은 좋지만, 더 무겁고, 휴대하기 힘든 책이 된 것은 아이러니 하네요) 집에서 마음을 한번 강하게 잡고 읽어야 합니다.

 

또한, 표지는 양장으로 해 주면 더 좋지 않았을까 하는 아쉬움이 들기도 했습니다. 어차피 집에서 놓고 봐야 하고, 두께 때문에, 중간에 책등이 쪼개질 것 같은 불안감 때문에 그렇습니다.

 

아무튼, 정리하자면, 소문으로만 듣던 (사긴 했지만 읽지는 못했던) 책이, 좀더 익숙한 언어(쉬운 언어는 아닙니다)로 새단장을 하고 다시 찾아온 책입니다. 하지만, 아무리 쉽게 바꿨다고 해도, 내용 자체의 난이도는 높은 편이라서 (이미 다른 개발 스타일에 익숙해져있다면 더욱 고치기 힘드니까 말이죠), 혼자서 끝까지 보면서 공부하기보다는 그룹 스터디를 만들어 함께 공부하는 것이 좋을 것 같습니다.

 

가장 좋은 것은 MIT에서 그랬던 것처럼, 처음 프로그램에 입문할 때, 개발 스타일을 잡기 위해, 수업 교재로 사용하면 더욱 좋지 않을까 싶습니다.

 

-----

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

-----

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?