Medium - Is TypeScript the way forward?

원문 - Mahdhi Rezvi

Trend 파악을 위한 Medium 기고문 포스팅 - 타입스크립트가 정말 앞으로 가는 길일까요?; 정말 자바스크립트를 대체할 수 있을까요?

Photo by JESHOOTS.COM on Unsplash

What is TypeScript?

여러분은 아마 2019년에 타입스크립트라는 단어를 들어봤을 겁니다. 타입스크립트는 7번째로 많이 쓰이는 언어이며 깃허브에서 5번쨰로 빠르게 성장하고 있는 언어입니다. 타입스크립트(TS)는 마이크로소프트에서 개발한 오픈소스 프로그래밍 언어로 자바스크립트로 컴파일 됩니다 2012년에 출시된 이후로 실제 개발에 적용되고 있으며 매년마다 점점 더 인기를 얻고 있습니다.

최근 개발커뮤니티는 Angular에서 타입스크립트를 쓰는 것과 매우 밀접하게 연관되어 있습니다. 왜냐하면 Angular에서 타입스크립트를 사용하길 강요하기 때문입니다.

Why is TypeScript different from javaScript?

타입스크립트는 자바스크립트의 슈퍼셋으로 간단한 자바스크립트로 컴파일 됩니다. 이 때문에 자바스크립트로 작성된 코드는 모두 타입스크립트에서 동작합니다. 타입스크립트는 순수하게 객체 지향 언어로 클래스와 인터페이스들이 있습니다. 때문에 프로그래머들이 객체 지향 프로그램을 작성할 수 있게 해주며 자바스크립트로 컴파일 해주며 서버와 클라이언트 쪽에서 모두 사용할 수 있습니다.

Source : GeeksforGeeks

타입스크립트는 객체지향 프로그래밍에서 가져온 수많은 장점들이 있습니다.

  • 인터페이스
  • 클래스
  • enum 타입
  • generic
  • 모듈

간략히 차이를 나열하자면 다음과 같습니다.

  • JS는 스크립트 언어로 알려진 것에 비해 (물론 JS도 객체 지향입니다. ) TS는 객체 지향 언어로 알려져있습니다.
  • TS는 JS에서 지원하지 않는 옵셔널 파라미터를 지원합니다.
  • TS는 JS에서 지원하지 않는 정적 타입을 제공합니다.
  • JS에서 지원하지 않는 인터페이스를 지원합니다.

Photo by Priscilla Du Preez on Unsplash

Why should you use TypeScript?

  • JS에서 런타임 시에 발생하던 컴파일 에러를 TS에서는 개발 단계에서 알 수 있습니다.
  • 강력한 type 때문에 여러분은 작업하는 데이터가 어떤 타입인지 알 수 있습니다. 여러분의 코드는 좀 더 모든 사람들이 이해하기 쉽도록 문서화 됩니다.
  • TS의 인기는 거대 IT 기업에서 사용하는 것도 한 몫합니다. Asana, Circle Ci, Slack, Class101 같은 곳이 TS를 사용합니다.

Why should you Not use TypeScript?

  • TS는 컴파일이 필요합니다. 이 말은 여러분의 코드가 TS에서 JS가 되려면 시간이 걸린다는 것입니다.
  • strict type은 시간이 지날 수록 복잡해 질 수 있습니다. 이것은 여러분의 프로젝트가 커질 떄 일어나는 일반적인 현상입니다.
  • TS가 타입에 엄격해도 컴파일러가 에러로 찾지 못하는 인스턴스가 있을 수 있습니다. 그 다음 JS로 작업을 하기 때문에 에러가 있는 채로 실행이 될 겁니다. 이것은 꽤나 드문 일이며 시간이 지날수록 나아지고 있습니다.

Summary

Source : Edureka

Conclusion

이제 어떤 것이 더 좋은지 궁금하실 겁니다. TS의 특성 때문에 TS는 점점 인기를 얻고 있습니다. 그러나 TS가 절대로 JS를 대체할 수 없다는 것을 기억하세요. JS는 TS의 핵심입니다. 항상 개발자들에게는 초종 결정을 해야하는 순간이 옵니다. 만약 여러분이 엄격한 타입을 요구하는 프로그래밍 언어로 작업하는 것이 편하다면 TS를 사용하세요. 그러나 JS로 오랫동안 작업을 해왔다면 선택은 여러분에게 달려있습니다. 그대로 쓰시거나 아니면 기존의 방식을 탈피해서 새로운 것을 배우세요.

Summary

  • 타입스크립트를 사용해야 하는 이유
  • 타입스크립트는 자바스크립트를 포함한다, 엄격한 타입을 요구해서 컴파일 하고 난뒤에 발견되던 에러를 개발 단계에서 포착할 수 있게 해준다.
  • 인터페이스나 option 파라미터와 같이 JS에서 지원하지 않는 객체 지향 언어의 특성을 지원한다.
  • 타입스크립트는 컴파일 후에 JS로 되기 때문에 매번 시간이 걸린다는 단점이 있다.
  • 타입스크립트가 잡지 못하는 타입 에러도 있다. 그래도 점점 나아지고 있다.

© 2019. All rights reserved.

Powered by Hydejack v8.1.1