Ch.8 타입스크립트로 마이그레이션하기

About

TS는 JS보다 개선된 언어이다.

  • 그러므로 프로젝트를 새로 시작한다면 고민할 필요 없이 처음부터 TS를 사용하면 된다.

  • 그런데 규모가 크고 오래된 JS 프로젝트가 이미 존재한다면, 그 프로젝트를 TS 프로젝트로 전환하기에 시간이 많이 들 것이다. 그렇다고 그대로 JS로 유지보수하는 것도 고통스러울 것이다.

이번 장에서는 덩치 크고 낡은 JS 프로젝트여도 점진적으로 TS로 마이그레이션할 수 있게 하는 몇 가지 방법을 소개한다.

큰 프로젝트를 TS로 마이그레이션하는 작업은 어렵지만, 프로젝트의 품질을 크게 개선시킬 수 있다.

  • 2017년의 한 조사에 따르면 GitHub의 JS 프로젝트에서 발견된 버그의 15%는 TS를 사용했다면 컴파일 시점에 미리 방지했을 수 있을 거라고 한다.

  • 또한 AirBnB에서 진행된 프로젝트의 사후 분석(post-mortem) 6개월치를 조사해보니, 발견된 버그의 38%가 역시 TS를 사용했더라면 방지할 수 있었던 것들이라고 한다.

팀 단위 프로젝트에 TS를 도입한다면 위의 사례를 들어 팀원들을 설득할 수 있을 것이다.

프로젝트에 TS를 사용하기로 결정했다면, 본격적 작업에 앞서 점진적 마이그레이션을 실험해보고 테스트해야 한다. Item 59에서 TS로 실험하는 방법을 설명한다.

한꺼번에 많은 코드를 TS로 전환할 수 없기 때문에, 대규모 프로젝트를 마이그레이션할 때는 점진적으로 전환해야 한다. Item 60에서 이러한 점진적 마이그레이션을 다룬다.

마이그레이션 작업은 오랜 시간이 필요하기 때문에, 진행 상황을 모니터링 및 추적해 중복된 작업을 방지할 수 있어야 한다. 따라서 마이그레이션이 얼마나 진행되었고 현재 상황이 어떤지 수치화하여 눈으로 볼 수 있게 하면 팀원들에게 동기 부여도 될 것이다. Item 61에서 마이그레이션 진행 상황을 수치화하는 방법을 다룬다.

이번 장의 예제는 대부분 순수 JS라서 TS 컴파일러에서는 오류가 발생할 수 있으니, 타입 체크 설정을 해제(e.g., noImplicitAnyoff로)하여 타입 체크가 동작하지 않도록 한다.

Table of Contents

Last updated