이 서평은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
타입스크립트는 인기에도 불구하고 여전히 많은 개발자들에게 어려움을 준다.
타입 검사기와 싸우는 중이던가, any를 몇 개 던져 문제를 해결하는 말을 자주 들을 수 있다.
어떤 사람들은 당연히 동작해야 하는 코드임에도 컴파일러를 만족시키는 목적으로 코드를 구현해야 하며 이 때문에 속도가 느려진다고 느낀다.
하지만 타입스크립트의 유일한 목적은 자바스크립트 개발자의 생산성과 효율성을 높이는 것이다.
이 책은 복잡한 프로젝트 설정부터 고급 타이핑 기법까지 모든 것을 다루는 105가지 레시피를 찾을 수 있다.
타입 시스템의 복잡성과 내부 작동 방식은 물론 자바스크립트의 근간을 해치지 않으려면 고려해야 하는 절충점과 예외에 관해서도 배울 수 있다.
더 우수하고 강력한 타입스크립트 코드를 작성하기 위한 방법론, 디자인 패턴, 개발 기법도 배우게 된다.
이 책은 자바스크립트를 어느 정도 알고 타입스크립트에 발을 담근 개발자, 엔지니어, 아키텍트를 위한 책이다.
타입의 기본 개념과 적용하는 방법을 이해하고 정적 타입이 제공하는 이점을 이해할 것이다.
프로젝트 설정
자바스크립트를 다양한 런타임에서 실행할 수 있듯이, 타입스크립트도 상황에 따라 다양한 방법으로 설정할 수 있다.
추가 도구 없이 순수하게 타입스크립트 컴파일러로 수행할 수 있는 작업을 살펴본다.
타입스크립트는 transpilation에 필요한 모든 것을 제공한다.
웹 배포 시 사용하는 간소화, 최적화 기능은 포함하지 않는다.
대신 ESBuild나 웹팩$_{webpack}$등으로 간소화, 최적화 기능을 처리할 수 있다.
기본 타입
처음에는 쉽게 타입스크립트를 활용해 개발을 시작할 수 있지만, 진행하며 점점 제대로 하고 있는지 확신이 들지 않을 수 있다.
인터페이스를 사용해야 할까 아니면 타입 별칭$_{alias}$를 사용해야 할까?
any, unknown으로 남겨도 괜찮을까?
누군가는 이 둘을 절대 사용하면 안된다고 하는데 그렇다면 왜 타입스크립트에 남아있는 것일까?
2장 기본 타입에서는 위의 모든 질문들에 답을 제시한다.
타입스크립트에서 제공하는 기본 타입들을 살펴본 다음 경험이 풍부한 개발자는 어떻게 활용하는지 배운다.
기본 타입을 배우고 이후 장들에서 활용해 컴파일러가 타입을 어떻게 얻고 애너테이션을 어떻게 해석하는지 이해할 수 있다.
타입 시스템
타입스크립트의 목표는 자바스크립트 코드를 명확하게 만드는 것이고 이 과정에서 자바스크립트의 유연성을 훼손하지 않으려 노력한다.
특히 자바스크립트의 유연성 덕분에 개발자들이 많은 API를 개발할 수 있었다.
3장에서는 타입을 생각하는데 사용할 멘탈 모델을 개발한다.
필요에 따라 값의 집합을 광범위하게 또는 좁게 정의하는 방법과 흐름 제어로 범위를 어떻게 바꾸는지 살펴본다.
또한 구조적 타입 시스템을 활용하는 방법과 규칙을 벗어나야 할 때를 알아볼 것이다.
아쉬운 점
한빛미디어 분들께 제공받은 책이고 좋은 부분을 이야기해야 하지만, 이 책은 짚고 넘어가면 안 되는 부분이 많이 보여서 부득이하게 적게 되었다.
번역
번역이 너무 어색하다.
물론 아직 학생이라 엄청나게 많은 글들을 본 것은 아니지만 그럼에도 불구하고 이상한 문장들이 너무 많았다.
틀린 단어의 종류는 많지 않다. 하지만 그 단어를 틀리면 이 책의 존재 가치가 떨어질 정도로 효과가 강한 단어이다.
바로 ‘타입’이다.
이 책의 옮긴이는 ‘타입’을 ‘형식’이라고 번역해서 이 책을 읽기 힘들게 했다.
조금 더 강한 단어를 사용하면… 이 책을 망쳐놓았다.
타입을 형식이라고 작성해서 도대체 무슨 이야기를 하는지 이해하기가 너무 어려웠다.
모든 목차에 ‘타입’이 들어가는 영향력이 어마어마하게 큰 단어인데 이렇게 ‘형식’이라고 잘못 적어버리면 사실상 책의 모든 부분이 틀리게 되어 이해하기 어려워진다.
아래 페이지를 같이 읽어보자.
끝까지 읽고 이해하는 데 얼만큼의 시간이 걸렸나?
적어도 타입만 제대로 적혀있었다면 읽기 수월했을 것 같다.
그 외에도 ‘리액트’를 ‘반응’이라고 번역하거나 기본 타입이 아닌 기본형, ECMAScript를 EMCAScript라고 적는 등 출판사가 한빛미디어라고 하기에는 아쉬운 부분이 많았다.
원래 내가 알고 있던 한빛미디어라는 출판사는 양질의 내용이 담긴 모두가 좋아하는 책을 내는 곳이다.
이렇게 완성도 떨어지는 책은 번역가는 물론 출판사 이미지에도 영향이 가지 않을까 싶다.
타입스크립트나 리액트 이야기를 다룰거라면 그 분야에서 충분히 경력이 있고 하다못해 적어도 다뤄 본 사람이 하는게 맞다고 생각한다.
번역가가 최소한 타입스크립트에 관련된 경험이 있었다면 좋았겠지만, 번역가 약력을 읽어보았을 때 그런 부분은 잘 느껴지지 않았다.
타입스크립트가 아니더라도, 강타입 언어라면 한 번쯤은 번역가가 사용해봤을 단어라고 판단되어 다른 책은 어떤지 리뷰를 보았다.
아니나 다를까, 비슷한 느낌의 리뷰가 가장 상단에 달려있었다.
아래에 리뷰 사진 두 장이 있는데, 모두 다른 책이다.
나는 리뷰어다 활동으로 책을 받은 분들의 리뷰에도 비슷한 내용이 적혀있다.
같은 사람의 번역가가 4년동안 이렇게 번역을 했는데도 방치한 것은 어느 정도 출판사 잘못도 있다고 생각한다.
개인적으로 개발 관련 서적에서 애정이 가는 출판사 중 하나였는데, 이번 책으로 생각이 조금 바뀔 것 같다.
타입스크립트 번역 관련 참고 레퍼런스
타입스크립트 문서가 포함된 공식 웹사이트를 번역하는 Github Repo이다.
아래는 한국어 변경 관련 이슈이다.
https://github.com/microsoft/TypeScript-Website-Localizations/issues/6
이 이슈를 들어가보면, 한 엑셀 파일을 볼 수 있는데 이 곳에 번역 용어집이 있다.
https://docs.google.com/spreadsheets/d/1cH_SNZs9-oPcKQWifQEYGUEy-610o4MkZ77YC-Xx5RE/edit?gid=0#gid=0
만약 책이 수정된다면, 위 단어들에 적힌 맞지 않은 번역들은 다 고쳐졌으면 좋겠다.
'Life > 독서 기록' 카테고리의 다른 글
[서평] 모던 자바 기능으로 전문가 되기 - 기본기가 탄탄한 자바 개발자 (9) | 2024.09.04 |
---|---|
[서평] 인공지능 시대의 경제 - 금융 AI의 이해 (3) | 2024.09.04 |
[서평] 문제와 해설을 한 번에 - 이기적 정보처리기사 실기 핵심 600제 (0) | 2024.07.19 |
[서평] 테스트 개론 - 프런트엔드 개발을 위한 테스트 입문 (0) | 2024.07.13 |
[서평] 그림으로 쉽고 빠르게 배우는 - AWS 시스템 개발 스킬업 (0) | 2024.07.05 |
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!