본문 바로가기
PROGRAMMING/TYPESCRIPT

TypeScript 란? JavaScript와 차의점

by itengineer 2023. 7. 19.
반응형

TypeScript란

TypeScript는 JavaScript를 확장하여 만들어진 오픈 소스 프로그래밍 언어로, 2012년경에 마이크로소프트가 개발하였습니다. 2017년 2월에 최초 릴리스되었으며, 이후로 Google의 표준 개발 언어로 승인되어 2.2 이후 버전은 2개월에 한 번씩 릴리스 되고 있습니다.

TypeScript의 개발 배경은, JavaScript를 이용하여 대규모 애플리케이션을 개발할 때, 복잡한 JavaScript 코드를 다루기 어렵고 컴포넌트들의 개발을 용이하게 하기 위해 특정 도구들이 필요해졌기 때문입니다. 그러한 상황에서 JavaScript의 단점을 보완하고, 사용성을 개선하여 대규모 개발 시에도 에러가 발생할 가능성을 낮추기 위해 TypeScript가 설계되었습니다.

TypeScript는 Google이 개발하는 프레임워크에도 도입되어 있으며, 미래에도 성장 가능성이 높은 언어 중 하나로 평가되고 있습니다.


TypeScript의 특징

TypeScript는 JavaScript와는 달리 정적 타입을 지원하여 대규모 개발에 유용합니다. 또한 ES2015(ES6) 이전의 JavaScript에는 클래스 개념이 없었기 때문에, 당시에는 TypeScript만이 클래스를 사용할 수 있는 특징이 있었지만, 현재는 JavaScript에서도 클래스를 사용할 수 있기 때문에 해당 특징은 TypeScript만의 독자적인 특징이 아닙니다.

  • TypeScript는 JavaScript와의 호환성이 높습니다.
    TypeScript는 다른 AltJS와 마찬가지로 작성한 코드를 컴파일하면 JavaScript 코드로 변환되므로, JavaScript와 라이브러리 등을 포함한 100%의 호환성을 가지고 있습니다.

    TypeScript에서 확장된 기능은 컴파일러를 통해 JavaScript 코드로 변환됩니다. 현재의 JavaScript로 작성된 프로그램은 모두 TypeScript 프로그램으로 실행이 가능합니다.

  • TypeScript는 타입 정의가 가능합니다.
    TypeScript는 JavaScript를 확장한 언어로, 변수의 타입 정의가 가능합니다. 이를 통해 변수에 지정한 타입과 할당한 값의 타입이 다른 경우에 컴파일 오류가 발생하여 버그 체크에 유용합니다.

    또한 변수를 선언할 때 값을 전달하면 자동으로 타입을 추론하는 "타입 추론" 기능도 가능합니다.

    또 다른 JavaScript와 다른 특징적인 기능으로는, 제네릭을 사용할 수 있습니다. 제네릭은 타입을 추상화하여 실제로 사용될 때까지 타입이 결정되지 않는 클래스나 함수를 다루는 타입 매개변수를 의미하며, 비슷한 기능을 가진 여러 함수를 하나로 묶어 코드의 중복을 줄이는 데에 사용됩니다.

TypeScript와 JavaScript의 차이

TypeScript는 JavaScript와 동일한 구문과 라이브러리를 사용할 수 있습니다.
TypeScript와 JavaScript의 가장 특징적인 차이는 타입 시스템입니다. JavaScript는 실행 시점에 데이터 타입을 결정하는 동적 타입 언어이며, TypeScript는 미리 타입을 정의하는 정적 타입 언어로서 설계되었습니다.


JavaScript는 동적 타입 언어이기 때문에 실행할 때까지 오류가 존재하는 것에 쉽게 인지하지 못하고 버그가 발생하기 쉽다는 문제점을 가지고 있습니다. 그래서 TypeScript는 정적 타입을 채택하여 컴파일 시에 오류를 더 쉽게 인지하도록 설계되었습니다.

또한, JavaScript로 개발 중에 많은 엔지니어들이 직면하는 "Uncaught TypeError: Cannot read property *** of undefined"와 같은 오류를 피하기 위해, 컴파일러 옵션을 사용하여 null이나 undefined인 변수를 체크할 수 있습니다.

이렇게 언어 자체적으로 오류를 사전에 방지하고 버그를 쉽게 발견할 수 있도록 설계되었습니다. 더불어 TypeScript는 JavaScript보다 코드가 간결하고 가독성이 높으며, Microsoft Visual Studio와 같은 통합 개발 환경을 활용하면 강력한 자동 완성 기능을 사용할 수 있어 개발 효율이 크게 향상됩니다.

간결한 코드와 개발 환경의 지원으로 인해 JavaScript와 비교하여 여러 명의 엔지니어가 참여하는 대규모 개발에 적합합니다.


TypeScript의 좋은점

  •  JavaScript와의 호환성이 높습니다.
    TypeScript는 JavaScript의 엄격한 슈퍼셋(상위 호환)이 됩니다. 따라서 JavaScript의 개발 환경이나 실행 환경이 있다면, 즉시 TypeScript를 도입할 수 있습니다.

    또한, JavaScript로 작성한 파일을 TypeScript에서 호출하거나, JavaScript를 위해 개발된 라이브러리나 프레임워크를 TypeScript에서도 사용할 수 있습니다.

  • 오류를 방지할 수 있습니다.
    TypeScript는 선택적인 정적 타이핑 언어이므로, 변수의 타입을 코드 내에서 선언할 수 있습니다. 타입과 값이 다른 경우 컴파일 오류가 발생하므로, 프로그램 전체의 오류를 방지할 수 있습니다.

    또한, JavaScript는 undefined가 발생하기 쉽고, 실행 시 오류의 원인이 됩니다. TypeScript는 컴파일러 옵션을 사용하여 null이나 undefined인 변수를 체크함으로써, 코드의 문제를 발견하고 수정하기 쉬워집니다.

  • JavaScript 지식이 있으면 배우기 쉽습니다.
    TypeScript는 JavaScript를 기반으로 기능을 확장했습니다. 따라서 JavaScript의 문법과 유사하기 때문에, JavaScript를 학습한 사람들에게는 TypeScript가 배우기 쉬운 언어입니다.

    또한, JavaScript의 라이브러리나 프레임워크를 사용할 때는 JavaScript 지식이 필요한 경우도 있습니다. TypeScript를 학습하여 능숙하게 다루기 위해서는 JavaScript 지식이 있다면 원활하게 스킬 업이 가능합니다.

TypeScript와 JavaScript 프레임워크의 관계

TypeScript에서는 JavaScript용 프레임워크도 사용할 수 있습니다. 프레임워크를 사용하면 복잡한 기능의 추가 구현이 용이해지며, 애플리케이션 개발의 효율이 향상됩니다.

JavaScript에는 여러 프레임워크가 있으며, 각각에 특징과 TypeScript와의 관계가 다릅니다. 아래에 소개하는 몇 가지 프레임워크는 모두 오픈 소스이며, GitHub에 리포지토리가 공개되어 있습니다.

  • AngularJS
    Google을 비롯한 여러 기업과 개인을 포함하는 커뮤니티에 의해 개발된 프론트엔드 웹 애플리케이션 프레임워크입니다.

    싱글 페이지 애플리케이션 개발이 가능하며, 하나의 프레임워크 내에서 모든 기능이 완결되는 풀 스택 프레임워크가 특징입니다.

    JavaScript용 프레임워크로 개발되었지만, 2.0 버전 이후에는 TypeScript 개발이 권장됩니다.

  • React
    Facebook을 중심으로 한 커뮤니티가 개발하는 사용자 인터페이스 구축에 적합한 프레임워크입니다. 싱글 페이지 애플리케이션이나 모바일 애플리케이션 개발 베이스로 사용할 수 있습니다. 라우팅이나 API와의 상호작용은 추가 라이브러리를 사용합니다.

    JavaScript용 프레임워크이며, JavaScript 개발이 권장됩니다만, 확장 기능을 사용하면 TypeScript도 사용할 수 있습니다.

  • Vue.js
    Google에서 AngularJS의 개발에 참여한 Evan You가 개발한 프로그레시브 프레임워크입니다. 간단하고 자유도가 높으며 가벼우면서 빠른 동작이 특징이며, 웹 UI 개발에서 필요한 부분만 선택해서 다른 라이브러리와 자유롭게 조합할 수 있습니다.

    코어 라이브러리와 지원 라이브러리 또는 패키지가 분리되어 있어 필요한 부분만 컴팩트하게 도입할 수 있는 장점이 있습니다.

    Vue 3.0은 TypeScript로 작성되어 있으며, 확장 기능 없이도 TypeScript로 개발이 가능합니다.

TypeScript의 학습 방법

TypeScript의 학습 방법은 C 계열 언어와 비교하면 프로그래밍 언어로서의 난이도는 높지 않습니다. 그러므로 이미 어느 정도의 JavaScript 지식이 있는 경우 웹 사이트, 동영상, 참고서 등을 통해 독학할 수 있습니다.

JavaScript를 습득하지 않았거나, TypeScript의 특징과 개발 방법을 단기간에 확실히 배우고자 하는 경우 스쿨이나 온라인 강좌 수강이 추천됩니다.

두 가지 경우 모두 TypeScript는 실제로 동작하는 코드를 작성하고, 코드가 실행 환경에서 어떻게 동작하는지 이해하는 것이 중요합니다. TypeScript의 IDE(통합 개발 환경)는 강력한 입력 지원을 가지고 있으므로, 학습할 때는 Microsoft Visual Studio 등을 도입하는 것이 좋습니다.

TypeScript를 학습하기 전에 JavaScript의 기초를 익히는 것으로 더 효율적인 학습이 가능합니다.



TypeScript는 미래에도 전망이 밝고 인기 있는 프로그래밍 언어입니다. TypeScript는 정적 타입화 등을 도입하여 JavaScript의 동작의 무거움이나 코드의 장황함 등 대규모 개발에서는 사용하기 어려웠던 부분을 개선한 언어입니다. 간결한 코드와 높은 가독성을 가지며, 대규모 개발에서도 오류가 발생하기 어려운 설계로 되어 있습니다.

JavaScript와는 슈퍼셋 관계에 있으며, 100%의 호환성을 가지므로 상호 간에 코드를 호출하거나, JavaScript용 라이브러리나 프레임워크를 사용할 수 있습니다.

TypeScript는 Google의 표준 개발 언어로 승인되어 Web 애플리케이션 개발 현장에서 인기가 높아지고 있습니다.


반응형

댓글