요즘 typeScript와 React hooks를 공부하고 있어서 두개를 접목시켜서 가볍게 캘린더라는것을 만들어 보고 있다. 매우 흔한 라이브러리이지만 구조를 만들어 봄으로써 공부도 하고 있다. 오늘은 타입스크립트에 대해서 기본적인 것들만 읽어봄으로써 익히고 있는 중이다.

typeScript

자바스크립트는 1995년 넷스케이프사의 브렌던 아이크(Brendan Eich)가 자사의 웹브라우저인 Navigator 2에 탑재하기 위해 개발한 스크립트 언어이다.

HTML5가 등장하기 이전까지 웹 애플리케이션은 플래시, 실버라이트, 액티브엑스와 같은 플러그인에 의존하여 인터랙티브한 웹페이지를 구축해왔다. 그러다가 HTML5가 등장함으로써 플러그인에 의존하던 구축방식은 자바스크립트로 대체되었다. 또한 AJAX의 활성화로 데스크탑 애플리케이션과 유사한 사용자 경험을 제공할수 있는 SPA(Single Page Application)가 대세가 되었다. 이로써 과거 서버 측이 담당하던 업무의 많은 부분이 클라이언트 측으로 이동하게 되었고, 자바스크립트는 웹의 어셈블리 언어로 불릴 만큼 중요한 언어로 그 위상이 높아지게 되었다.

자바스크립트는 C나 Java와 같은 클래스 기반 객체지향 언어와 구별되는 아래와 같은 특성이 있다.

  • Prototype-based Object Oriented Language
  • Scope와 this
  • 동적 타입(dynamic typed) 언어 혹은 느슨한 타입(loosely typed) 언어

이와 같은 특성은 클래스 기반 객체지향 언어(Java, C++, C#등) 에 익숙한 개발자를 혼란스럽게 하며 코드가 복잡해질 수 있고, 디버그와 테스트 공수가 증가하는 등의 문제를 일으킬 수 있어 특히 규모가 큰 프로젝트에서는 주의하여야 한다.

이같은 자바스크립트의 태생적 문제를 극복하고자 CoffeeScript, Dart, Haxe와 같은 AltJS(자바스크립트의 대체 언어)가 등장하였다.

출처:https://poiemaweb.com/typescript-introduction/

TypeScript 또한 자바스크립트 대체 언어의 하나로써 자바스크립트(ES5)의 Superset(상위확장)이다. C#의 창시자인 덴마크 출신 소프트웨어 엔지니어 Anders Hejlsberg가 개발을 주도한 TypeScript 는 Microsoft에서 2012년 발표한 오픈소스로, 정적 타이핑을 지원하며 ES6(ECMAScript 2015)의 클래스, 모듈 등과 ES7의 Decrator 등을 지원한다.

TypeScript는 ES5의 Superset이므로 기존의 자바스크립트(ES5)문법을 그대로 사용할 수 있다. 또한, ES6의 새로운 기능들을 사용하기 위해 Babel과 같은 별도 트랜스파일러를 사용하지 않아도 ES6의 새로운 기능을 기존의 자바스크립트 엔진에서 실행할 수 있다.

이후 ECMAScript의 업그레이드에 따른 새로운 기능을 지속적으로 추가할 예정이여서 매년 업그레이드 될 ECMAScript의 표준을 따라갈 수 있는 좋은 수단이 될 것이다.

참고 사이트 https://poiemaweb.com/typescript-introduction