brunch

매거진 책리뷰

You can make anything
by writing

C.S.Lewis

by Razelo Mar 03. 2024

[책리뷰] 이펙티브 타입스크립트

타입스크립트를 위한 룰 가이드 

최근 회사에서 타입스크립트를 사용할 일이 많아서 이펙티브 타입스크립트를 읽게 되었다. 


어느정도 쓸 줄 알지만 제대로 사용하고 싶어서 이펙티브 시리즈에서 책을 고르게 되었다. (코드를 짜고 있는데 무언가 놓치고 있는 기분이 들 때는 이펙티브 시리즈 같은 핵심을 담은 책을 정독하는 편이다.)


참고로 최근 이북을 애용중인데 꽤 볼만하다. 무겁지도 않고 굳이 모든 책을 들고 다니지 않아도 된다는 장점이 있다. 아이패드에 교보 Ebook앱을 설치해서 보면 좋다. 


책은 타입스크립트의 동작 원리와 구체적인 조언에 대한 62가지 조언을 해준다. 몇가지는 읽어도 곧장 이해가 되지 않았다. 또 몇 가지는 지금 당장 프로젝트에 적용할 만한 것들이었다. 덕분에 코드 리뷰를 할때 여기서 배웠던 내용을 떠올리면서 했던 적도 있다. 


예를 들자면 다음과 같은 조언이다. 


브라우저의 DOM과 관련된 타입은 타입스크립트가 사전에 어떤 타입일지(개발자가 현재 어떤 태그를 사용할 건지) 유추하지 못한다. 하지만 만약 개발자가 해당 요소가 어떤 태그인지 이미 알고 있다면 즉 이미 input태그에서 가져올 것임을 알고 있다면 HTMLInputElement라는 타입으로 명시해줄 수 있다는 것이다. 그렇게 되면 하위 코드에서 .value로 값에 접근하려는 시도는 타입 에러가 발생하지 않는다. (HTMLInputElement인 input태그는 값을 받기 때문에 .value에 접근할 수 있다.)


비슷한 많은 조언이 유익했다. 아직 타입스크립트에 익숙하지 않은 탓인지 꽤 많은 조언이 읽어도 이해되지 않았다. 30% 정도 분량이 곧장 이해되지 않았던 것 같다. 꽤 많은 분량인데 아직 내가 JS/TS에 익숙하지 못하기 때문이라고 생각된다. 


책 분량이 괜찮다. 이북으로 봐서 실제 책의 아담한 사이즈를 체감하지 못했지만 교보문고에 가서 직접 종이책을 찾아보면 아담한 사이즈의 책이다. 두께도 두껍지 않고 실제 가로 세로 사이즈도 작다. 내용은 깔끔하고  62가지 조언 별로 명확하게 주제가 구분되어있어서 좋았다. 말 그대로 룰 가이드 북이다. 


타입스크립트의 타입 시스템과 타입 추론, 타입 설계, any에 대한 이야기 그리고 타입스크립트로의 마이그레이션에 대한 이야기가 있었다. 마이그레이션 챕터를 보면서 예전에 맡았던 프로젝트가 떠올랐고 과연 나도 가능할까라는 희망을 품기도 했다. 

가장 중요하다고 생각되는 곳은 타입 시스템과 주론에 대한 챕터다. 타입스크립트의 핵심에 대한 내용이라 꼭 알고 가야할 내용이라고 생각된다. 그리고 가장 현업에서 지키기 까다로운 부분은 any에 대한 챕터라고 생각되었다. 실제로 빠른 시간 내에 개발하는 와중에 any를 쓰지 않는 건 꽤나 어려운 일이라고 생각된다.  


물론 이 책에 나온 모든 내용을 현업에서 활용하기란 어렵다. 책에 나온 모든 내용을 지켜야하는 성역처럼 여긴다면 개발이 불편해지고 개발 시간도 늘어날 것 같다. 다만 점차 개선해가는 와중에 이 책의 조언을 하나씩 반영해간다면 프로젝트에 큰 도움이 될 것 같다. 그리고 타입스크립트의 특성상 그런 노력은 이후에 코드가 거대해지고 여러 사람이 참여할 수록 빛을 발한다. 


책을 읽으면서 그동안 타입스크립트에 대해 몰랐던 부분이 일부 해소되었다. 프로젝트를 진행하면서 모르는 부분은 따로 찾아볼 겨를 없이 필요한 내용만 가져다 쓰다보니 정작 핵심은 놓치고 코드 퀄리티가 다소 떨어지는 문제가 있었다. 하지만 이 책 덕분에 적어도 어느 부분은 바꿔볼 수 있는지 감을 잡게 되었다. 


확실히 타입스크립트는 꽤 괜찮은 타입 시스템이라고 생각한다. 그리고 필요한 수준의 적정선에서 타입을 활용한다면 현업에서 여러 사람과 프로젝트를 함께 할때 실질적으로 많은 도움을 줄 수 있을 것 같다. 불러온 특정 함수 등 어떤 기능이 무슨 타입을 주고 받는지 알아낼 때 아주 유용했고 코드 틈에서 모호함으로 인해 집중력이 떨어지는 것을 방지할 수 있는 나침반 같은 역할을 해주었다. 

다만 그저 자바스크립트에 필요했던 타입을 얹은 개념이기 때문에 결국 핵심은 자바스크립트에 대한 이해가 가장 중요하다고 생각한다. 


이런 류의 책은 한번 보고 끝나는게 아니라 생각날 때마다 다시봐야한다. 이펙티브 시리즈가 특히 그러하다. 



좋은 책을 제공해주신 프로그래밍 인사이트 출판사와 댄 밴더캄님(지은이), 장원호(옮김이)님께 감사합니다. 


재밌게 읽었습니다. 


책은 아래 링크에서 구매하실 수 있습니다. 


https://product.kyobobook.co.kr/detail/S000001033114



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari