일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 개발자
- Jeremy Winchester
- 생각정리
- 타입스크립트
- 지속 가능한 개발
- 개발자옷
- JavaScript
- 옷
- 후드
- typescript
- 개발 책 리뷰
- 브랜드
- 북 토크
- 맨투맨
- 개발자패션
- brand
- 프론트엔드
- 제레미윈체스터
- HTML
- jeremy
- 프론트앤드
- Winchester
- 티셔츠
- 책 후기
- clean code
- 개발자후드
- 후드티
- 티셔츠디자인
- frontend
- react
- Today
- Total
Electronic Jeremy Record
[Typescript] 타입스크립트를 쓰는 이유 본문
요즘 웹 개발 쪽 채용공고를 보면 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를 하거나 했으면 좋겠다.