[IT 도서리뷰📘] 단숨에 배우는 타입스크립트 - 야코프 페인, 안톤 모이세예프
단숨에 배우는 타입스크립트
- 저자 : 야코프 페인, 안톤모이세예프
- 출판 : 영진닷컴
들어가며
타입스크립트? -> 타입스크립트!
내가 웹 공부를 시작한 때만 해도, 타입스크립트는 부가적인 선택이었던 분위기였다. 그때는 주로 php나 jquery 기반으로 돼있는 레퍼런스들이 많이 보였고, HTML+CSS+바닐라 자바스크립트 기반의 웹을 만들면서 연습했던 기억이 난다.
하지만 이제는 JS를 사용한다면 (그리고 그 프로젝트 규모가 매우매우매우 tiny한게 아니라면) TS를 사용하는 것은 선택이 아닌 필수가 되어버렸다. 굳이 JS를 써가면서 에디터의 지원없이 런타임에 나오는 에러와 싸우고 싶은 사람은 없을 것이다. TS 는 현재 인기있는 프로그래밍 언어 5위 안에 드는 보편적인 언어로 거듭났고 예전에 사람들이 가지고 있던 새로운 정보, 새로운 기술이라는 막연한 부담감은 거의 사라진 듯 하다.
이렇게 보편적인 언어가 된 만큼, 타입스크립트 기본적인 문법을 숙지하고 TS 생태계에 주기적으로 관심을 가져야 한다. 종종 npm에서 타입을 지원하지 않는 모듈을 쓰거나, 타입 추론에 에러가 있거나 부족한 경우를 맞을 때가 있다. 이럴 때, 난이도가 있는 타입들에 막혀 (다중 제네릭 혹은 함수형 타입을 이용해야하는 경우) 결국 해결하지 못하고 울며 겨자먹기로 타 모듈을 선택하는 상황, 혹은 any를 떡칠하는 상황을 맞아본 경험이 있을 것이다. 필자는 몇 번 그랬다. 그럴 때마다, 타입스크립트를 좀 더 깊게 파보고 싶다는 생각을 하곤 했는데 (생각만 하고 실천을 안해서 문제였다..) 이 책을 기회로 기본 base 지식들은 좀 더 다지고, 제네릭과 같은 고난이도 타입 추론에 대해서는 익히는 계기로 해야겠다는 마음을 가지고 읽게 되었다.
앵귤러, 리액트, 뷰를 기반으로 하는 블록체인 앱을 만드는 실습을 포함하고 있는 것도 엄청난 메리트이다. 앵귤러, 리액트, 뷰 모두 프론트엔드 개발자인 나에게는 매우 친숙하면서도 관심을 가지고 있는 라이브러리들이다. 뿐만 아니라, 최근 핫하다 못해 개발자가 아닌 사람들까지도 모두 알고있을 정도로 유명하고 유망한 블록체인 기술을 직접 구현해볼 수 있다는 것도 흥미를 끌기에는 충분했다.
Key point
- 디테일한 내용과 가독성
- 여러 프레임워크 기반의 탄탄한 예제
디테일한 내용과 가독성
우선 내용적인 측면에서, 거의 타입스크립트 공식문서를 읽는 듯한 느낌을 주었다. 거의 모든 문법들을 하나하나 다 설명하고 있기 때문이다. 그만큼 책의 두께도 엄청 두껍고, 담고 있는 내용들도 많다. 좋은 시각에서 바라보면, 가격에 비해 많은 내용을 담고 있는 책인 것이고, 안좋게 보면 불필요하게 너무 과도한 내용을 담고 있다고도 볼 수 있다. 타입스크립트의 문법들과 개념은 타입스크립트 공식문서에도 이미 자세하고 친절하게 설명을 확인할 수 있기 때문이다. 기존에 타입스크립트 문법에 대해 배경지식이 있는 사람들은 굳이 앞부분을 자세히 읽을 필요는 없다고 느꼈다. 다만, 이 책의 번역자 분과 책을 편집(?) 하신분께서 굉장히 가독성 좋게 책을 구성해주셨기 때문에 많은 내용을 담고있지만 거부감 없이 술술 읽히는 점은 당연히 장점이다.
일반적인 코드 주석이 아닌, 따로 지시선을 통해서 주석을 일일이 달아줌으로서 가독성을 높여주고 있는 모습이다.
여러 프레임워크 기반의 탄탄한 예제
- Basic (html + ts + css)
- Angular
- React
- Vue
이 책의 40% 정도가 타입스크립트의 기본 문법, 탄생 배경, 함께 쓰이는 도구들에 대한 소개였다면, 나머지 60%는 블록체인을 기반으로한 타입스크립트 애플리케이션 예제들을 담고 있다. 블록체인 앱이니만큼 블록체인의 원리에 대한 설명도 포함이 되어 있고, Angular, Vue, React 총 세 가지 프레임워크를 기반으로 같은 어플리케이션을 만들어낸다.
세 프레임워크 모두 결과물은 거의 동일하고, 객체지향 프로그래밍을 기반으로 거래내역을 저장하는 블록체인 앱을 만들어내는 것이 목표이다. 각 프레임워크에 대한 설명, 서버와 클라이언트 및 웹 소켓 등 앱을 구현하는 데에 필요한 정도
의 개념은 어느정도 설명이 되어 있어, 초심자도 프로젝트를 진행하는 데에 무리가 없을 것으로 보인다.
내용 자체는 간단한 프로젝트지만, 빌드 과정에서부터, 패키지에 대한 개념과 모듈화, 패키지 구조짜기, 린팅, ts 설정 등등 프로젝트의 환경 세팅에 대한 부분은 어물쩡 넘어가지 않고 개념 설명까지 확실하게 담고 있는 점이 이 책의 장점이다.
* 모든 예제들은 https://github.com/yfain/getts에서 확인이 가능하다.
마치며
총 536페이지나 되는 두꺼운 책이지만, 기초적인 내용 위주라서 금방금방 읽히는 책이다. 이미 타입스크립트에 익숙한 독자라면, 복습한다는 생각으로 쭉쭉 읽어나가다보면 놓치고 있던 내용들을 조금씩 발견하고 다시 볼 수 있게 된다. 나 또한 블록체인에 대해서는 잘 몰랐기 때문에, 그 부분에 좀 더 집중해서 읽었고, 읽는 데에 약 1주정도 걸렸다. 그 외에 제네릭을 이용한 심화 타입 구현과 데코레이터를 타이핑하는 부분도 좀 더 주의깊게 읽었던 것 같다. 일부 다시금 확인해보고 싶은 내용은 형광펜을 쳐두고 나중에 다시 읽어볼 생각이다. 앵귤러나 뷰로 예제를 구현하는 부분은 내가 앵귤러, 뷰를 쓸 일이 있을까 싶어서 일단 넘어갔는데, 추후에 사용할 일이 있다면 공식문서와 함께 이 책을 찾을 것 같다.
다시 한번 강조하지만 이 책이 담고있는 내용 자체가 어렵지가 않고, 전반적인 내용의 대부분이 TS 공식문서에서도 찾아볼 수 있는 내용이라 이미 숙련도가 있는 사람에게는 굳이 추천할만한 책은 아니다. 다만 TS를 새로 배우고 싶은데 딱딱한 공식 문서보다는 책으로 보는 것이 잘 맞는 사람, 기초를 잡고 실제 코드를 구현해보고 싶은 사람에게 권하기 좋은 책인 것 같다. 뒤에 담고 있는 예제도, 프레임워크 자체에 심화적인 내용은 전혀 없어서 정말 책 제목 그대로 기초부터 단숨에 배울 수 있다. 다만 그만큼 너무 큰 기대를 가지고 예제를 시작하지는 않아야 한다!
*
타입스크립트 만세 ~ 😁
모든 개발자들의 주 언어가 타입스크립트로 대통합 되길 바라는 개인적인 욕망을 가지며...ㅎㅎㅎ
* [출판사로부터 도서를 제공받아 주관적으로 작성한 리뷰입니다.]