본문 바로가기
프로그래밍/javascript

[프로그래밍] TypeScript를 왜? 써야 하는가

by 개발 까마귀 2021. 2. 7.
반응형

[프로그래밍] TypeScript를 왜? 써야 하는가

안녕하세요. 개발 까마귀입니다.

 

 

가장 사랑받는 언어에서 2위를 차지하고 전 세계에서 가장 높은 연봉과 관련된 언어에서도 꽤 높은 순위를 차지합니다.

그리고 왜? Javascript 개발자는 TypeScript를 필수적으로 공부를 해야 할까요? 

TypeScript를 사용해야 하는 이유

일반적으로 Javascript는 "Type"을 지정하지 않고 변수를 만들고 함수에서 return을 할 때도 Type을 지정하지 않고 return을 합니다. 이것이 큰 문제점인 이유는 프로젝트의 규모가 커지면 커질수록 데이터의 이동이 복잡해집니다. 데이터 이동이 2~3 depth까지 가면서 로직과 흐름 파악하기가 어렵죠 예시로 들어보자면 페이징을 하는 함수가 있다고 칩시다. 그 함수를 사용하려면 인자 값을 총 3개를 보내야 하면 첫 번째 String 두 번째는 Number 세 번째는 String을 넘겨야 한다고 칩시다. 근데 페이징 함수를 만든 개발자가 아닌 이상은 직접 페이징 함수를 들어가서 코드를 분석하거나 아니면 주석 표시가 되어있으면 주석을 보거나 만든 개발자한테 직접 물어보거나 합니다. 무슨 데이터를 넘겨야 하고 어는 Type의 데이터를 넘겨야 할지 매우 불필요한 시간이 날아간다는 거죠 하지만 TypeScript는 매개변수의 Type이 정해져 있으면 인자 값을 넣을 때 인자 값의 데이터 Type과 매개변수 Type이 다르면 에러가 나버립니다. 또한 받아야 하는 데이터 Type이 3개인데 2개만 인자 값을 넣어도 에러가 나버립니다. 컴파일 전에요. 이러면 불필요한 시간을 단축할 수 있습니다.

오류 찾기가 쉽다.

Javascript의 에러가 나면 어떤 식으로 에러가 뜨죠? 예를 들어 map이라는 함수는 배열에서만 동작하는 함수인데 어느 개발자가 유사 배열을 map 함수를 썼다고 칩시다. 그러면 어느 파일에 어느 줄에 이러한 문제 때문에 에러가 났다고 뜰까요? 그냥 "map 함수는 이렇게 쓰는 게 아니야!"라고만 뜹니다. 오류가 예의가 없습니다. 저희는 그 에러를 찾기 위해 파일을 찾고 고치기 위해 시간을 또 날립니다. 찾는 데에만 요! 이렇게 디버깅이 매우 힘듭니다. 하지만 TypeScript는 디버깅이 매우 쉽습니다. 어느 파일에 어느 줄에 무슨 문제 때문에 이런 식으로 에러가 납니다. 개발자한테 중요한 시간이 단축이됩니다.

객체지향 프로그래밍 지원

Javascript es6도 class는 지원은 합니다. 하지만 인터페이스나 public, preative 등은 지원하지 않습니다. 그렇기 때문에 50%의 객체지향 프로그래밍이 가능합니다. 하지만 TypeScript는 인터페이스나 public, preative 등 객체지향에 필요한 것들을 지원합니다. 그렇기 때문에 c++이나 java를 했던 개발자들분들은 아주 쉽게 TypeScript에 접근해서 빠른 적응을 할 수 있습니다. 

개인적인 생각

처음 TypeScript가 나왔을 때의 저의 생각은 Javascript의 장점을 없애버리고 Java와 비슷하게 가는 언어가 아닌가?라는 생각을 했습니다. 하지만 지금 와서 생각을 해보면 Javascript는 명시적인 규칙이 있어야 합니다. Javascript는 매우 자유로운 언어이지만 그만큼 난장판이 될 수도 있는 언어입니다. 일부 개발자는 Javascript를 보고 "이게 언어냐?"라고 할 정도로 저급한 언어입니다. 하지만 TypeScript가 이러한 문제점들을 잡아주고 더욱 체계적인 프로그래밍이 가능해졌습니다. 또 요즘 나오는 프레임워크는 아예 TypeScript를 처음부터 지원까지 해줘서 꼭 TypeScript를 배워야 할거 같습니다. 

 

감사합니다.

반응형

댓글