Electronic Jeremy Record

[Typescript] 타입스크립트를 쓰는 이유 본문

카테고리 없음

[Typescript] 타입스크립트를 쓰는 이유

Jeremy Winchester 2022. 2. 4. 17:30
반응형

요즘 웹 개발 쪽 채용공고를 보면 Typescript가 꽤나 보인다.

규모가 좀 있고 나름 기술력이 있는 회사들의 공고는 거의 타입스크립트를 자격조건이나 우대조건에 포함되어 있다.

그럼 도대체 Typescript가 뭐길래 그러는지에 대해 알아보자.

 

 

Typescript는 Javascript의 이름 그대로 타입 부분을 잘 명시해서 사용하고 싶을 때 쓰는 

일종의 Javascript 상위 호환 또는 대용품 또는 보조제라고 할 수 있다. 

즉, 완전 다른 언어가 아니라 Javascript의 문법을 그대로 사용이 가능하다.

그럼 왜 많은 공고에서 Typesccript 를 요구할까?

그럼 왜 굳이 Javascript를 안쓰고 Typescript를 쓸까?

 

왜냐면 Javascript는 Type 방면에서 가지는 결점이 있다. 

그 결점은

Javascript는 Dynamic Typing을 지원한다.

Java, C 같은 언어는 변수를 선언할 때 그 변수의 타입을 지정한다. 

int aa;
string bb;

그런데 Javascript는 

let aa;
var bb;

변수를 선언할 때 타입을 지정하지 않는다.

해당 변수에 어떤 타입의 값이 들어오냐에 따라 해당 변수의 타입을 자동으로 지정한다.

거기다가 이런 것도 된다 .

5-'3'
parseInt([1,2,3])

타입과 상관없이 자동으로 타입이 설정되어 결과값을 받을 수 있다.

(이 Javascript의 관대함)

 

이게 어떻게 보면 좋아보이지만

Javascript의 주요 에러 원인 중 하나다.

 

하지만 

Typescript에서는 이런 걸 전부 에러로 표시해주고 왜 에러인지 어디가 에러인지 아주 친절하게 말해준다. 

 

이것만 보면 되게 별거 없어 보인다. 

실제로 별거 없다.

말 그대로 타입을 좀 타이트하게 관리해주고

Narrowing 같이 타입 처리에 대해 좀 신경 쓰라고 잡아주는 정도

 

내가 회사 점심시간에 타입스크립트 책을 보고 있으니 누가 쓸데없는 공부라고 하더라.

(니가 낸 에러 내가 디버깅해주니까 필요성을 모르는거다 멍청아)

 

뭐 솔직히 컴파일하면 Javascript로 떨어지고, 말 그대로 Javascript를 잘 짜게 도와주는 언어인데 

"굳이?"라는 생각을 할 수도 있다. 이해한다.

하지만

코드를 방대하게 짜거나 

다른 사람과 개발을 같이 하거나 

다른 사람이 짜둔 코드를 수정할 일이 생기면

생각이 달라질 수 있다.

 

말마따나 쪼그만 한 기능이나 웹페이지를 개발할 때는 "굳이?"가 맞을 수도 있지만

큰 프로젝트할 때는 legacy가 제~~~ 발 typescript로 만들어졌길 기도해야 한다.

본인이 Javascript로 개발해도 Type 관련 버그가 나지 않도록 잘 만들 수 있다 하더라도 

모두가 그렇지 않고, 그렇지 않은 사람이 짠 코드에 뭔가를 추가하거나 수정할 일이 생기면

전체를 다 바꿀 텐가?

 

거기다가 Typescript는

에러 메시지가 기가맥히게 친절하다 

Javascript 에러메세지가

"여기 에러 났는데요 네가 알아서 왜 났는지 찾아 잘 해결하세요"

라고 말해주는 반면 

Typescript 에러 메시지는

"여기 int 타입인데 string 넣었으니까 이렇게 수정해"

"array에 mep() 같은 Prototype은 없는데 혹시 너 map() 쓰려다가 오타 난 거 아니냐?"

이렇게 친절하다. 

 

그래서 결론은

Typescript는 언어라기보다

일종의 Addon? IDE? Extention? Lint? 같은

부가기능이라고 볼 수 있다. 

 

본인이 Javascript 좀 친다면

어차피 Typescript 금방인데 

쓸데없는 공부라고 하신 분 좀 이 글 좀 보고 

에러를 내지 말거나 Typescript를 하거나 했으면 좋겠다. 

반응형