언어의역사

타입스크립트는 왜 만들어졌을까 - 자바스크립트가 커지자 마이크로소프트가 내놓은 답

타입스크립트는 왜 만들어졌을까 - 자바스크립트가 커지자 마이크로소프트가 내놓은 답

 

"자바스크립트는 너무 자유분방해서 탈이야." "이거 실행해봐야 에러가 나는지 알 수 있잖아." "남이 짠 자바스크립트 코드는 대체 뭘 주고받는지 모르겠어." 웹 개발을 오래 하다 보면 자바스크립트(JavaScript)를 두고 이런 푸념을 참 자주 듣습니다. 그리고 이 푸념들에 대한 마이크로소프트의 대답이 바로 타입스크립트(TypeScript)입니다.

저는 2012년에 개발을 시작했는데, 공교롭게도 타입스크립트가 세상에 나온 해와 같습니다. 다만 그때 저는 jQuery와 Ajax로 화면을 만들던 신입이었고, 타입스크립트라는 게 있는지도 몰랐어요. 그러다 코드 규모가 커지고 여럿이 같이 짜는 프로젝트를 겪으면서, 왜 이런 언어가 필요했는지를 몸으로 알게 됐습니다.

이 글에서는 타입스크립트가 어떤 문제를 풀려고 태어났는지, 그리고 지금 왜 이렇게까지 널리 쓰이게 됐는지를 정리해 보겠습니다. 자바스크립트는 좀 다뤄봤는데 타입스크립트는 아직 낯선 분께 특히 도움이 될 거예요.

📋 목차

  1. 타입스크립트는 왜 태어났을까 - 자바스크립트가 커지면서
  2. 타입스크립트가 하는 일 - 실행하기 전에 잡아준다
  3. 슈퍼셋(Superset) - 자바스크립트 위에 얹는 방식
  4. 지금 타입스크립트는 어디쯤 와 있나

1. 타입스크립트는 왜 태어났을까 - 자바스크립트가 커지면서

타입스크립트가 태어난 배경은 자바스크립트의 성공, 그리고 그 성공이 만든 부작용입니다. 자바스크립트는 쉽고 유연해서 웹의 표준 언어가 됐지만, 유연한 만큼 실수에 관대합니다. 숫자가 들어가야 할 자리에 문자를 넣어도 일단 실행부터 하고, 문제는 한참 뒤에 터지죠. 작은 스크립트일 때는 괜찮은데, 수십만 줄짜리 코드를 여러 명이 함께 짜기 시작하면 이게 감당이 안 됩니다.

마이크로소프트도 자바스크립트로 큰 규모의 웹 애플리케이션을 만들려다 같은 벽에 부딪혔습니다. 그래서 2010년 무렵부터 사내에서 해결책을 개발했고, 2012년 10월에 타입스크립트를 공개했습니다. 이걸 주도한 사람이 앤더스 헤일스버그(Anders Hejlsberg)인데, 터보 파스칼을 만들고 델파이와 C#을 설계한, 언어 만들기로는 잔뼈가 굵은 개발자입니다.

그가 택한 방식이 흥미롭습니다. 자바스크립트를 갈아엎는 게 아니라, 문법은 그대로 두고 그 위에 타입(Type)이라는 규칙을 덧씌우는 거였어요. 완전히 새 언어를 만들면 아무도 안 넘어올 테니, 기존 자바스크립트를 살려두는 쪽을 고른 겁니다.

2. 타입스크립트가 하는 일 - 실행하기 전에 잡아준다

타입스크립트를 한 문장으로 설명하면, 코드를 실행하기 전에 실수를 미리 잡아주는 자바스크립트입니다. 변수나 함수에 "여기는 숫자만", "여기는 문자열만" 하는 식으로 타입을 정해두면, 규칙을 어기는 순간 편집기가 바로 빨간 줄을 그어줍니다. 이렇게 실행 전에 타입을 검사하는 언어를 정적 타입(Static Type) 언어라고 부릅니다.

 

 

📌 핵심 차이


자바스크립트는 잘못된 타입도 일단 실행한 뒤 런타임에 에러를 낸다.

타입스크립트는 코드를 작성하는 시점에 미리 걸러준다.

"언제 터지느냐"가 다른 셈이다.

 

 

이게 왜 중요한지는 당해본 사람이 압니다. 저는 타입스크립트를 쓰기 전, 규모 있는 자바스크립트 프로젝트에서 서버가 내려준 값의 형태를 착각해서 만든 버그로 꽤 고생한 적이 있어요. 문자열인 줄 알았던 값이 사실은 숫자거나, 있을 줄 알았던 필드가 없거나 하는 것들이었죠. 그런 건 실행해서 그 화면까지 직접 들어가 보기 전에는 안 드러납니다. 하필 운영 중에 특정 조건에서만 터지면 원인 찾느라 밤을 새우기도 하고요. 타입스크립트를 도입하고 나서는 이런 유형의 실수 상당수가 코드 짜는 단계에서 걸러졌습니다.

3. 슈퍼셋(Superset) - 자바스크립트 위에 얹는 방식

타입스크립트가 빠르게 퍼진 데는 슈퍼셋(Superset)이라는 성격이 큰 몫을 했습니다. 슈퍼셋은 자바스크립트의 모든 기능을 그대로 품고, 그 위에 타입 기능을 더한 상위 집합이라는 뜻입니다. 그래서 기존 자바스크립트 코드는 그 자체로 이미 유효한 타입스크립트 코드예요.

실제로 확장자를 .js에서 .ts로 바꾸는 것만으로 출발할 수 있습니다. 새 언어를 맨땅에서 배우는 게 아니라, 알던 자바스크립트에 타입을 정의하는 방법만 조금 더 얹으면 되는 거죠. 배우는 쪽 입장에서 거부감이 적으니 진입장벽이 낮았고, 그게 확산 속도로 이어졌습니다. 처음부터 전부 타입을 붙일 필요도 없어서, 기존 프로젝트에 조금씩 도입하는 것도 가능합니다.

4. 지금 타입스크립트는 어디쯤 와 있나

공개된 지 10여 년이 지난 지금(2026년), 타입스크립트는 더 이상 "쓰면 좋은 것" 정도가 아닙니다. GitHub 통계에 따르면 2025년에 타입스크립트가 GitHub에서 가장 많이 쓰인 언어로 올라서며, 자바스크립트와 파이썬을 처음으로 앞질렀습니다. React, Next.js, Angular 같은 주요 프론트엔드 프레임워크들도 이제 기본적으로 타입스크립트를 전제로 시작하는 경우가 많고요.

국내도 마찬가지입니다. 카카오 같은 곳의 프론트엔드 채용 공고를 보면 "React와 TypeScript를 사용한 모던 프론트엔드 개발 경험"을 아예 자격요건에 적어둡니다. 우대사항이 아니라 기본기로 취급하는 거죠. 자바스크립트를 어느 정도 다룬다면, 이제 타입스크립트는 언젠가 마주칠 수밖에 없는 기술이 됐습니다.

반응형
구분 자바스크립트(JS) 타입스크립트(TS)
타입 검사 실행 시점(런타임) 작성 시점(컴파일 전)
학습 부담 낮음 JS를 알면 타입 개념만 추가
큰 프로젝트 규모 커지면 관리 부담 협업·유지보수에 유리
실행 방식 브라우저가 바로 실행 JS로 변환(컴파일) 후 실행

협업 얘기가 나와서 덧붙이면, 저는 팀으로 일할 때 타입스크립트의 진가를 더 크게 느낍니다. 남이 짠 함수가 어떤 데이터를 받아서 뭘 돌려주는지가 타입에 그대로 적혀 있으니까, 코드를 하나하나 뜯어보지 않아도 대충 감이 잡히거든요. 편집기 자동완성이 정확해지는 것도 덤이고요. 물론 타입을 정의하느라 손이 더 가는 면은 분명히 있습니다. 작은 일회성 스크립트까지 굳이 타입스크립트로 짤 필요는 없다고 봐요. 규모와 협업 여부에 따라 판단하시면 됩니다.

자주 묻는 질문

Q. 자바스크립트를 잘 모르는데 타입스크립트부터 배워도 되나요?
자바스크립트를 먼저 어느 정도 익히시길 권합니다. 타입스크립트는 자바스크립트 위에 타입을 얹은 것이라, 바탕이 되는 자바스크립트를 알아야 타입이 왜 필요한지가 이해됩니다.

Q. 타입스크립트는 자바스크립트를 대체하나요?
대체한다기보다 그 위에서 함께 돌아갑니다. 타입스크립트 코드는 결국 자바스크립트로 변환되어 실행되니, 자바스크립트를 없애는 게 아니라 개발 단계를 더 안전하게 만들어주는 쪽에 가깝습니다.

Q. 작은 프로젝트에도 꼭 써야 하나요?
꼭 그렇진 않습니다. 짧은 스크립트라면 자바스크립트로 충분합니다. 다만 코드가 커지고 여러 명이 함께 다루기 시작하면, 그때부터는 타입스크립트의 이점이 확실히 커집니다.

마무리

타입스크립트는 자바스크립트를 부정해서 나온 언어가 아니라, 자바스크립트가 너무 잘돼서 감당하기 힘들어진 규모의 문제를 풀려고 나온 언어입니다. 실행 전에 실수를 잡아주고, 남의 코드를 읽기 쉽게 만들어주고, 그러면서도 기존 자바스크립트를 버리지 않는다는 점이 지금의 자리를 만들었죠. 자바스크립트를 쓰고 계시다면, 언젠가 한 번은 타입스크립트를 들여다보게 될 겁니다. 그때 이 글이 "왜 이게 필요한지"를 이해하는 데 도움이 되면 좋겠습니다.

🎲 개발은전투다 블로그 추천 세트

 

자바와 자바스크립트 차이는? 10일 만에 만들어진 자바스크립트 역사 이야기

자바(Java)와 자바스크립트(JavaScript)의 차이는 개발 공부를 막 시작한 분들이 가장 많이 헷갈려 하는 부분입니다. "자바랑 자바스크립트랑 같은 거 아니에요?" 제가 13년째 가장 자주 듣는 질문이

devwar.tistory.com

 

ASP(Active Server Pages)란 무엇인가 — 초기 웹을 이끈 서버 스크립트의 등장과 쇠퇴

ASP(Active Server Pages)는 마이크로소프트가 1996년에 내놓은 서버 사이드 스크립트 기술입니다. 윈도우 서버의 IIS 위에서 동적인 웹 페이지를 만들 수 있게 해준 기술로, 90년대 후반부터 2000년대 초

devwar.tistory.com

 

자바(Java)는 왜 커피잔일까? 오크(Oak)에서 자바가 된 이름의 유래

자바(Java)의 로고는 왜 김이 모락모락 나는 커피잔일까요? 커피와 아무 상관 없어 보이는 이 프로그래밍 언어에 커피잔이 붙은 데는, 원래 '오크(Oak)'라는 나무 이름으로 불렸다가 상표권 문제로

devwar.tistory.com

 

C++는 왜 C+1이 아닐까? 이름에 담긴 1983년의 농담과 탄생 배경

C++라는 이름은 C 언어의 증가 연산자 ++에서 왔습니다. 1983년 벨 연구소의 릭 마시티가 제안한, 반쯤 농담 같은 이름이었죠. 그런데 왜 하필 ++였는지, 왜 ++C가 아니라 C++인지, 그리고 이 언어가 애

devwar.tistory.com

 

C언어 이름의 유래 - B 다음이라서 C? 창시자도 확답하지 않은 이유

C언어 이름의 유래는 흔히 "B 언어 다음이라서 C"라고 알려져 있습니다. 절반은 맞는 얘기입니다. 그런데 C를 만든 데니스 리치 본인은 이 이름이 알파벳 순서에서 온 건지, 조상 언어인 BCPL의 철

devwar.tistory.com

반응형