타입스크립트를 공부하기 전에

타입스크립트

타입스크립트는 자바스크립트에 비해 생산성과 안정성이 높다고 알려져 있다.

왜 그럴까? 타입스크립트는 왜 만들어졌으며, 왜 사람들이 자바스크립트에서 타입스크립트로 전환할까?

한 마디로 말하자면 타입 안정성 때문이다.

타입스크립트의 타입 안정성을 통해 타입스크립트의 장점을 이용할 수 있으며 이를 통해 코드에 버그가 줄어들 수 있다. 또한, 사용자가 마주할 수 있는 런타임 에러를 현저히 줄일 수 있다.

자바스크립트를 사용한 리액트 네이티브 프로젝트를 몇 개월간 수행해보며 느낀 경험으로 보았을 때, 나는 타입스크립트를 적극적으로 사용해야 한다고 생각했다.

실제로 개발 QA 단계에서 마주하지 못했던 에러를 이미 앱스토어 심사가 끝난 후 사용자로부터 앱이 죽는다는 피드백이 들어오는 경우가 왕왕 있었기 때문이다. 이러한 런타임 에러는 사용자에게 부정적인 경험을 선사할 수 밖에 없다.

자바스크립트는 자유도가 높은 언어이다. 반면, 타입스크립트는 타입 안정성을 보장받기 때문에 다소 자유도가 떨어진다.

자유도가 높음으로서, 즉 타입 안정성의 부재로 발생할 수 있는 문제 중 아주 작은 예시가 있다.

let a = 1
let b = '2'

console.log(a + b)
// '12'

위처럼 말도 안되는 작업을 자바스크립트는 당연하게 수행한다. 처음 개발을 배울 땐 이게 왜 당연한지 조차 몰랐다.

숫자 타입과 문자열 타입의 덧셈을 저렇게 의도했다면 모르겠지만, 대부분은 숫자 타입의 연산을 의도했을 것이다.

let a: number = 1
let b: number = '2'

// 에디터에서 코드 두번째 줄에 빨간 줄이 뜬다.

타입스크립트는 위와 같이 코드를 작성하고 실행하기 전에 발생할 수 있는 에러를 미리 알 수 있다. (덧셈을 실행하기 전, 변수에 할당할 때 부터)

타입스크립트로 작성한 코드는 자바스크립트로 컴파일된다. 브라우저는 자바스크립트를 이해하기 떄문이다.

타입스크립트를 사용하는 것은 결국 자바스크립트로 컴파일되어 결국 자바스크립트라는 핵심 코어를 공유하는 것은 맞지만, 타입스크립트를 사용하는 것으로 우리가 무심코 저지를 수 있는 실수를 최대한 보호받을 수 있다.

자바스크립트로 컴파일되어 이 파일을 브라우저가 읽는 것인데, 어떻게 실수를 보호한다는 걸까?

이는 타입스크립트가 자바스크립트로 컴파일되기 전에 에디터 상에서 에러 메세지를 띄움으로서 보호한다. 타입스크립트로 작성된 코드에 에러가 있다면 그 코드는 자바스크립트로 컴파일되지 않는다.

타입스크립트엔 기존의 number , string , boolean , undefined 등 원시 타입 이외에도 독특하고 다양한 타입이 존재한다.

이를 통해 자바스크립트 프로젝트 보다 안정적이고 생산성있는 프로젝트를 개발할 수 있다.

YUNSU BAE

YUNSU BAE

주니어 웹 개발자 배윤수 입니다!

예술의 영역을 동경하고 있어요. 🧑‍🎨