타입스크립트는 Javascript 언어에 타입 안정성을 얹은 언어입니다. Microsoft에서 제작되었고, C#을 창시했던 아네르스 하일스베르가 핵심 개발자로 참여하고 있습니다. 본격적으로 대중화되기 시작한 계기는 Google의 Angular 팀이 타입스크립트를 사용하기 시작하면서 리액트나 Vue.js에서도 Typescript를 받아들이기 시작합니다.
최근 대부분의 Node.js 스택을 사용하는 기업에서는 Typescript로 넘어가고 있거나 이미 넘어간 상황입니다. 최근 읽어본 글 중에서 당근마켓, ZUM에서도 Typescript로 넘어가고 있다는 기술블로그를 작성하기도 했습니다. 그만큼 Typescript가 제공하는 타입 안정성을 갈망하는 추세입니다.
Do it 타입스크립트 프로그래밍 📖
Typescript를 배우기 좋은 책으로 이지스퍼블리싱에서 2020년 출판한 'Do it 타입스크립트 프로그래밍'을 집어들었습니다. 이 책을 선택한 이유는 Javascript의 ES6, ESNext 등 최신 문법을 다루고 있고, Typescript를 활용한 함수형 프로그래밍을 구현하고 있기 때문입니다.
일단 첫장을 펴니 목차가 등장합니다. Do it 타입스크립트 프로그래밍은 기본 Javascript 문법에서 시작해 함수형 프로그래밍을 심도있게 다루고 마지막에는 배치 프로그램과 Express,React를 활용한 API 웹 서비스를 구현해볼 수 있습니다.
📖 Do it 타입스크립트 프로그래밍 목차 📖
첫 장을 넘기면서 Javascript 문법에 대해 다시 한번 살펴볼 수 있었습니다. 실제 웹 어플리케이션을 만들 때 많이 사용되지는 않지만 기본 소양으로 알면 좋을 내용들이 포함되어 있습니다.
가장 좋았던 점은 Typescript로 프로젝트를 어떻게 시작해야 할지 감이 안오시는 분들이 시작점을 잡을 수 있다는 점입니다. 예를 들어 tsc, ts-node, typescript 모듈을 설치하고, 정의 파일을 설치해야 하는 이유, tsconfig.json 파일을 생성하는 방법 등등 타입스크립트 언어가 익숙하신 분들에게는 누워서 코파기겠지만, 처음 타입스크립트를 접하는 개발자분들에게는 이것 조차 진입장벽이 되니깐요.
타입스크립트가 JS 코드에서 어떻게 스며들어갈 수 있는지 알 수 있고, 타입 가드, 대수 데이터 타입, 제네릭 타입 제약, F-바운드 다형성 등등 조금은 깊은 개념의 문법들도 접할 수 있다는 장점이 있습니다. 실제로 이 문법을 사용할지는 미지수지만요.
🔨 Do it 타입스크립트 프로그래밍 아쉬운 점 🔨
책 출판일이 2020년 2월 22일 초판 인쇄로 되어 있는데, 모듈 적용이 안되는게 꽤 있습니다. 예를 들어 12장에 mongodb 부분도 close 함수가 구현이 안되어있어 사용불가. 심지어 홈페이지 자료실에 있는 코드를 그대로 가져와서 실행해봐도 에러가 발생합니다.
또한 mkdirp 모듈을 가져와 사용할 때도 github @types 레포에 들어가보니 매개변수 정의가 다르게 되어 있어 예제 실습이 불가능한 부분도 있습니다. 모듈이 업그레이드 되면서 빠르게 변하는 만큼 유지보수가 되어야 하는데, 이 부분은 아쉽습니다. 결국 에러나는 부분들은 거의 다 통째로 SKIP하면서 봐야 합니다.
8장 부터 나오는 함수형 프로그래밍, 제네릭, 람다 라이브러리, 모나드는 처음 접하는 분들에게는 어려울 수 있습니다. 아니 어렵습니다. JS나 TS가 고차 함수를 지원하고 함수형 프로그래밍을 구현하는데 최적화 되어 있기는 하지만 그럼에도 실제 코드에서 사용하기에는 어려운 개념입니다.
함수형 프로그래밍에 관심이 있으신 분들이라면 이 분야에 대한 개념을 전문적으로 다루고 있는 책을 다시 보시길 추천드립니다. ramda 모듈에 대해 설명하고 예제 코드를 작성하는데, 한번 봐서는 개념이 쉽게 다가오지 않습니다.
Do it 타입스크립트 프로그래밍 후기 🌈
Javascript 언어에는 익숙한데, 타입스크립트를 처음 접하는 분들에게는 적극 추천드립니다. 아래와 같은 질문에 대답할 수 있습니다.
- 타입스크립트가 뭔가요?
- Typescript 개발 환경은 어떻게 만드나요?
- JS코드에 Typescript가 어떤 장점을 취할 수 있나요?
- Javascript를 좀더 심도있게 배우고 싶어요
- Typescript 함수형 프로그래밍이 궁금합니다.
하지만 코드 자체가 안돌아갈 수 있다는 점은 사전에 인지를 하셔야 하고, Typescript의 복잡한 개념들을 다루고 있지만 실용성이 떨어지는 개념들이 주를 이루고 있어 그냥 이런게 있구나 하면서 보시면 될 듯합니다. 만약 실제로 모나드나 람다 라이브러리를 사용하는 프로젝트에 투입되시면 그 때 다시 보시는 것을 추천드립니다.
만약 Javasciprt에 대해 깊게 공부해보고 싶으신 분들은 '모던 자바스크립트 Deep Dive 책 추천드립니다. JS에서는 굉장히 유명한 책이고, 모르는 부분 나올 때 마다 항상 참고하는 책입니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
🚀️ 도움이 되셨다면 구독과 좋아요 부탁드립니다 👍️
'Programming' 카테고리의 다른 글
객체 지향 프로그래밍이란(OPP) (0) | 2022.10.13 |
---|---|
브라우저 주소창에 URL을 입력하면 어떻게 될까? (0) | 2022.10.12 |
Typescript로 express 1분만에 실행하기 (0) | 2022.10.10 |
mkdir -p 옵션이란? 💡 (0) | 2022.10.10 |
백엔드 개발자 기술 면접 질문 준비 정리 (0) | 2022.10.06 |
댓글