[ 찾아쓰는 실무 메뉴얼 ]
타입스크립트가 제공하는 기능은 무언가를 빠르게 만들기보다 정확하게 만드는 것에 집중한다. 이는 차근차근 쌓아나가며 흔들리지 않는, 커다란 구조물을 만들기 위한 노력에 가깝다. 하지만 모든 타입을 정의하는 것은 비효율적이고, 그것은 타입스크립트를 잘 쓰는 방법이라 할 수 없다.
생산성과 개발 편의성 모두를 챙길 수 있다면 얼마나 좋을까?
그러한 관점에서 이 책은 직관과 현실 사이에서 적절하게 타협하는 방법을 알려준다. 타협이라는 단어가 이상하게 보일 수 있지만, 경험에서 나온 면도날이야말로 불필요한 걱정을 시원하게 잘라버린다. 모두가 더하는 방법만 가르쳐서 작업이 과하게 무거웠다면, 이제 이 책을 통해 핵심 외에는 덜어내는 방법을 배워보자!
[ 구성 ]
자주 마주하는 중요한 문제부터, 복잡하고 특수한 경우의 문제까지!
실제로 저자가 이러한 구성을 의도했는지는 확실하지 않지만, 읽는 동안 `파레토의 법칙`을 느낄 수 있었다. 실제로 개념을 무작위로 혼재시키지 않고, '빌드-업'하게 되면 이런 구조가 생길 수 밖에 없다. N회독하는 입장에서 앞부분에 집중하고, 뒷부분은 나중을 위해 쉽게 훑고 넘어갈 수 있어서 좋았다.
앞의 내용은 Major하고, 뒤의 내용은 Minor하다.
[ 형식 ]
문제 인식과 해결의 반복이 가져다주는 사고의 확장
1. 문제 상황을 제시하고,
2. 핵심 답변을 제공,
3. 이후 구체적인 내용 설명
과 같은 형식을 갖는다.
이러한 형식은 책을 문제 해결 도구로 소비하는 활용 지향적 독자들에게 적극적으로 추천하며, 특히, 전자책 형식으로 검색이 가능할 때, 더욱 빛을 발한다.
물론 처음부터 끝까지 곱씹으며 음미하는 탐구형 독자나
N회독하며 책을 빠르게 훑어나가는 속독형 독자들에게도 유용하다.
잘 정리된 두괄식 정보로 지치지 않고 책을 쉽게 읽을 수 있도록 도와준다.
[ 고찰: AI와의 비교 ]
여기서는 조금 현실적인 얘기를 해보자.
솔직한 이야기로, chatGPT 에게 책의 문제 상황과 맥락을 동일하게 입력하면, 더 많은 제안을 해온다. GitHub Copilot 또는 유사한 코드 생성 AI에게, 작성하고 있는 코드의 개선 방법을 문의하면 바로 방법을 제안한다. 또한 책은 시간이 지날수록 그 내용이 낡겠지만, AI는 꾸준히 학습해나간다.
그렇다면 이 책이 왜 의미를 갖는 것일까?
이 책의 목표에 대한 저자의 말을 인용하면,
필자의 목적은 초보자에서 전문가로 안내하는 가이드이자
책을 다 읽은 후에도 바로 사용할 수 있는 빠른 참고 자료를 제공하는 것이다.
1년에 네 번씩 릴리스되는 타입스크립트 최신 기능을 한 권의 책에 모두 담을 수는 없다.
그러므로 앞으로 있을 모든 변화에 대비할 수 있도록 프로그래밍 언어의 오래 지속되는 측면에 초점을 맞췄다.
생산성에 미쳐 AI를 매우 적극적으로 활용했고, 또 하고 있는 사람으로서, AI는 당장의 해결책을 제시해주지만, 이를 통해 사고력을 기를 수는 없다. AI는 어떠한 방법이 유용하다고 제안하겠지만, 이면에 그 유용성의 근거는 학습의 결과일 뿐이다. 많은 사람들이 좋다고 했으니 당신에게도 유용할 것이다라는 전제가, 과연 거대한 시스템을 구축하고 있는 당신의 프로젝트의 방향성에도 적합한지 고민해봐야만 한다.
이 책에서는 저자의 사고 과정을 읽을 수 있다.
합리적인 판단에 이르기까지 향후 방향성을 고려하며 경우의 수를 따진다.
결코 AI가 나쁘다는 것이 아니다. 당연히 더 효율적이다. 하지만 매 순간 다양한 제안에, 스스로 무엇이 좋고 나쁨을 판단하지 못하는 수준이라면, 그래서 올바르지 못한 선택을 되돌리느라 시간을 허비하고 있다면, 이 책은 당신을 건강한 프로그래머로 양성시켜 보다 더 효과적인 선택을 하는데 큰 도움을 줄 것이다.
덧붙이자면 저자는 단순히 typescript의 기능을 소개하는 것이 아니라, 다년간 개발 경험을 토대로 실무적인 관점에서 생산성을 높이기 위한 방법을 소개한다. 기술을 다루는 책들 중 오랜만에 도구를 지배하고, 도구에 종속되지 않는 유연한 사고를 전파하는 저자를 만나서 반가웠다.
[ 내용 ]
https://www.typescriptlang.org/play/
본격적으로 TypeScript를 공부하는 학생들에게는 다음 사이트를 추천한다.
문제를 해결하며 드는 고민들을 기억해두고, 이 책의 저자와 비교해서 보면 좋다.
타입스크립트의 정체성이 곧 `타입 강제성`이기 때문에, 타입, 형식, 그리고 관리 패턴에 대한 내용이 책의 대부분을 차지한다. let과 const 키워드에 대한 사소한 차이나 리터럴 const를 활용하는 꿀팁, carrier 패턴, rest element, 제네릭 등 확장성 증대를 위한 방법, 또는 React와의 연관성을 살려 JSX props 관리 및 조드, 투슬래시 등의 라이브러리 소개도 좋았다.
[ 마치며... ]
재밌었다!
문제를 발견하고, 고민하고 있는 저자를 옆에서 지켜보는 기분이었다.
저자는 초보자들도 품고 싶어했지만, 개인적으로 초보자들에게는 추천하지 않는다.
굳이 읽겠다면, 플레이그라운드를 해결하며 읽어보시는 것을 추천하겠다!
[ 잡담 ]
번외로 10장의 제목은 `타입스크립트 및 반응`이다.
처음에는 내 눈을 의심했고, 그 다음에는 `어, 이거 리액트가 맞지 않나?` 싶었다.
하지만 내용에는 멀쩡하게 리액트라 적혀있는 것을 보면,
아마 원저자가 '리액트의 사용'을 Reaction으로 적어두었을 가능성도 있다.
(그러나 진실은 미궁 속으로...)
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.