본문 바로가기

도서

인사이드 자바스크립트 리뷰- 장단점이 섞인 무난한 책 -

얼마 전에 강남 교보문고가서 개발관련 책을 엄청 샀다.

그 중에 자바스크립트가 컴파일러 없이 할 수 있고, 코드가 그리 긴 편이 아닌 것 같아서

요즘 군대에서 공부하기엔 나쁘지 않은 언어같아 흥미가 생겨 인사이드 자바스크립트를 구매했다.

뭐 서점에 있는 JS 관련 책은 거의 다 읽어봤는데,

항상 프로그래밍 언어 관련된 책들을 읽을 때 맘에 안들었던게, 너무 초보자를 위한, 처음 프로그래밍을 시작하는 사람들을 위한. 그런 책들만 많은 게 너무 맘에 안들었다.

보통 언어 책을 사면 절반은 변수, 반복문 조건문 그런 것만 설명하는 게 절반, 앞으로 볼 만한 내용은 절반 뿐이었다.

이 책은 그렇지는 않았다. 초보자를 위한 어쩌구 그런 건 다 거른 뒤

디자인도 너무 칙칙하거나 읽기 싫은 녀석들을 제외하다 보니 이 책을 구매하게 되었다. 인터넷에 찾아보니 평도 나쁘지 않다. 


인사이드 자바스크립트
국내도서
저자 : 고현준,송형주
출판 : 한빛미디어 2014.01.02
상세보기


별점 : ★★★★


한 줄 평 : 장점과 단점이 섞여있는 책. 

코드 자체에 대한 가독성이나 설명은 조금 떨어질 수 있으나,

jQuery 소스 해석에 대한 면은 정말 높게 평가하고 싶다.

자바스크립트 책 추천하라면 베스트 안에 들긴 할듯.


자세한 리뷰


1. 두께가 너무 부담스럽게 두껍지 않고, 디자인이 세련됐다.

- 막 읽는 데 부담감이 든다거나. 질리진 않음. 보통 엄청 큰 책에 짜증나게 맨날 똑같은 소리(변수에 관하여.... 조건문에 관하여.. 등등 프로그래밍에 있어 공통적인 내용) 를 하는 내용이 많이 들어가는데, 이 책은 그렇지 않고, 좀 알짜배기적인 느낌이 있음.


2. 프로그래밍을 처음 시작하는 사람에게는 비추천. 다른 언어를 하던 사람에게는 추천. 자바스크립트를 공부했던 초급자?도 읽으면 좋을듯.

- 1의 내용과 좀 겹친다. 너무 초급적인 공통의 내용이 빠진 만큼, 프로그래밍 언어를 처음 접하는 사람에게는 기초가 부실하고, 뭔 소리인지 이해 못하는 상황을 야기할 수도.

나같이 다른 언어를 하던 사람한테는 좀 적당한 생략이 있는 것 같아 오히려 좋음.


3. 다른 언어와 비교하면서 설명해주는 부분이 있다.

- 예를 들면 자바를 공부하던 사람은 이부분에서 헷갈릴 수  있다. 이러이러한 부분은 자바에서의 논리와 좀 다르게 작용한다라던가.

어떤 언어를 공부했던 사람은 이 부분은 좀 더 수월할 것이다. ~~기 때문이다. 이런 식으로 다른 언어와 비교해 설명해주는 부분이 가끔 등장하는데.

뭐 이해 자체에 그리 큰 도움이 되는 수준은 아님. ㅋㅋ 그냥 아 그렇구나 정도.


4. 개념적으로는 좀 고급인? 내용까지 다루어준다.

- 책은 얇지만, 너무 기초적인 부분은 제외시키고, 그 대신 nodejs와 jQuery내용이 있다.

( 허나 책이 얇은 만큼 설명과 예제가 부족합니다)

jQuery부분은 입문자의 경우 발을 대지도 못할 정도로 어렵습니다.

라이브러리 분석을 하려는 의도인듯한데 입문이 한 바퀴 끝난 사람 정도면 발은 대볼 수 있을 것 같습니다만 단순히 어렵다기보단 설명이 좀 너무 부족한 느낌. 

책을 보고 이해하는 게 아니라 책을 보고 이해할 수 있는 사람은 라이브러리만 보고도 느리게나마 이해는 할 수 있을 것 같습니다.


제 기준으로 nodejs로 웬만한 웹 스크래퍼가 크롤러 제작 가능하고, jQuery를 통한 애니메션은 아니어도 간단한 Ajax나 DOM조작정도는 할 실력입니다만 한시간에 한 장 읽을까한 정도..입니다.

또한 nodejs부분도 nodejs에 대해 공부할 수 있다기 보단 그냥 쪼금의 붙임말 정도로만 나와있습니다.

그래도 너무 쉬운 것 보다는 재밌었습니다.


5. 예제가 아주 적다.

- 계속 같은 내용을 말하고 있는 듯하긴한데, 얇으니까 예제가 적음.

근데, 코딩을 어느 정도 경험해본 사람들이라면 사실 책에 실을 수 있을 정도의 간단한 예제는 필요없지 않나 싶다.


6. 코드 가독성이 떨어진다. (jQuery 분석 부분 제외)

- 주석이 없음. 코드 흐름자체가 가독성이 좀 떨어짐. 이건 내게 있어 좀 크더라.

예를 들면 스코프에 대해 공부를 하고 있으면,


var a=100;

function upper(){
    var a=1000;
    function inner(){
        console.log(a);
    };

	inner();
};

upper();


책에 등장하는 코드는이런식임. 

출력 결과는 1000이 나오지만, 그 1000이 의미하는 것이 뭔지 독자는 한 번 더 생각해야함.

1000? 함수안에 있는 값이 뭐더라? 글로벌 변수a의 값이 뭐더라? 이런 식으로.


사소해 보일 수는 있지만, 처음 배우는 사람 입장에서는 와닿지 않을 수 있고, 책을 계속해서 읽다보면 이런 부분이 쌓여서 좀 짜증나게 됨...


만약 가독성을 높일 수 있다면


var a="global";

function upper(){
    var a="a in upper";
    function inner(){
        console.log(a);
    };

	inner();
};

upper();

이런 식의 코드를 진행하는 것이 좋지 않았을까.


>function doSomething(do_, msg){
    do_(msg);
};

var obj={
    dothis:function(what){
        console.log("I did"+what);
    }
};
doSomething(obj.dothis, "DoTHIS");

혹은 책에 등장하는 건이런 코드...

계속 뭐 비슷한 코드 이름으로 뭘 한다는 것 같은데 무슨 의도인지 초보자에겐 와닿지 않음. 이럴 때 주석으로


function doSomething(do_, msg){ //1번째 인자 : 할 동작 , 2번째 인자 : 그동작이 필요한 인자
    do_(msg);
};

var obj={
    dothis:function(what){  //doSomething의 첫번째 인자에 넘길 동작임.
        console.log("I did"+what);
    }
};

doSomething(obj.dothis, "DO THIS");


이렇게 몇 줄만 달아줬어도 좋지 않았을까 싶음.

물론 너무 주석을 다 달아서 독자가 생각할 기회를 안주는 것도 나쁠 수는 있지만,

이 책은 너무 주석이 없고 그렇다고 생각할 기회를 준 뒤에 뒤에 더 자세한 설명이 나오는 것도 아님.


7. jQuery 분석 파트는 정말 좋은 내용을 담고있다

- 우선 분석하기 힘들만한 최근 버전이 아닌

1.0버전의 jQuery source code 를 이용해 분석을 해보는 것이 오픈 소스나 라이브러리를 별로 분석해 본 적 없는 사람들에게 좋은 기회인 것 같다.

처음엔 '아 너무 어렵잖아...'싶어 하루에 한 페이지 진도를 나가고 있는 상황이 좀 답답하기도 했고, 설명을 왜 이렇게 적어 놓은 건가 싶긴했지만,

그냥 어려운 수학 문제를 해설만 보고 따라가며 푸는 것이 아니라

적절히 혼자 해결할 수 있는 능력을 길러줄 정도로만 힌트를 주듯?

적절한 정도의 설명이 있었던 것 같다.

그리고 과거 버전임에도 불구하고 이 부분을 정독한 뒤 jQuery가 어떻게 돌아가는지,

jQuery 오브젝트가 구체적으로 어떤 녀석인지 알 수 있게 된 것 같다.



다시 한 번 한 줄 평 및 요약

: 책이 얇아서 좋은 점도 있고 나쁜 점도 있음.

설명이 좀 부실하다고 느낄 수도 있으나, 너무 질리거나 지루하지 않을 수도 있음.

그래도 다른 책보다 얇지만, 알찬 느낌임.

그리고 프로그래밍 경험자들에겐 불필요한 설명이나 예제들을 배제하여 더 좋을 수도 있음.

허나 코드 가독성이 좀  떨어짐.

책 설명에는 nodejs도 들어가있는 것 같은데, nodejs 내용자체는 거의 없다고 봐도 됨.

허나 jQuery만큼은 오픈소스 분석에 대한 좋은 기회를 제공함.

생초보가 읽기는 어려울 듯...

어느 정도 할 줄 아는 중급자들을 위한 책으로 추천할 만 한듯.