프론트엔드 개발자라면 타입스크립트 학습이 선택이 아닌 필수가 된지 오래다. 많은 실무 현장에서 타입스크립트를 사용하고 있고, 형식적인 컨벤션을 넘어서 타입스크립트를 사용함으로써 얻는 개발 편의성 또한 무궁무진하다. 아예 자바스크립트가 아닌 타입스크립트로 개발을 시작하는 사람도 적지 않다고 들었다. 나는 타입스크립트에 앞서 자바스크립트를 먼저 학습했었고, 이후에 타입스크립트를 배웠다. 처음에는 자바스크립트의 동적 타입 시스템에 오히려 매력을 느끼고 있었고, 타입스크립트의 타입을 그저 귀찮게 여기고 있었다.
많은 초보 자바스크립트 개발자들도 나와 같은 생각을 하지 않았을까 한다. 자바스크립트로 작성된 프로그램을 처음 타입스크립트로 변경했을 때, noimplicitany 플래그를 활성화 시켰을 때 받는 충격과 당혹감이 타입스크립트 사용에 거부감을 불러일으켰을 것이다. 이미 잘 작동하고 있던 프로그램이 컴파일조차 되지 않으니 말이다. 타입스크립트에 대한 기초적인 학습이 끝나고, 코드에 귀찮을 뿐인 단순한 타입 타이핑을 하고 있으면 타입스크립트가 도대체 왜 찬사를 받는 것인지 의문이 생길 것이다.
의문을 해결하기 위해 다양한 타입스크립트 입문 서적을 읽어보았다. 좋은 내용도 많았지만 대다수의 서적이 프론트엔드 개발과는 거리가 있었다. 단순히 타입을 일일이 타이핑 하는 수준을 넘어서 '우아하게' 타입스크립트를 사용하기 위해서는 기본적인 타입스크립트 지식과 다양한 깨달음이 필요했었다. 다른 사람들이 타입스크립트를 어떻게 사용하는지 찾아보기도 했었고, 스스로 귀찮은 타이핑을 어떻게 줄일 수 있을까 고민하는 시행착오도 많이 겪었었다. 또한 개발하는 프로그램이 거대해지고 많은 데이터를 다루게 되면서야 비로소 타입스크립트의 효용을 제대로 느낄 수 있었다. 공부할 땐 잘 와닿지 않았던 부분을 경험으로 느꼈던 것이다.
그러한 경험과 노하우를 잘 녹여낸 책이 바로 '우아한 타입 스크립트 with 리액트'가 아닐까 한다. 책은 여타 다른 타입스크립트 서적과 마찬가지로, 전반부에서는 타입스크립트에 대한 기본적인 내용들을 알려준다. 다만 다소 형식적인 예시로 실무와 거리가 있는 기존 서적들과 달리, 많은 예제들이 우아한형제들의 서비스에서 실제로 등장할 법한 코드로 제시된다. 중간중간 '우형 이야기'라는 챕터를 통해 정해진 사용법이 없고 활용법에 대해 의견이 갈리는 키워드(enum vs union, type vs interface, unknown과 any, never등의 타입)에 대해 실무진의 견해를 소개시켜준다. 상당히 흥미로운 내용이 많았고, 개발하면서 궁금했던 내용도 많이 적혀있어서, 책을 읽는 도중에도 IDE를 켜서 많은 코드를 리팩토링 했었다. 후반부에서는 비동기 호출, 리액트 훅, 상태 관리에 대한 내용이 등장한다. 엄밀히 따지자면 리액트나 웹 개발에 대한 내용이지만, 타입스크립트를 그러한 상황에서 어떻게 활용할지에 대한 노하우가 잘 정리되어 있었다. 복잡한 라이브러리나 비동기 로직을 사용하면서 타입을 어떻게 정해줄지에 대한 많은 어려움을 해결해 줄 수 있는 내용이었다.
굳이 아쉬웠던 점을 꼽자면, 독자가 프론트엔드 개발, 특히 리액트에 대해서는 일정 수준은 알고 있어야 내용을 제대로 흡수할 수 있다는 걸 꼽겠다. 대략 380페이지의 분량에 타입스크립트와 리액트 모두를 설명할 수는 없는 노릇이니 어쩔 수 없는 부분이다. 또한 책은 타입스크립트가 자바스크립트의 슈퍼셋임을 명확하게 선을 긋고, 타입으로써의 타입스크립트만을 다룬다. 사실 이게 당연하고 옳지만, 시중에 출판된 많은 타입스크립트 서적에서 자바스크립트에 대한 설명이 등장한다. 자바스크립트를 잘 모르는 독자가 자바스크립트를 아우르는 타입스크립트를 배우기 위해 책을 골랐다간 낭패를 볼 수도 있겠다.
간만에 좋은 프론트엔드 개발 서적을 읽었다. 프론트엔드라는 직무가 전문성을 갖고 분화된지 얼마 되지 않아서 책으로는 학습 욕구를 채우기가 많이 어려웠는데, 앞으로도 이런 책이 많이 나왔으면 좋겠다. 또한 소속 개발자들의 인사이트를 엮어서 책을 낸 우아한형제들의 개발 문화도 참 부럽고, 대단하다는 생각이 들었다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'서평' 카테고리의 다른 글
Release의 모든 것 리뷰 (0) | 2023.12.25 |
---|---|
앤서블로 시작하는 인프라 자동화 리뷰 (0) | 2023.10.29 |
그림으로 배우는 리눅스 구조 리뷰 (0) | 2023.09.24 |
파이썬 크래시 코스 리뷰 (0) | 2023.08.27 |
처음부터 제대로 배우는 스프링 부트 리뷰 (0) | 2023.07.23 |