JavaScript를 Type을 지정해서 써보세요
러닝 타입스크립트
이번 글은 러닝 타입스크립트 라는 책의 리뷰로, 한빛미디어의 나는 리뷰어다 활동을 위해 책을 제공받아 작성된 서평입니다.
갑자기 타입스크립트
어떤 분들은 제가 이번에 읽은 책이, 이전에 읽었던 책들과는 다소 동떨어진 내용을 다루고 있다고 생각 할 수도 있습니다.
그렇기에 R / Shiny 개발자가, TypeScript를 왜 궁금해했을까를 먼저 이야기 해보려고 합니다.
R과 JavaScript의 관계는 거의 없지만, 대신 Shiny와 JavaScript의 관계는 꽤 깊습니다. Shiny는 웹 (HTML / CSS / JS)을 잘 알지 못해도 R만 잘 다룬다면 웹 어플리케이션을 개발 할 수 있게하는 라이브러리이기 때문입니다.
그렇기에 JavaScript를 잘 까진 아니어도 약간만 알고 있다면 R과 Shiny를 더 효과적으로 활용할 수 있습니다. 실제로 저는 대학원생 시절 JavaScript를 Shiny로 임베딩 해서 쓸 수 있게 하는 패키지를 개발한 적이 있는 만큼 잘은 모르지만 약간만 알고 있는
에 가장 잘 맞는 사람이 아닐까 싶습니다.
아무튼 요즘처럼 웹이 “다 해먹는” 시장에서, 웹에서의 사용자의 인터랙션을 구현하는 JavaScript는 아주 유용한 언어가 되었습니다. JavaScript는 “하자가 발생하기 쉬운
” 프로그래밍 언어임에도 불구하고 말이죠.
이를 보완하기 위해서 여러 방법들이 나타났고, 그 중 하나인 TypeScript도 JavaScript를 기반으로 한 언어로써, “웹 개발자”들에게는 꽤나 힙한 언어로 듣곤 했습니다.
만약 약간만 알고 있는 JavaScript 만큼이나 TypeScript를 안다면, Shiny 개발에 도움이 되지 않을까. 생각하던 차에 좋은 기회가 되어 TypeScript를 “찍먹
”하게 되었습니다.
책의 구조 및 특징
1부: JavaScript와 TypeScript에 대한 배경 설명
2부: Javascript를 TypeScript로 바꿔내는 방법
3~4부: TypeScript를 “실제”로 활용하는 방법 (IDE나, Config 옵션 등을 다룸)
저처럼 JavaScript를 살짝만 아는 사람이라면 1–2부는 개론, 3–4부는 Advanced로 체감될 수 있습니다.
- 책의 제목이 “
Learning
” TypeScript인 만큼 TypeScript를 활용하는 프로젝트나 Usecase등은 다루지 않으며, TypeScript에 대한 소개와 개론, 혹은 참고서 정도로 보면 좋습니다.
* 프로젝트에 대한 내용들은 저자가 제공하는 사이트를 통해 공개되어 있어 크게 아쉽지는 않습니다.
- 책은 350 페이지 언저리(새끼손가락 두께정도)로 구성되어 있어 크게 부담스러운 책은 아니며, 책의 내부는 대부분 아래 사진처럼 글과, (
상당히 잘 읽히는
) 코드로 구성되어 있습니다.
- 번역은 23년 1월에 되어 1쇄가 나온 책이지만, 원서는 22년 7월에 나온 책으로, TypeScript 4.7.2 버전을 기준으로 작성되었으며, 23년 2월 기준으로 stable은 4.9, Beta는 5.0을 앞두고 있습니다. (그러나 TypeScript를 개괄적으로 다루는 책이기에 크게 문제 되지 않을 것 같습니다)
그래서
- 개인적인 아쉬움이긴한데, 저는 JavaScript를 라이브러리를 가져다 쓰는 정도 즉, OOP 단계까지는 활용하지 않았어서,
클래스
,제네릭
과 같은 2장 후반부와 3–4장에서는 얻을 수 있는 것이 많지 않았습니다. - 만약 스스로가 JavaScript를 업무에 “지저분하게” 활용하고 있어 이에 대한 갈증이 있거나, JavaScirpt를 아는 상태에서 TypeScript에 관심을 두고 있다면 이 책의 대상 독자가
JavaScript의 기초는 알고 있는 사람
인만큼 이러한 분들에게는 더 도움이 있을 것이라고 생각합니다.
잘 읽히는 코드
위에서 상당히 “잘 읽히는 코드” 라고 표현했는데, (일단 실행시키는 JavaScript를 Type을 명시하도록 보완한) TypeScript가 지향하는 방향에 맞게, 코드에 대한 설명이 적재적소에 있다고 생각되었습니다.
여러권의 개발 / 프로그래밍 언어 관련 서적을 봤고, 그 중에서 전공인 R을 제외하곤 베이스만 있는 상태에서도 잘 읽히는 코드는 아주 오랜만이라 강조하려고 합니다.
이 코드는 이러한 목적으로 실행이 되지만, 저 코드는 실행이 안되는데 이러한 이유로 인해 실행이 안되고, 이렇게 바꿔줘야 수정이 된다. 와 같은 내용들을 코드, 주석, 에러, 그리고 로그를 활용하여 잘 표현해주고 있어서 꼭 TypeScript가 아니더라도 “잘 읽히는 코드”의 관점에서 참고 할 수 있는 부분이 꽤 있습니다.