time1***
2021-02-21

자바스크립트 기반의 소셜 노트 애플리케이션을 웹 앱, 모바일 앱, 데스크톱 앱 등 다양한 플랫폼으로 만들며 리액트, 리액트 네이티브, 일렉트론, 그래프QL, 몽고DB를 조합하는 방식을 학습한다.
책을 열면 먼저 눈에 띄는 것은 스토리텔링이다. 누가 미국인 아니랄까봐 25개의 장마다 서두를 반페이지 분량으로 시작한다. 가벼운 도입으로 시도하려는 의도는 좋으나 그리 큰 공감이 가지 않는다. 책 자체가 간결하고 축약적으로 썼다는 것에 대한 균형 맞추기 의도처럼 보이는데 개인적으로는 오히려 흐름을 끊어지는 느낌이다.
전반적으로 쭉 따라가다 보면 쉽게 쓰여졌다는 느낌을 받는다. 그냥 따라하기에는 무리가 없다. 어떤 면에서는 지나치게 기초적인 내용을 꼼꼼히 설명하려 든다. 책도 얇은데 mkdir까지 설명할 이유는 없지 않나. 상대적으로 깊이 있는 내용을 다루는 부분에서는 아예 설명이 없다. 나에게는 Heroku 가 어렵게 느껴졌다. Git 과 Heroku를 연동하는 것이 흥미로웠는데 나는 왜 잘 연동되지 않았는지 알고 싶었지만 해결이 어려웠다.
책이 무척 간결하기 때문에 이에 대한 평가는 ‘깊이가 없다’고 할 수도 있지만, 깊이를 다루면 분량이 기하급수적으로 방대해지는 단점이 생긴다. 나도 그것은 원치 않는다. 다만 최신 기술이나 마이너(minor) 기술들에 대해서는 조금 더 설명은 필요하다는 생각이다. 너무 최근이거나 소비자층이 얕으면 구글링해도 자료를 얻기 어렵다. 그 외에는 실전 개발을 하건 공부를 하건 개인이 심화학습을 해야한다고 본다.
이 책의 가장 큰 단점이 있다. 오타다. 개정판이 나오면 분명 보완이 될 것 같기는 하다. 책 전반적으로 작은 따옴표(' single quote) 와 그레이브(` grave) 구분을 하지 않아서 직접 타이핑 해가며 구현하다보면 오류가 나거나 컴파일 에러는 없었는데 결과가 이상한 현상이 생긴다. 그 밖에 가벼운 오타 몇 가지가 있으나 문맥을 보거나 조금만 생각해 보면 쉽게 보완할 수준은 된다. 최신 기술을 빨리 알리고픈 의욕이 앞서지 않았나 싶다.
이렇게 많은 아쉬움을 말했지만 그럼에도 불구하고 이 책이 다루려고 하는 기술들이 갖고 있는 장점은 모든 단점을 덮고도 남는다.
웹서비스를 이루는 [프론트엔드 – API - 백엔드 – DB] 까지 풀서비스를 오로지 자바스크립트로 다룬다. 풀스택 개발자라면 분명 눈이 갈 것이다. 그 과정에서 흥미로운 기술들이 많이 나온다. 여기서 홍미롭다는 말은 실전에 써먹어 볼만 하다는 의미도 포함한다. 다른 리뷰어들 의견처럼 GraphQL은 가히 압도적이다. 이것 하나 건진 것만으로도 책값은 충분하다고 본다.
이 책은 쌩초보에게는 권하지 않는다. 웹개발 경력자이지만 jQuery를 전부로 알고 있는 이들에게도 비추다. nodeJS에 대한 기초 선행지식은 갖춰야 하고 javascript 도 ES6 기본적인 문법과 람다(Lambda)식 정도는 읽을 수 있어야 한다. mongDB와 웹앱에 대한 경험도 처음이라면 어려울 수 있다.
참고로 나는 서버와 프론트를 7:3 정도로 경험한 20년차 개발자다. 현업에서 겪어본 바로는 프론트와 백엔드가 궁합이 잘 안 맞는 경우들을 본다. 프론트는 최신 웹앱 SPA인데 서버는 자바7.0이라든지 하는. 이 책이 제시해 주는 서비스로 풀스택을 꾸린다면 어떨까 생각해 봤다.
사족으로 코딩할 때 모처럼 VisualStudioCode가 편집툴로 괜찮게 느껴졌다. MS제품군이 아닌데. 나 같은 서버개발자는 Eclipse, SublimeText를 최고로 알다보니 그런가.