빌노트의 노트

타입과 문법, 스코프와 클로저 YOU DON'T KNOW JS 책 리뷰 (자바스크립트 책 추천) 본문

IT도서

타입과 문법, 스코프와 클로저 YOU DON'T KNOW JS 책 리뷰 (자바스크립트 책 추천)

빌노트 2017.08.13 21:47

타입과 문법, 스코프와 클로저 YOU DON'T KNOW JS 자바스크립트 책 추천

타입과 문법, 스코프와 클로저 

YOU DON'T KNOW JS


요즘 Node.js라는 것을 사용하면서 자바스크립트(Javascript)는 더 이상 예전 웹 브라우저에서만 돌아가는 언어가 아니다. 고정된 HTML 문서에 동적인 뭔가를 작업하기 위해서는 자바스크립트 사용이 필수였는데 그때는 인터넷이나 책에 굴러다니는 소스코드를 복사해서 붙여넣기 수준에 불과했다. 하지만 웹에서 윈도우 프로그램 같은 고차원적인 UI를 제공하고 Node.js로 서버 프로그래밍까지 하게 되면서 자바스크립트는 더 이상 예전 자바스크립트가 아니다. 그냥 생각없이 가져다 쓰는 코드를 넘어 이제는 정말 제대로 알고 써야하는 시점이 온 것이다. 이럴 때 도움이 될 만한 책을 찾아보다 ‘YOU DON'T KNOW JS’을 읽었다. 읽으면서 “오...”, “아하!”의 연속이었는데 자바스크립트를 어렴풋이 알고만 있는 사람에게 큰 도움이 될 것 같다.

YOU DON'T KNOW JS라는 책은 총 2권으로 되어 있다. ‘타입과 문법, 스코프와 클로저’와 ‘this와 객체 프로토타입, 비동기와 성능’으로 나누어진다. 이번에 본 책은 ‘타입과 문법, 스코프와 클로저’인데 예전부터 궁금했던 내용이라 정말 흥미롭게 읽었다. 뭔가 알 것 같으면서도 모르는 것 같은 언어, 알지만 자세히 모르는 자바스크립트. 프로그래밍 후 버그를 예상할 수 있어야하는데 내부적으로 어떻게 돌아가는지 잘 모르니 답답했다. 그래서일까 개인적으로는 C언어보다 더 어렵게 느껴졌던 언어가 자바스크립트였다. 그래도 다양한 개발을 위해 넘어야할 산이 자바스크립트다보니 그냥 넘어갈 수는 없는 노릇. 이 책을 잘 내 것으로 만든다면 자바스크립트를 또 하나의 주 무기로 사용할 수 있을 것이다.

‘타입과 문법, 스코프와 클로저 YOU DON'T KNOW JS’는 말 그대로 자바스크립트타입, 문법, 스코프, 클로저에 대해서 자세히 설명한다. 이 책의 초반만 잠시 읽어봐도 내가 자바스크립트에 대해 얼마나 무지했는지 알게 해준다. 이런 것 까지 알아야하나 싶은 내용도 있지만, 대체적으로 프로그래밍을 할 때 예상치 못한 오류와 버그를 잡을 때 큰 도움이 될 만한 내용이었다. 이 책은 크게는 2개의 파트를 나뉜다.


PART 1. 타입과 문법

1. 타입
2. 값
3. 네이티브
4. 강제변환
5. 문법


PART 2. 스코프와 클로저

1. 스코프란 무엇인가
2. 렉시컬 스코프
3. 함수 VS 블록 스코프
4. 호이스팅
5. 스코프 클로저


자바스크립트는 참 관대한 언어다. 그냥 별생각없이 마구 코드를 짜도 오류 없이 돌아가는 경우가 많다. C언어에 비해 언어 자체적으로 해주는 일이 많기 때문이다. 자동 형 변환이 일어나는 경우가 많아 좀처럼 오류메시지를 보여주지 않기 때문에 당장은 좋은 것 같아도, 나중에 나타나는 수많은 버그는 감당하기 힘들다. 이 책은 이것을 예방하는 힘을 기를 수 있게 도와준다. 예로 배열의 인덱스를 숫자가 아닌 값으로 했을 때 배열길이(length)에 영향을 미치지 않는다는 사실을 나는 이 책을 읽고 나서야 알게 되었다. 경험적으로 알고 있는 사람도 있겠지만 이렇게 책으로 한번 봐두면 나중에 시행착오를 줄일 수 있다. 어떨 때 ture이고 false인지 아니면 undefined인지도 제대로 배울 수 있다.


스코프와 클로저에 대해서는 대강 어렴풋이 알고 있었는데, 이 책을 통해 정말 제대로 공부할 수 있었다. 다른 내용도 좋지만 스코프와 클로저를 이렇게 친절하고 자세하게 쓴 책은 처음인 것 같다. 뭔가 다 이해한 것 같은 느낌이 든다.

깨달음의 순간이 이럴 것이다. “아, 클로저는 내 코드 전반에서 이미 일어나고 있었구나! 이제 난 클로저를 볼 수 있어.” 클로저를 이해하는 것은 네오가 매트릭스를 처음 봤을 때와 같을 것이다. (P.240)


타입과 문법, 스코프와 클로저 YOU DON'T KNOW JS 자바스크립트 책 추천

C, C++은 처음에 배울 때 고생하고 나중에는 큰 문제가 없다. 반면 자바스크립트는 그 반대라고 생각한다. 그 이유는 우리가 자바스크립트를 제대로 배우지 않아서 그런 것 같다. 태생부터가 그런 언어이기 때문에 어쩔 수 없었지만 이제는 다르다. 웹 브라우저를 넘어 정말 다양한 곳에서 쓰이는 만큼 이제는 자바스크립트를 정말 제대로 배워야할 것 같다. 그 길에 ‘타입과 문법, 스코프와 클로저 YOU DON'T KNOW JS’ 책이 큰 도움이 될 것이다. 자바스크립트 코딩을 할 때 바보 같은 짓을 줄이기 위해 체화가 될 때까지 곁에 두고 자주 읽어야겠다. 그나저나 이 책을 읽고나니 ‘this와 객체 프로토타입, 비동기와 성능’의 내용도 무척 궁금하다.




0 Comments
댓글쓰기 폼