모던 자바스크립트 Deep Dive 리뷰

falconlee236

·

2021. 12. 25. 18:56

반응형

1. 이 책을 고른 이유


대학교에서 소프트웨어학과에 재학중인 나는 과 특성상 IT관련 지식을 가진 사람이 많고, 코딩으로 업을 삼으려고 하는 동기들이 많다. 내 동기들만 봐도 수많은 사람들이 있다.

  1. 아직 무엇을 해야할지 몰라 학과 수업이라도 열심히 들으려고 하는 사람.
  2. 무언가를 하고 싶은데 수많은 컴퓨터 관련분야에서 어떤부분을 공부할지 계속 찾고 있는 사람.
  3. 자신이 원하는 분야를 정했지만 무엇을 해야하는지 모르는사람.
  4. 자신이 원하는 분야를 정했고 무엇을 해야하는지 알아서 공부를 계속 하는 사람.
  5. 이미 특정분야로 돈을 벌고 있는 사람.

5번 부류의 사람들한테 조언도 듣고 질문도 하면서 학생이 간단하게 부업으로 돈을 벌 수 있는 방법으로 웹개발 외주를 많이들 추천했다. 실제로 이미 인턴이나 취업을 한 내 동기들 대부분 웹과 앱으로 다 취업을 하는 모습을 보며 나 또한 조바심이 들었다. 나는 아직 어떤 분야로 나아가야할지 정하는 단계인데, 많은 분야를 얕게나마 공부해야 선택의 폭이 넓지 않을까? 그러면 최종적으로 선택한 내 진로에 후회가 줄어들지 않을까라는 생각을 했다.

웹 개발에 주축이 되는 언어는 다들 알고 있듯이 HTML5, CSS3, JavaScript 이다. 모든 사람들이 그렇듯이 새로운 언어를 공부할때면 어떤방식으로 접근해야할지 고민이 되기 마련이다. 위에서 언급한 세 언어중에서 HTML과 CSS는 솔직히 언어의 영역이아니라 패스하고 결국은 JavaScipt가 주축이 되서 웹이 동작한다는 사실을 구글링을 통해서 알게 됐다. 심지어 자바스크립트에서 파생된 웹프레임워크가 엄청나게 많기 때문에 Web Side에 입문하려면 필수적인 존재가 되었다.

그렇기 때문에 한번 JavaScipt를 배울때 확실히 배우고 싶었다. 수박 겉핥기식으로 배우는 것은 싫었고, 강의로 듣는것은 더더욱 싫었다. 유료강의라면? 하하... 나는 책으로 공부하는 것을 선호하기 때문에 어떤 책이 자바스크립트를 처음 공부할 때 확실히 개념을 잡을 수 있을지 고민을 했고 이 책을 선택했으며 이 선택은 이제와서 느끼지만 탁월했다.

반응형

2. 주관적인 책 소개


이 책은 한마디로 말하자면 "JavaScipt언어의 작동원리" 라고 부제를 붙일 수 있을 것같다. 이 책을 다 읽은 독자로써 자바스크립트의 A-to-Z를 다 알려준다고 보면 된다. 처음에는 모든 것을 다 설명하려고 하는 저자의 서술방식에 난해하고 어지럽다고 느낄 수 있지만 후반부로 갈 수록 궁금하다고 느끼는 부분을 다 효자손으로 구석구석 긁어준다.

특히 감탄이 나오는 점은 기술 서적인데 서사가 짜여져 있다는 것이다. 어느 한챕터에서 나오는 개념을 배우면 이 개념이 가진 부족한 부분이나 보완해야할 부분을 다음 챕터에서 설명하는 방식을 따르는데, 이 책을 읽으면서 '너무 불편한데?'라고 생각하는 부분을 해결하는 방법론을 다음 챕터에서 설명한다.

3. 인상 깊은 부분


이 책에서 중요하다고 느낀 부분을 몇가지 소개하자면 다음과 같다.

  1. chap 12 - 함수
    함수는 자바스크립트의 알파이자 오메가라고 할 수 있는 부분이다. 이 자바스크립트의 함수는 자바스크립트 하면 떠오르는 수많은 이상한 개념을 생성하는 주범이다. 그만큼 함수형 프로그래밍을 쓰는 자바스크립트에서 함수는 필수 불가결한 존재이자. 이 함수에 대한 이해가 부족하면 뒤에 나올 모든 내용을 이해하지 못한다고 해도 과언이 아니다. 이 책에서 chap 12이후 내용에서 함수와 관련이 없는 챕터는 아무것도 없다. 거짓말하는게 아니라 진짜 없다. 이 함수와 다음에 소개할 프로토타입만 이해하면 자바스크립트를 조금 공부 했다고 말할 수 있다고 생각한다.
  2. chap 19 - 프로토타입
    프로토타입은 자바스크립트로 개발을 할때 반드시 필요한 개념이다. 특히 자바스크립트의 프로토타입은 객체지향 언어만 다루던 사람들이 자바스크립트로 개발을 할때 오개념을 갖기 쉬운 부분이기 때문에 더욱더 세심한 이해와 학습이 필요하다. 결론적으로 말하면 프로토타입은 클래스와 완전히 다른 개념이고 작동하는 방식도 다르다. 지금은 책 소개를 하는 글이지 프로토타입을 소개하는 글이 아니기 때문에 여기서 마친다.
  3. chap 23 - 실행 컨텍스트
    chap 1 부터 chap 22까지 배운 내용을 총망라해서 설명하는 부분이다. 앞에 나와있는 개념을 이해하지 못하면 따라올 수 없다. 자바스크립트의 실행 컨텍스트는 위에서 말한 Javascript 언어의 작동원리 그 자체이기 때문이다. 이 부분을 반복적으로 읽어서 이해한다면 자바스크립트 프로그램이 어떻게 작동되는지 설명할 수 있을 것이다.
  4. chap 39 - DOM(Document Object Model)
    사실상 내가 이 책을 사게 만든 부분이다. 사실 이 책을 읽기전에 자바스크립트로 웹 클론 코딩을 해봤는데, Dom 조작을 하나도 모른 상태에서 하려고 하니까 진짜 아무것도 모르고 막막했다. 그래서 예제 코드를 복사하고 공부를 할때 DOM이라는 용어를 처음 접하게 되었고, 그때 부터 DOM을 자세히 설명하는 책이 있다면 반드시 구매해서 내 것으로 만들겠다는 생각을 했다. 그리고 대망의 chap39는 내 기대치를 완벽히 충족시켜줬다. 내가 원하는 것은 DOM의 모든 것이 아니라 DOM의 개념과 쓰임새, 사용방법만 알아도 충분했다. 솔직히 한권으로 DOM의 모든것을 알 수는 없고 결국은 구글링을 해야할 텐데, 최소한 개념을 알아서 구글링을 할 수준이 되고 싶었는데, 엄청나게 많이 알려준다. 이 부분과 뒤에서 나오는 chap40 - 이벤트와 함께 보면 금상첨화.
반응형

4. 읽고나서 느낀점


온라인 서점 사이트에 초보자가 읽기 어렵다고 하는 사람들이 있는 것 같은데 수많은 텍스트의 압박과 지루한 설명 부분을 넘으면 이해하기 어려운 개념이 속속히 등장하기 시작한다. 이때가 진짜 자바스크립트라는 언어의 시작이라고 생각한다. 쉬운 개념은 결국 다른 프로그래밍 언어와 같거나 비슷한 부분이기 때문에 배워도 딱히 도움이 안되지만 자바스크립트의 고유 개념 (클로저, 프로토타입, 콜백 함수, 고차함수, 함수형 프로그래밍, 생성자 함수, 프로미스, DOM) 은 반드시 이해하고 자바스크립트를 코딩해야 한다.

그렇지 않으면 자바스크립트 언어로 c++코딩을 하는 것과 다름이 없고 이것은 결국 퍼포먼스를 현저히 떨어뜨리는 코딩 방식이기 때문이다. 지루하다고 생각하지말고 찬찬히 다 읽어보자. 나도 chap9까지는 지루해서 이 책 덮을까?라는 생각을 100번도 더했는데 함수 부분에 들어오자 마자 완전 빠져들기 시작했다. 자바스크립트 공부를 할때 쉬운거 찾지말고 바로 중급단계 책부터 시작해도 괜찮다는 생각을 하게한 책이다.

5. 주관적인 평점


진짜 좋음 거짓말이 아니다.
⭐⭐⭐⭐⭐ (5/5)

반응형