기술서적 리뷰/IT 기술서적

모던 자바스크립트 입문 - 이소 히로시

Razelo 2021. 2. 27. 11:04

jsp -> spring (스프링은 퀵스타트로 공부했다. ) 까지 하다가 친구들이 깃허브에 node.js로 만든 프로젝트들이 있길래 관심이 생겨서 자바스크립트를 한번 제대로 보고 싶은 마음이 생겼다.

 

책추천을 몇권 골라보았다. 

 

인사이드 자바스크립트라는 책이 처음 있었고, 이후에 자바스크립트 완벽가이드란 책이 있었는데, 

우선 인사이드 자바스크립트는 평가도 좋고, 분량도 딱 적당했지만, (생각보다 얇다) 뭔가 실습할만한 좋은 예제들이 별로 없다고 생각되어서 패스했다.

 

자바스크립트 완벽가이드는 분량이 너무 많다고 여겨져서 부담이 되긴 했는데, 분량 때문이 아니라 다른 사람들의 평을 들어보니  "좋은 책인건 맞다. 그런데 출간된 지 꽤나 시간이 흘러서 맞지 않는 부분이 있다. 그리고 조만간 신 개정판이 나온다. "

라는 말이 많아서 굳이 지금 개정되지 않은 걸 읽을 필요가 없다고 생각되어서 구매하지 않았다. 

 

그래서 모던 자바스크립트 입문이라는 책을 고르게 되었다. 

 

결과는 상당히 만족스럽다. 분량도 부담이 되진 않을 정도로 많다. (완벽가이드만큼 두껍진 않다. ) 

꼼꼼하게 놓치는 부분없이 다 다뤄주었다. 기본기를 확실하게 잡을 수 있는 책이었고, 제일 만족스러웠던 것은 상당히 퀄리티가 좋은 예제들이다. 특정 챕터마다 꽤 난이도 있는 긴 코드가 실려있는데, 입문자에게 정말 좋은 소스가 되는 것같다.

MVC 패턴을 다루는 챕터에서는 생명 게임 시뮬레이터를 만들어보고, 다른 챕터에서는 그림판을 만들어보기도 하는데, 이런 아기자기한 웹 애플리케이션을 다루는 코드가 실려있는 것이 이 책의 가장 큰 매력이라고 생각된다. 

 

책을 읽으면서 느꼈던 건 예제들 중에서 상당히 공학적인?? 아니 수학적인? 그런 방식으로 접근되는 예제들이 몇 개 있다는 생각이 들었다. 에라토스테네스의 체라던지. 가중 산술 평균을 구해서 픽셀의 중앙값을 구한다던지. view의 좌표를 구하는 방식... 그외에 또 몇가지가 더 있었는데, 뭐였는지는 자세히 기억이 안난다. 결론을 말하자면 저자의 경력을 따라가는 예제들이 꽤 있었다고 생각한다. 

 

저자인 이소 히로시는 소개에 다음과 같이 적혀있다. 

 

미국 페르미 국립 가속기 연구원

양자 반양성자 충돌 실험 참여

쓰쿠바 대학원 박사 물리학

이학 박사 

 

뭔가 대충 느낌이 온다. 그래서인지 canvas를 다루는 예제에서도 수학적인 접근이 있는 메서드가 몇개 있었다. 

다른 챕터들도 수학적 접근의 냄새가 풍겼다. 

 

이해가 막연히 안되버리는 그런 난이도의 예제들은 아니다. (사실 딱 하나 이해 안되는 게 있었다. 픽셀의 가중산술평균 방식까지는 이해가 됬는데, 그걸 코드로 view의 픽셀에 특정 방식으로 찍는 파트인데, for문 중첩이 4개에서 5개정도 있어서 이해가 힘들었다. ) 

 

그 프로그래밍 언어에 대해서 어느정도 기본기는 있는 사람이라면 정말 재밌게 읽을 수 있다. 왜냐면 책을 읽으면서 '아 자바스크립트는 좀 뭔가 다르다. 이걸 이런 식으로 접근하나? 이런 기능을 쓸 수 있다고?' 라고 생각하는 부분들이 몇 군데 있다. 특히 컴퓨터공학을 전공한 학생이라면 C/C++ 혹은 JAVA를 배웠을 텐데 만약 그런 사람이라면 읽으면서 엥? 하는 부분들이 몇 군데 있을 수 있다. 그래서 좀더 재밌는 것 같다. (전혀 다른 부분들이 존재한다. 그런 부분이 재밌는 것 같다. )

 

예전에 포프님이라는 유튜버분이 말씀하신 게 기억이 나는다. 언매니지드언어랑 매니지드언어를 모두 알고 있어야 한다는 말이 기억이 난다. 그 분 영상을 많이 보기도 하고, 재밌는 영상들이 많아서 좋아하기도 하는데, 그 말은 꼭 그분이 한 말이라서 맞다고 생각하는 게 아니라. 다른 사람이 말했더라도 맞다고 생각했을 법한 말이다. 

그래서 오히려 다른 언어들과는 차별성이 있는 자바스크립트 같은 언어를 잘 이해해두는 것도 좋겠다고 생각했다. 언어적인 측면에서 이해도가 많이 상승할 것 같은 느낌이 들었다. (그만큼 괴리감을 느꼈다. )

 

꽤 재밌게 읽었다. 드라마를 정주행하면서 동시에 이걸 공부하느라 하루종일 전념하지 못해서 완독하는데 2주 정도 걸린 것같다. 그래도 꽤 잘읽힌다. 재밌어서 잘읽히는거다... 

 

한 가지 유의할 점이 있는데, 책에 보면 파이어폭스를 사용하면 로컬에 있는 파일도 읽을 수 있다고 한다. 

(그냥 크롬에서 열거나 VSCODE에서 웹브라우저 실행기로 실행시키면 동일 출처 정책때문에 에러뜨면서 동작안하는 예제들이 몇 가지 있다. -> 책이 잘못된 게 아니라 책에서도 동일 출처때문에 안되니까 node.js 로 하거나 따로 서버에 올려서 하라고 말해준다. )  그래서 파이어폭스로 사용하려고 했는데, 파일접근이 될줄알았는데, 계속 동일 출처 정책 에러라고 뜨면서 접근이 안됬다. 

인터넷에 검색해보니 관련 사이트에서 댓글 몇 개를 읽었는데, 2020년 몇월부터 파이어폭스에서도 동일출처정책을 위반못하게 막아놨다. 그래서 안된다. 라는 댓글이 몇 개 있었다. 그래서 안되나 생각중이다. 

 

뭐 혹시 내 환경이 잘못되서 그런 걸 수도 있다. 

 

그래서 굳이 node.js로 파일 하나씩 읽어들여가면서 실행시키기도 귀찮아서 그냥 파이썬으로 초간단서버를 만들어서 실행했다. 그래서 이거 덕분에 너무 편하게 했다. 

 

파이썬으로 간이서버 만드는 건 저번에 포스팅했던 걸로 기억한다. 

 

velog에도 정리해놓았다. 

 

아무튼 결론은 정말 좋은 책이다! 다 읽고나면 자바스크립트에 대한 이해도가 높아지는 것은 물론이고, 생소했던 개념들에 대해서 조금 더 알고 싶어서 이리저리 구글링하면서 돌아다니게 된다... 책의 제목이 입문인데, 보통 입문책들의 난이도가 애매한 것에 비해서 딱 알맞은 난이도와 깊이를 제공하는 책이라고 생각된다. 

반응형