안녕하세요 성조입니다.
스스로 학습하고 정리한 내용이므로 100% 올바른 개념이라 말하기 어려울 수 있습니다.
참고용 정도로 읽어주시면 감사드리겠습니다!
타입스크립트란? (TypeScript)
마이크로소프트(Microsoft)에서 JavaScript의 기능과 장점을 추가하여 구현한 슈퍼셋(Superset) 프로그래밍 언어이다.
※ 여기서 슈퍼셋(Superset)이 의미하는 JavaScript의 기본 문법을 포함하는 의미이다.
- 타입스크립트는 오픈소스 프로그래밍 언어이다. 또한 OS, web browser 등 다양한 환경에서도 모두 지원된다.
- TypeScript는 컴파일 단계 또는 바벨에서 JavaScript 소스 코드로 변환하여 출력한다.
- TypeScript는 JavaScript의 컴파일(Compiled)을 도와주는 컴파일러 도구이다.
- TypeScript의 경우 정적 타입 언어(Static type language)를 기반의 언어로 타입을 명시하여 사용한다.
장점
- JavaScript 문법을 포함하여 개발됐기 때문에 JavaScript 코드가 100% 호환되며, 코드를 더 쉽고 강력하게 작성할 수 있게 만들어 준다.
- 사용자 입력값이 올바르지 못하게 사용됐을 때. 잘못된 값이 전달된다면 미리 삭제할 수 있다.
- 웹 브라우저에서 발생할 수 있는 에러를 사전에 확인할 수 있다.
- 프론트엔드 핵심 라이브러리와 프레임워크인 React.js, Vue.js, Angular.js 들도 잘 호환된다.
- JavaScript의 경우 동적 타입 언어(Dynamic type language)를 기반으로 운영되기 때문에 런타임 속도는 빠르지만, 타입 안정성이 보장되지 않는 문제를 갖고 있다. 그런 부분을 TypeScript가 타입을 미리 지정하고, 타입의 안정성이 향상되면서 생산성을 동시에 향상할 수 있게 된다.
- 객체 기반을 지원하는 JavaScript는 상속, 다형성 등을 지원하지 않는 문제를 갖고 있지만 TypeScript는 객체지향 프로그래밍을 하므로 상속, 클래스, 인터페이스 등을 활용할 수 있게 된다.
단점
- 개발 규모가 방대해질 때 작은 타입 하나를 설정하기 위해서 너무 과한 코드 규칙이 생겨날 수 있다.
- 무작정 Any만 선언하게 된다면 동적 타입 언어와 다름이 없게 사용하는 모습이 된다.
- TypeScript는 복잡한 초기 설정을 진행하면서도 100% 완벽한 에러를 제어하고, 통제할 수 있는 것은 아니다.
- Learning curve가 존재하기 때문에 간단한 프로젝트의 경우. 기존 JavaScript를 활용하여 빠르게 만들 수 있음에도 각종 환경으로 프로젝트가 지연돼서 생산성 효율이 오히려 낮아질 수 있다.
타입스크립트는 입문하기에 조금 어려움이 있다는 얘기를 많이 들었지만 어려운 것도 차근차근 밟아 나아가려 합니다.
올바르지 못한 지식 전달 사항이 존재한다면 언제든지 댓글로 얘기해 주시면 감사드리겠습니다.
부족한 포스팅 읽어주셔서 감사드립니다.
다음 포스팅 때 뵙겠습니다.