웹 개발자를 위한 빠른 자바스크립트 학습서

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

우선 좋은 기회를 주신 한빛미디어에 감사의 말씀을 먼저 드린다. 2022년 한 해 동안 의미있는 책들 소개할 수 있는 자격이 주어져서 영광이다. 나는 시스템 엔지니어에서 커리어를 바꿔 개발자가 된 케이스인데 나같은 사람의 시각에서 볼 수 있는 독특한 생각들을 가감없이 풀어내 볼 생각이다.

무던한 개발자를 위한 모던한 자바스크립트

  • 원제 : Modern JavaScript for the Impatient 1st Edition
  • 저자 : Cay S. Horstmann
  • 한빛미디어, 2021

이커머스 개발자로 커리어를 시작하게 되었다. 자바와 스프링 그리고 약간의 HTML/CSS 정도만 할 줄 아는 상태에서 입사를 하니 Backend만 보는 것이 아니라 Frontend도 업무의 연속선상에 있었다. 자바스크립트가 별거라는 생각에 나름대로 코딩을 PR을 올렸더니 팀리더께서 자바스크립트는 이렇게 짜는게 아니라고 반려했었다. 문법이나 사용법이 아니라 자바스크립트의 사상이 필요해서 이 책을 선택하게 됐다.

글쓴이는 첫 단락부터 강력하게 어필한다. Front부터 Server까지 자바스크립트가 사용되는 시대고, 환골탈태를 통해 많은 표준화가 이뤄졌다. 그러나 대부분의 서적들은 구식 자바스크립트에서 최신으로 변환하는 과정에만 집중하고 있어 아쉬웠다고 한다. 그래서 이 책은 제목처럼 “모던한”에 방점을 찍고 있다. 이미 다른 언어를 능숙하게 사용하는 사람들을 위한 자바스크립트 학습서라고 보면 된다. 과거의 혼돈을 애써 가져가려 하지않고 현재의 자바스크립트에 집중한 책이다.

책의 구성은 자바스크립트의 기본 문법과 특징에 대해서 설명하는 책의 초반부, 자바스크립트의 기본 라이브러리 클래스와 배열 그리고 컬렉션가 담긴 중반부, 비동기 프로그래밍을 위한 Promise와 메타 프로그래밍, 제네레이터를 담은 후반부로 이뤄져있다. 여기에 추가로 타입스크립트에 대한 파트가 있다.

글쓴이는 길지 않은 문장으로 쉽게 풀어낸다. null과 undefined의 관계, 자바스크립트와 유니코드, 클로저와 팩토리 클래스 패턴, 호이스팅, 프로토타입 등 자바를 해 온 나에게 자바스크립트가 어떤 사상을 가지고 있는지 견인하는 역할로 충분했다.

이 책의 꽃은 9 챕터 비동기 프로그래밍이라고 볼 수 있다. 자바, C 그리고 코딩 인터뷰를 위해 약간의 파이썬만 해온 나로써는 자바스크립트의 비동기성이 매우 얹짢았다. 과거 electron으로 데스크탑 클라이언트를 만들면서 이 async/await을 이해하는데 가장 오랜 시간이 걸렸다. 분명 동기성을 가져야 할 코드들도 언제 어떻게 실행되서 어떤 결과를 가지고 올지 예측할 수 없어서 고생을 많이 했었던 기억이 난다. 이 파트에서는 내가 겪은 시행착오와, Promise 객체로 해결하는 방법, 콜백 대신 then으로 체이닝 하는 방법까지 완벽하게 설명하고 있다. 진작 이 책을 봤었으면 더 좋았을걸 하는 감상이 강렬하게 들었다.

기술서적은 필요한 부분만 골라서 보는게 맞고, 이 책 또한 그렇게 봐왔었는데 타입스크립트 부분까지 보고 나면 한번 처음부터 끝까지 읽어봐야겠다는 결론에 이르렀다. 작가의 통찰력과 내용의 깊이, 그리고 제시하는 방향이 삼위일체로 잘 이뤄진 책이다.

추천

이럴때 보면 좋다

  • 나는 Spring, django를 하는데 자바스크립트도 해야한다
  • vue.js, react를 어쨌든 한번 접해봤다

아직은 안된다

  • 프로그래밍을 처음 시작하려 한다
  • 아직 (어떠한 형태든) 프로젝트를 해본적 없다

서평을 마치고 3월 리뷰로 찾아오겠다.

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

Comments