타입스크립트란?

woodstock·2023년 7월 28일
0
post-thumbnail

타입스크립트란?


타입스크립트의 탄생

타입스크립트는 2012년에 마이크로소프트의 개발자이자 C#의 창시자로도 알려진 아주 유명한 덴마크 출신의 개발자 Anders Hejlsberg(앤더스 하일스버그)의 손에서 처음으로 탄생했다.

C#의 창시자가 타입스크립트도 만들었기 때문에 둘이 비슷한점이 꽤 있다.

타입스크립트는 오픈소스이다.

타입스크립트는 오픈소스로 공개되어 있기때문에 현재도 많은 프로그래머들이 이 언어의 개발과 유지보수에 참여하고 있고 다양한 토론을 이어가고 있어서 앞으로도 발전 가능성이 아주 창창한 언어라고 볼 수 있다.

타입스크립트의 인기

타입스크립트는 현재 자바스크립트 프로그래머들 사이에서 굉장히 인기있는 언어이다.
사실 지금 현재는 피할수 없는 대세 라고도 할 수 있을 정도로 그 인기가 매우 대단하다.

구체적인 수치로 그 대단함을 따져보기 위해 StateOfJs라는 전 세계의 자바스크립트 개발자들을 대상으로 매년 설문조사를 하는 매우 공신력있는 기관의 설문 결과를 함께 보자.

The State of JavaScript Developer Survey

이 기관에서 2022년도 작년에 조사한 설문 결과에 따르면 지금 현재 100명의 자바스크립트 개발자들 중에 딱 11명만 타입스크립트를 아직 사용하지 않고 있다고 밝혔다고 한다. 반대로 말하면 100중 89명은 타입스크립트를 이미 쓰고있다는 것이다.

영어권 뿐만 아니라 국내에서도 인기가 대단하다.

실제로 취업시장만 봐도 자바스크립트를 사용하는 개발자 채용 공고들 중에 프론트엔드 백엔드 포지션을 막론하고 자격 요건이나 우대사항에 이제 타입스크립트가 거의 단골로 등장하고 있다.

또 23년도 올해에 프로그래머스가 공개한 개발자 설문 조사 결과에 따르면 가장 배우고 싶은 언어 2등으로 타입스크립트가 선정되었다.
사실상 1위가 코틀린이기 때문에 자바스크립트를 사용하는 개발자 분들 사이에서는 아마 타입스크립트 압도적으로 배우고 싶은 언어 1위일 것 같다.

타입스크립트는 자바스크립트의 확장판

이렇게 인기가 많은 타입스크립트는 어떤 언어일까?
사실 타입스크립트는 자바스크립트와 완전히 다른 언어가 아니다.
타입스크립트는 기존의 자바스크립트를 더 안전하게 사용할 수 있도록 타입 관련된 여러가지 기능들을 추가한 언어이다.

그래서 타입스크립트는 쉽게 말해서 자바스크립트의 확장판 이라고 부를 수 있다.

여기 동일한 기능을 하는 두 개의 코드가 있다.

왼쪽은 자바스크립트 코드이고 오른쪽은 타입스크립트 코드이다.

두 코드 모두 두개의 변수를 선언하고 두 변수를 더한 값을 콘솔에 출력한다.

이 두 코드의 차이를 한번 살펴보면 왼쪽의 자바스크립트 코드에서는 변수를 선언할 때 변수의 타입까지 지정 하지는 않는다.

자바스크립트에서는 변수의 타입을 프로그래머가 직접 정의할 수 있는 방법이 없기 때문이다.

반면에 오른쪽 타입스크립트 코드에서는 변수의 이름 뒤에 콜론과 함께 이 변수의 타입을 정의할 수 있다.
지금 이 타입스크립트 코드에서는 변수 a와 b 모두 number 숫자 타입을 갖도록 정의를 해 둔 것이다.

이렇게 되면 이제 이 변수에는 숫자값 이외에는 넣을수가 없게 된다.

변수의 타입을 고정한 것이다.

이렇듯 우리가 원래 사용하던 자바스크립트 코드에서 타입을 정의하는 문법만 딱 추가하면 타입스크립트 코드가 된다.

이렇듯이 타입스크립트는자바스크립트에서 변수에 이렇게 타입을 직접 지정하는 등의 타입을 더 안전하게 사용할 수 있는 여러가지 기능들이 추가된 자바스크립트의 확장판이라고 볼 수 있다.

보통 확장판이라고 하면 기존에 있는 기능들과 개념은 유지한 채 뭔가 새로운 것들이 추가된 거를 확장판이라고 하지 않는가?

그런것 처럼 자바스크립트의 확장판인 타입스크립트에서는 우리가 알고 있는 자바스크립트 기본 문법 들은 다 쓸 수 있다.
이미 자바스크립트에 익숙한 여러분께서는 타입스크립트를 공부할 때 타입을 다루는 추가적인 기능들에 대해서만 공부하면 되기 때문에 아주 빠른 시간안에 쉽게 타입스크립트를 배워 여러분의 프로젝트에 바로 활용하실 수 있다.

자바스크립트로도 충분한데 왜 타입스크립트가 필요할까?

한가지 의문이 생길 수 있다.
타입스크립트 인기 좋은거 알겠고, 취업 시장에서 많이 요구하는 것도 알겠고, 배우기 쉬운것도 알겠는데 이미 나는 자바스크립트 만으로도 잘 쓰고 있었는데 이게 꼭 필요한가? 내지는 내가 굳이 이걸 또 배워야 하나? 라는 의문이 들 수도 있다.

사실 자바스크립트 자체만 봐도 이미 세상에서 가장 인기있는 프로그래밍 언어이다.

실제로 2022년도 스택오버 플로우 개발자 설문 조사 결과에서도 인기 투표 1등을 차지하고 있다.

그런데 굳이 이렇게 잘 쓰고 있는 자바스크립트에 왜 타입이라는 기능을 추가해서 타입스크립트를 또 만들어서 쓰고 있는걸까?
그 이유는 아이러니 하게도 자바스크립트가 너무 잘나가서 그렇다.
사실 자바스크립트라는 언어는 웹 브라우저에서만 동작하도록 만들어 졌고 또 아주 간단한 사용자 상호작용을 처리하기 위해 만들어졌다.

쉽게 말해서 그냥 웹사이트에서 우리가 버튼을 클릭하면 경고창 띄워주는 정도의 상호작용을 만들기 위해 개발된 언어라는 것이다.

그래서 자바스크립트는 굳이 엄격한 문법을 갖출 필요가 없었다.

대신 아주 유연하게 설계되었다.

버그로부터의 안정성이나 견고함은 일부 포기하는 대신 프로그래머가 쉽고 빠르고 간결하게 코드를 작성하는데에 중점을 두고 만들어졌다.

간결한 프로그램을 만들 거니까 그리고 웹 브라우에서만 동작할 거니까요 그리고 실제로 이런 유연함 덕분에 많은 사람들이 편하게 잘 쓰고 있었다.

그런데 어느날 Node.js가 등장한다.

Node.js는 자바스크립트의 런타임 즉 실행 환경이죠 그러니까 쉽게 말해서 자바스크립트 코드를 읽어서 프로그램을 실행하는 구동기, 실행기이다.
Node.js 탄생 이후에는 웹 브라우저에서만 실행할 수 있었던 자바스크립트를 이제는 어디서든 실행할 수 있게 되었다.

이 말은 곧 어떤 프로그램이든 자바스크립트를 이용해 만들 수 있다는 이야기가 된다.

그러자 기존에 자바스크립트를 만족스럽게 사용하던 프로그래머들이 자바스크립트를 이용해 다양한 프로그램을 만들기 시작했다.

웹 서버를 개발하는 것 부터 시작해서
오늘날에는 페이스북이나 인스타그램 같은 모바일 어플리케이션을 만들거나 카카오톡 같은 데스크탑 어플리케이션을 만드는데에도 활용된다.

자바스크립트의 한계가 사라졌고 그야말로 전성기가 도래 했다고 할 수 있다.

그런데 이렇게 복잡한 대규모 어플리케이션을 자바스크립트로 개발하다 보니까 한가지 문제가 있었다.

문제는 바로 자바스크립트가 너무 엄격하지 않다는 점입니다. 너무 유연하다는 점이다.
아까 자바스크립트는 애초에 간단한 프로그래밍을 위해 개발되어 유연 하다고 했는데 이제는 자바스크립트가 인기가 너무 많아져서 간단하지 않은 아주 복잡한 프로그램을 만드는데까지 활용되니 오히려 이 유연함이 프로그램의 안정성을 떨어뜨리는 단점이 되어 버린 것이다.

그래서 이런 자바스크립트의 문제점을 극복하기 위해서 자바스크립트의 기존 문법들과 매력은 그대로 유지한 채 안정성만 추가로 확보한 새로운 언어가 필요해졌다.

이런 배경에서 자바스크립트를 더 안전하게 사용할 수 있도록 타입에 관련된 여러가지 기능을 추가한 오늘날 우리가 배우고 사용하게 될 타입스크립트가 등장하게 되었다.

결론적으로 타입스크립트는 더 복잡한 상황에서 더 대규모의 프로그램을 만들기 위해 자바스크립트를 안정적으로 사용할 수 있도록 타입 이라는 안전장치를 하나 추가한 언어라고 이해할 수 있다.

profile
해내는 사람

0개의 댓글