가장 좋아하는 운동인 탁구를 군대에서 처음 시작했다. 기본으로 비치되어있던 단면채(펜홀더 그립 라켓)을 사용해서 익숙해져 있었다. 그러다가 전역하고 한참 있다가 동호회 탁구를 시작하게 되었는데 지인분께서 양면채를 선물해 주셔서 어쩔 수 없이 양면채를 사용하게 되었다. 익숙하던 단면채를 포기하고 양면채에 적응하는데에 시간은 좀 걸렸지만 양면채의 장점을 분명하게 느낄 수 있게 되었다.
자바스크립트와 타입스크립트의 관계는 단면채와 양면채의 관계와 여러모로 닮은점이 많은 것 같다. 지인분께서 양면채를 선물해 주신 것 처럼 타입스크립트에 관심이 있는 나에게 동료 개발자분이 타입스크립트 프로그래밍이라는 책을 추천해 주셨다.
시간 날 때 마다 틈틈이 읽는다고 읽었는데도 다 읽는데 2개월이나 걸렸다. 그 만큼 반복해서 읽어야 될 부분도 많았고 실습도 필요한 책이었다. 매우 세밀한 부분까지 다뤄져 있기 때문에 익숙해질 때 까지 여러번 반복해서 읽어야겠는 의지가 생기면서도 다시 첫 장을 펼치기가 무서워지는 책이다.
총 13장 + 부록으로 구성되어 있으며 1, 11, 12, 13장을 제외한 모든 장 마지막 챕터에 연습문제가 있어 복습할 수 있다. 연습문제 난이도가 꽤 높아서 앞 부분 내용들을 대충 훑어보는식으로 읽으면 풀 수 없으며 응용문제도 있어 정독해서 읽었더라도 꽤 고민을 필요로 한다.
1 ~ 2장에서는 는 타입스크립트에 대한 개략적인 소개로 시작을 하며 타입스크립트를 실습해 볼 수 있는 환경을 구성하기 위한 설명도 포함되어있다. 이 부분에서 눈여겨 본 내용이 자바스크립트와 타입스크립트를 비교 설명 하는 부분이었다. 그리고 타입스크립트로 작성된 코드가 어떻게 자바스크립트 코드로 컴파일되는지에 대한 설명도 포함되어있다.
이어지는 3장에서 타입에 대해서 아주 자세히 다룬다. 타입스크립트에 존재하는 모든 타입에 대해서 설명하고 예시를 보여준다. 4장에서는 함수가 등장하는데 함수의 다형성 챕터에서 1차 고비가 찾아왔다. 일단 함수 타입 자체는 파라미터의 타입과 리턴 타입 총 두 개의 타입을 가지고 있으면서 동시에 하나의 타입이다. 함수를 함수 타입으로 선언된 변수에 할당할 때 파라미터와 리턴타입의 다형성이 서로 반대로 적용되는 성질이 있어서 논리적으로 더듬어 가지 않으면 이해하기 힘들었다.
5장에서는 클래스에 대한 설명이 나오며 믹스인 데코레이터 등 새로운 개념이 등장하는데 실무에서는 자주 사용되지 않을 거라고 합리화 하면서 이해만 하고 지나갔다. 6, 7, 8장에서는 고급 타입과 비동기 등 심화적인 내용이 나와서 두 번째 고비가 찾아왔지만 이해하는데 의의를 두고 머리를 부여잡으며 읽어내려갔다. 9, 10장은 크게 중요한 내용은 아니었고 11, 12장은 앞에서 배웠던 내용을 가지고 실습해 보는 내용이었다.
대부분의 기술서적이 그렇겠지만 초반에는 정의와 기본개념, 초중반에는 중요한 개념과 실무에서 꼭 필요한 개념, 중후반에는 비교적 덜 중요하지만 알아두면 좋은 개념, 후반에는 활용관련 내용들로 구성되어있다.
타입스크립트 프로그래밍이라는 책은 타입스크립트를 처음 입문하면서 읽기에는 다소 어려운 감이 없지 않아 있다. 입문할 때는 타입스크립트의 문법에 대해서 잘 정리 되어있는 웹사이트에 나와있는 내용을 기반으로 학습하는게 나을 것 같고 어느정도 타입스크립트 문법에 익숙해진 뒤 읽으면 좋을 것 같다.
기본적인 내용만 학습한 상태에서 타입스크립트로 프로그래밍을 하게 되면서 가끔 타입스크립트의 한계를 느끼곤 했는데 이 책을 읽으면서 '아 이럴때 이런 문법을 사용하면 되네', '이런 문법은 몰랐는데 이렇게 사용하면 유용하겠네' 등의 혼잣말을 할 때가 있었다. 그만큼 많고 유용한 내용을 얇다면 얇다고 할 수 있는 350페이지에 담고 있는 알짜배기 느낌의 책이다.