이번 인턴기간에 타입스크립트를 사용해보고 매력적이라 생각이들었기 때문에 조금 정리를 해보고자 한다.
타입스크립트 특징
타입스크립트는?
- 타입스크립트는 말 그대로 타입을 지정해준다. 자바스크립트에 타입이 추가된 것이다.
그렇기 때문에 코드작성 단계에서 타입으로 인한 오류를 확인할 수 있고, 타입을 미리 지정해주기 때문에 실행속도가 빠르다.
자바스크립트 슈퍼셋
- 위에서 말했듯, 타입스크립트는 자바스크립트의 문법에 타입스크립트를 추가 한 것이다.
자바스크립트로 구성된 코드를 타입스크립트로 컴파일한다. (.ts)
객체 지향 프로그래밍 지원
- 타입스크립트는 ES6를 포함하고 있다. 클래스, 인터페이스, 상속, 모듈 같은 객체 지향 프로그래밍 패턴을 제공한다.
왜 타입스크립트?
타입스크립트를 공부하다 보면 왜 타입스크립트를 사용해야할까라는 글이 많다.
이게 곧, 장점과도 연결된다고 생각한다.
우선, 내가 사용해보며 느낀 장점은
협업, 유지보수
- 내가 쓴 코드를 리뷰 받을 때, 리뷰를 해주는 사람이 보기 쉽다. 인턴생활에 코드리뷰를 받은 적이 있는데, 이게 뭐에요? 라는 질문이 부트캠프 시절에는 무진장 많이 받은 것 같은데 상대적으로 매우 적었다.
즉, 다른사람이 내 코드를 보거나 협업중에 구조를 파악하기 쉽다라는 말일 것이다.
에러캐치
- 자바스크립트가 동적임에 반해 타입스크립트는 정적이다. 자바스크립트가 동작하며 휴먼에러로 인한 예기치 못한 에러가 날 수도 있고, 이를 캐치하는게 매우 어렵다. 그러나 타입스크립트는 컴파일 과정이 있기 때문에 이 과정에서 타입에러에 대한 부분을 코드 작성과정에서 캐치할 수 있다.
리소스 세이브
- 매개변수가 어떻게 들어오는지 무엇이 들어오는지 등에 대해 파악하기 위해 여기저기 뒤져보며 문제를 해결하려다 가까워 오는 데드라인에 멘탈이 온전치 못한 사람 = 나
타입스크립트는 타입과 변수 이름을 알려줌으로 상당한 리소스를 세이브할 수 있다.
상당히 매력적인 부분
브라우저 호환성에 관한 문제
- 타입스크립트는 ES6+문법들을 ES5로 바꿔주어 브라우저 호환성에 관한 해결법으로도 충분히 매력적이다.
단점
- 귀찮을 때가 있다. 규모가 커지기 전에는 사실.. 좀 귀찮을 수도 있다..
내가 했던, 프로젝트는 그렇게 규모가 크진 않았기 때문에 나는 '이걸 왜 지정해주어야 하는거지 대체'라는 생각을 많이했다. (나만 그런걸까 혹시..?)
그러나, 예전 게임회사에서 일할 적 코드들의 양과, 맨날 바뀌는 담당자들을 생각해보면 타입이 있음 편하긴 하겠다라는 생각을 했다.