캐나다에서 요즘 많이 핫(hot)한 프로그래밍 언어가 있다.
핫한지는 조금 되기는 했지만,
나도 그렇게 주목을 하고 있던 편이 아녔다.
지금 구직을 하다보면 프론트/백 엔드에서 많이 사용하는 react.js/node.js와
많이 사용되는 Typescipt
왜 이렇게 핫한걸까?
타입스크립트(Typescript)란 무엇인가?
타입스크립트(Typescript)는 마이크로소프트에서 개발한 자바스크립트의 상위 집합 언어다.
자바스크립트에 타입 시스템을 추가한 것으로, 코드의 가독성과 유지 보수성을 높이고 디버깅을 용이하게 만들어준다.
타입스크립트는 정적 타입 검사를 수행하므로 개발자가 코드를 작성하는 동안 발생할 수 있는 오류를 사전에 방지할 수 있고 이러한 이점으로 타입스크립트는 대규모 프로젝트와 협업 개발에 적합하며, 최근에는 프론트엔드 개발에서도 널리 사용되고 있다.
타입스크립트의 장점:
- 코드 가독성과 유지 보수성이 높아진다.
타입스크립트는 코드에 명시적인 타입을 지정함으로써 코드의 의도를 더욱 명확하게 표현할 수 있다. 또한, 타입 정보가 코드에 내장되어 있기 때문에 코드 리팩토링이 더욱 쉬워진다. - 정적 타입 검사를 제공합니다.
이를 통해 개발자가 코드를 작성하는 동안 발생할 수 있는 오류를 사전에 방지할 수 있다. 이는 코드 품질을 향상하고 버그를 줄이는 데 도움이 된다. - 개발 생산성을 높일 수 있다.
타입스크립트는 코드 완성을 도와주는 IntelliSense와 같은 편리한 기능을 제공한다. 이를 통해 개발자는 코드 작성을 더욱 빠르고 쉽게 할 수 있다. - 대규모 프로젝트와 협업 개발에 적합하다.
타입스크립트는 코드의 안정성을 높이고 개발자 간의 의사소통을 원활하게 할 수 있다.
타입스크립트의 단점:
- 자바스크립트와 비교했을 때 학습 곡선이 높다.
타입 시스템이 추가되면서 개발자는 새로운 문법과 개념을 익혀야 한다. - 타입스크립트는 자바스크립트의 상위 집합 언어이기 때문에 자바스크립트와의 호환성 문제가 발생할 수 있다.
이는 모든 라이브러리와 프레임워크에서 지원되지 않을 수 있으며, 개발자는 직접 타입 정의를 작성해야 할 수도 있다. - 빌드 시간이 오래 걸릴 수 있다.
타입스크립트는 빌드 과정에서 타입 검사를 수행하기 때문에 대규모 프로젝트에서는 빌드 시간이 길어질 수 있다.
타입스크립트의 장점 중 하나인 코드 가독성과 유지 보수성을 높이는 예를 들면 타입스크립트를 사용하지 않은 자바스크립트 코드와 타입스크립트를 사용한 코드를 비교 해보자.
자바스크립트 코드:
function calculateCircleArea(radius) {
return Math.PI * radius * radius;
}
let circleArea = calculateCircleArea("5"); // 문자열 "5"를 인자로 전달
console.log(circleArea);
위 코드에서는 calculateCircleArea 함수에 문자열 "5"를 매개변수로 전달하면 실제로는 오류이지만 자바스크립트는 이를 인지하지 못한다. 따라서 circleArea에는 NaN이 할당되어 출력된다.
하지만 타입스크립트를 사용한다면 이러한 오류를 사전에 방지할 수 있다.
타입스크립트 코드:
function calculateCircleArea(radius: number): number {
return Math.PI * radius * radius;
}
위 코드에서는 calculateCircleArea 함수의 매개변수로 타입을 number로 명시하고 있다. 따라서 문자열 "5"를 매개변수로 전달하면 타입 에러가 발생한다. 이를 통해 개발자는 미리 오류를 파악하고 수정할 수 있으며 이처럼 타입스크립트를 사용하면 코드의 가독성과 유지 보수성이 높아지는 것을 확인할 수 있다.
더 자세한 부분은 밑에 링크에서 확인하면 된다.
'코딩' 카테고리의 다른 글
어린나이부터 시작하는 코딩.. 좋은 걸까? 나쁜 걸까? (0) | 2023.04.23 |
---|---|
PHP를 사용하여 챗GPT 호출하기 - ChatGPT (0) | 2023.04.04 |
파이썬 3 문자열 replace() 메소드 사용방법 - Python 3 - String replace() (0) | 2023.03.14 |
깃허브(GitHub) 에서 발표한 인기있는 코딩 언어 (2) | 2023.03.09 |
Python 2 vs Python 3 차이점 (3) | 2023.03.09 |