본문 바로가기
Programming

Do it 타입스크립트 프로그래밍 후기 💡

by 개발자 염상진 2022. 10. 11.

타입스크립트는 Javascript 언어에 타입 안정성을 얹은 언어입니다. Microsoft에서 제작되었고, C#을 창시했던 아네르스 하일스베르가 핵심 개발자로 참여하고 있습니다. 본격적으로 대중화되기 시작한 계기는 Google의 Angular 팀이 타입스크립트를 사용하기 시작하면서 리액트나 Vue.js에서도 Typescript를 받아들이기 시작합니다.

 

 

최근 대부분의 Node.js 스택을 사용하는 기업에서는 Typescript로 넘어가고 있거나 이미 넘어간 상황입니다. 최근 읽어본 글 중에서 당근마켓, ZUM에서도 Typescript로 넘어가고 있다는 기술블로그를 작성하기도 했습니다. 그만큼 Typescript가 제공하는 타입 안정성을 갈망하는 추세입니다.

 

 

 

 

TypeScript를 활용한 서비스개발

당근마켓은 중고거래 서비스를 넘어선 동네 기반의 하이퍼 로컬 플랫폼으로 도약하기 위해 다양한 서비스를 준비하고 있어요. 그리고 다양한 서비스들을 TypeScript를 활용하여 만들고 있어요. Typ

medium.com

 

 

댓글 모듈 레거시 걷어내기 with TDD

서브도메인에서 사용되는 댓글 모듈의 레거시코드를 걷어내고 Vue, TypeScript, 그리고 Jest를 사용하여 효율적인 유지보수가 가능한 댓글 컴포넌트를 만들어 사내에 배포한 과정을 소개합니다.

zuminternet.github.io

 

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에서는 굉장히 유명한 책이고, 모르는 부분 나올 때 마다 항상 참고하는 책입니다.

 

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 


 

 

🚀️ 도움이 되셨다면 구독좋아요 부탁드립니다 👍️

 

 

프로세스 스레드 차이점 ⁉️

Process? 프로그램을 실행하면 우선 주기억장치에 적재되어 CPU에 의해 실행됩니다. 이 때 CPU에 실행상태에 있는 프로그램을 프로세스라고 합니다. CPU가 프로그램에 할당되고 PCB(Process Control Block)

about-tech.tistory.com

 

 

Spring boot VS Node Express 차이 성능 비교💡️

서버 프로그램을 제작하는 프레임워크는 다양합니다. 프로그램 언어가 다양한 만큼 많은 종류의 프레임워크가 존재합니다. 각자 손에 익은 언어가 있지만, 사용하는 용도에 따라 사용하는 서버

about-tech.tistory.com

 

 

MSA 아키텍처란? SOA를 구현해보자 🚀️

MSA? 개발자들은 뭐든지 분리하는 것을 선호합니다. 잡동사니들이 쌓여있는 방에서 필요한 물건을 찾는건 어렵죠? 같은 논리로 하나의 파일에 모든 기능이 담겨있으면, 프로그램이 작동하다가

about-tech.tistory.com

 

댓글