맨 땅에 프론트엔드 개발자 되기

타입스크립트를 사용하는 이유 본문

코딩 공부 일지/TypeScript

타입스크립트를 사용하는 이유

헬로코딩 2022. 9. 1. 14:25
728x90

타입스크립트를 사용할 줄 알아야 프론트엔드 개발자 연봉이 높아진다던데ㅋㅋ

왜 그렇게 타입스크립트를 기업에서 우대해주고 프론트엔드 개발에 있어서 점점 쓸 줄 모르면 안 되는 상황까지 가는가...?

그 이유가 궁금해서 나름대로 이유를 찾아보고 정리해봤다.

타입스크립트(TypeScript)

타입스크립트는 자바스크립트의 기본적인 틀을 가져가되, 거기에 타입 지정이라는 옵션을 얹은 것이라고 생각하면 된다.

초창기의 웹페이지는 지금의 웹페이지처럼 사용자와 인터랙티브한 기능이 많지 않았고, 도서관에서 책을 꺼내보듯이 인터넷 생태계에 많은 양의 정보를 저장해두고 꺼내보는 형식이었다. 그래서 자바스크립트는 견고한 구조를 짜기보다는 빠르게 어떤 기능을 만들기 위해 개발된 언어였다.

그러나 복잡한 웹앱들이 등장하고 프론트 쪽에서 할 일이 많아짐에 따라 견고한 프로그램이 만들어질 필요성이 요구되자 다른 정적 타입 언어들처럼 자바스크립트에도 견고하게 만들 수 있는 언어의 기능이 필요해졌다. 그래서 등장한 것이 타입스크립트이다.

 

Javascript Typescript
동적타입 언어 정적타입 언어
인터프리터 언어 컴파일 언어 
독립적으로 사용가능 자바스크립트에 의존적임 (자바스크립트로 컴파일된 후 실행) 
좀 더 유연함 (타입에 제한을 받지 않으므로) 더 나은 구조와 간결함, 일관성, 재사용성
.js 확장자 .ts 확장자
작고 간단한 프로젝트에 적합함 복잡한 프로젝트에 적합함

 

자바스크립트와 타입스크립트의 가장 큰 차이점은 타입을 지정 여부 말고도 한 가지가 더 있다. 바로 자바스크립트는 인터프리터 언어이고, 타입스크립트는 컴파일 언어라는 것이다. 인터프리터 언어는 웹 브라우저 혹은 런타임 환경에서 코드를 한 줄 한 줄 읽어내려가 해석하도록 만들어진 언어고, 컴파일 언어는 컴파일링(컴퓨터가 해석할 수 있는 언어로 변환하는 작업) 과정을 거쳐서 실행되어지는 언어다.

타입스크립트는 결국 컴파일링을 거쳐 자바스크립트로 변환된다. 

타입스크립트를 왜 사용해야 하는가?

타입스크립트를 사용하는 이유에 대해 구글 선생님께 여쭤보면 대표적으로 언급되는 이유가

1. 오류를 잡아내기 쉽다.

타입스크립트는 컴파일 언어라고 했는데, 바로 이 컴파일 과정에서 오류를 잡아내기 때문에 오류를 잡아내기 쉽다는 장점이 있다. 자바스크립트는 반면, 실제로 동작하는 과정(런타임 환경)에서 오류를 잡아낼 수 밖에 없다. 가령, 개발자가 예전에 만들어놓은 함수에 파라미터 값으로 숫자 타입을 받아야 하는데 한참 뒤에 그 함수를 사용하면서 스트링 타입의 파라미터를 받았을 경우, 자바스크립트는 이것을 잘못됐다고 하지 않는다. 그러나 타입스크립트는 컴파일 단계에서 잘못됐다고 잡아준다.

타입스크립트를 사용하면 '잔소리 많은 엄마가 옆에서 자꾸 잔소리하는 기분'이라고 표현하는 글을 봤는데, 자바스크립트보다 지정해줘야 할 것도 많고 생각보다 귀찮은 작업이 많다. 그러나 결국 타입스크립트를 사용하는 목적을 견고한 앱을 만드는 것이기 때문에 귀찮더라도 세세하게 다 잡아주는 것이 오류를 막는데 도움이 될 수 있다.

2. 협업에 도움이 된다.

개발자들은 상대적으로 이직이 쉬운 직업이므로 다른 사람이 만들고 튀어버린(?) 코드를 들여다봐야 할 일이 많다. 그럴 때, 타입스크립트로 타입 지정이 다 되어있다면, 이것은 주석을 세세하게 단 것과 마찬가지라고 할 수 있다. 어떤 타입의 값을 리턴해야하는지가 다 나와있으므로 함수 이름이나 변수명을 거지같이 짓더라도 어느 정도는 쉽게 흐름을 파악할 수 있도록 도와줄 수 있다. 바로 이러한 이유로 (견고한 앱 + 인수인계) 기업들이 타입스크립트를 우대해주는 것이 아닌가 싶다.

 

결론

'타입스크립트 안 써도 개발 잘 하고 있는데 왜 귀찮게 자꾸 타입스크립트 쓰라고 하지?' 라고 생각했는데, 타입스크립트를 배우는 것이 생각보다 어렵지 않다. 그리고 꼼꼼한 스타일의 사람이 깔끔하게 노션 작업 해놓은 것을 보면 기분이 좋아지듯이 깔끔하게 타입 지정을 잘 해놓은 코드를 보면 그 사람에 대한 신뢰도가 높아진다고 해야되나?ㅋㅋ

아무튼 무지성으로 타입스크립트 써야돼!!! 가 아닌, 필요 시에는 사용할 줄 아는 개발자가 되면 좋으니까

 

이렇게 스스로에게 세뇌를 시키고 타입스크립트 공부를 하러 가본다...ㅋㅋㅋ

728x90

'코딩 공부 일지 > TypeScript' 카테고리의 다른 글

tsconfig.json 파일 알아보기  (0) 2022.10.19
CRA + TypeScript 초기 세팅 방법 정리  (0) 2022.10.07