얼마 전에 강남 교보문고가서 개발관련 책을 엄청 샀다.
그 중에 자바스크립트가 컴파일러 없이 할 수 있고, 코드가 그리 긴 편이 아닌 것 같아서
요즘 군대에서 공부하기엔 나쁘지 않은 언어같아 흥미가 생겨 인사이드 자바스크립트를 구매했다.
뭐 서점에 있는 JS 관련 책은 거의 다 읽어봤는데,
항상 프로그래밍 언어 관련된 책들을 읽을 때 맘에 안들었던게, 너무 초보자를 위한, 처음 프로그래밍을 시작하는 사람들을 위한. 그런 책들만 많은 게 너무 맘에 안들었다.
보통 언어 책을 사면 절반은 변수, 반복문 조건문 그런 것만 설명하는 게 절반, 앞으로 볼 만한 내용은 절반 뿐이었다.
이 책은 그렇지는 않았다. 초보자를 위한 어쩌구 그런 건 다 거른 뒤
디자인도 너무 칙칙하거나 읽기 싫은 녀석들을 제외하다 보니 이 책을 구매하게 되었다. 인터넷에 찾아보니 평도 나쁘지 않다.
|
별점 : ★★★★
한 줄 평 : 장점과 단점이 섞여있는 책.
코드 자체에 대한 가독성이나 설명은 조금 떨어질 수 있으나,
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만큼은 오픈소스 분석에 대한 좋은 기회를 제공함.
생초보가 읽기는 어려울 듯...
어느 정도 할 줄 아는 중급자들을 위한 책으로 추천할 만 한듯.
'도서' 카테고리의 다른 글
[인문학도 개발자되다] 리뷰-비전공자, 개발관련 진학 희망자들을 위한 도서 (2) | 2019.01.29 |
---|