개발/JavaScript

[JavaScript] 「모던 자바스크립트 Deep Dive」 리뷰

김알리 2021. 11. 1. 21:49
728x90
반응형

 

 

 자바스크립트를 독학하면서, 관련된 여러 책을 살펴 봤었다. 그 전에 자바를 공부했을 때 학원에 다니기는 했지만, 그 때도 책을 두 권 사서 책으로도 공부했었다. 아무래도 책에는 그 언어에 대한 설명도 더 곁들여져 있고 저자의 통찰력이 녹아있기 때문에, 그냥 강의만 듣거나 부분 부분 검색하며 공부하는 것 보다는 확실히 깊게 공부할 수 있어 좋았다.

 

 그리고 한 권 보다는 두 권의 책(얇은 것 하나, 두꺼운 것 하나)을 봤을 때 이해가 쉬웠다. 얇은 책으로 언어를 대략적으로 파악한 후에 두꺼운 책을 보면서 좀 더 심층적으로 이해하는 것이다. 그리고 <모던 자바스크립트 Deep Dive>는 두꺼운 책이다. 자바스크립트에 대해 심층적으로 다루기 위해 노력한 책이다. 아주 기초적인 것부터 자바스크립트라는 언어의 동작 원리까지 많은 것을 다루고 있다. 

 

 나는 이 책을 읽기 전 이미 인터넷 강의를 통해 자바스크립트에 대해 대략적으로 알고 있는 상태였기 때문에 깊이 이해하기 위해 이 책을 읽기 시작했다. 보통 나는 프로그래밍 언어를 공부할 때  첫째, 가장 중요한 개념들을 무료 인터넷 강의 등으로 대충 훑으며 전반적으로 그 언어에 대해 파악하고 둘째, 책을 보면서 대략적으로 공부했던 내용을 다시 깊게 공부한다. 비단 프로그래밍 언어 뿐만 아니라 무엇을 공부해도 이렇게 대충 훑은 후 깊게 공부하는 방식을 자주 사용한다. 

 

 

 이 책의 목차는 아래 버튼을 클릭하면 볼 수 있다. 

 

목차

 

<목차>

  1. 프로그래밍
  2. 자바스크립트란?
  3. 자바스크립트 개발 환경과 실행 방법
  4. 변수
  5. 표현식과 문
  6. 데이터 타입
  7. 연산자
  8. 제어문
  9. 타입 변환과 단축 평가
  10. 객체 리터럴
  11. 원시 값과 객체의 비교
  12. 함수
  13. 스코프
  14. 전역 변수의 문제점
  15. let, const 키워드와 블록 레벨 스코프
  16. 프로퍼티 어트리뷰트
  17. 생성자 함수에 의한 객체 생성
  18. 함수와 일급 객체
  19. 프로토타입
  20. strict mode
  21. 빌트인 객체
  22. this
  23. 실행 컨텍스트
  24. 클로저
  25. 클래스
  26. ES6 함수의 추가 기능
  27. 배열
  28. Number
  29. Math
  30. Date
  31. RegExp
  32. String
  33. 7번째 데이터 타입 Symbol
  34. 이터러블
  35. 스프레드 문법
  36. 디스트럭처링 할당
  37. Set과 Map
  38. 브라우저의 렌더링 과정
  39. DOM
  40. 이벤트
  41. 타이머
  42. 비동기 프로그래밍
  43. Ajax
  44. REST API
  45. 프로미스
  46. 제너레이터와 async/await
  47. 에러 처리
  48. 모듈
  49. Babel과 Webpack을 이용한 ES6+/ES.NEXT 개발 환경 구축

 

 

 목차를 보면 알 수 있듯이, 굉장히 자세하게 자바스크립트를 다루고 있다. 개인적으로 Node.js에 대한 부분이 없는 것은 조금 아쉽지만, 자바스크립트 언어 자체를 공부하기에는 정말 좋은 책이다. 단순히 언어의 기능만을 다룬 것이 아니고, 자바스크립트 자체의 작동 원리까지 세세하게 설명하기 때문에 언어 자체를 깊이 이해하고 사용할 수 있다. 다만 자바스크립트를 처음 접하는 독자의 입장에서는 내용이 워낙 방대하다보니 부담스러울 수 있을 것 같다. 따라서 자바스크립트 혹은 프로그래밍 언어를 이미 어느 정도 알고 있는 상태에서 이 책을 읽기를 추천한다. 

 

 또한 이 책은 일반적으로 많이 사용하는 자바스크립트 기능부터, 최신의 드물게 사용되는 기능까지 많은 내용이 들어있다. 게다가 Array, Number, Math, Date, RegExp, String 등 자주 사용하게 되는 표준 빌트인 객체들에 대해 자세하게 설명되어 있다. 개인적으로 RegExp는 메타 문자에 대해 조금 더 자세하게 설명해 주었다면 좋았을 것 같다. 하지만 그 외에는 표준 빌트인 객체들의 메서드에 대해서도 잘 설명되어 있어서 좋았다. 

 

 이 책의 조금 특이한 점을 꼽자면 같은 내용을 여러 번 반복해서 설명한다는 점이다. 이게 장점인지 단점인지는 잘 모르겠다. 여러 번 반복되는 내용이 지겨울 수도 있지만, 또 한편으로는 잘 기억나지 않을 수 있는 부분을 계속 설명해 주기 때문에 이해하기 수월한 부분도 있는 것 같다. 아마 독자에 따라 이 부분은 호불호가 갈릴 것 같다.

 

 종합하면, 이 책은 자바스크립트를 강의 혹은 얇은 책을 통해 이미 배워보았거나 다른 프로그래밍 언어를 배운 적이 있는 사람에게 가장 좋을 것 같다. Node.js는 다루지 않기 때문에, Node.js를 공부하는 사람이라면 이 책 외에 다른 책을 또 봐야 할 것이다. 그럼에도 불구하고 자바스크립트를 깊이 있게 공부하기에 정말 좋은 책이고, 주변에서 자바스크립트를 공부한다고 하면 꼭 추천해 주고 싶은 책이다.

 

 

 

 

728x90
반응형