SW/JavaScript

타입스크립트 컴파일 속도 10배 향상! 개발자에게 어떤 변화가 올까?

얇은생각 2025. 4. 23. 07:30
반응형

타입스크립트 10배 빨라졌대요 — 진짜야? 장난 아냐?

요즘 개발자 커뮤니티 좀 둘러보면요, 다들 난리예요. "타입스크립트가 10배나 빨라졌대!"라는 이야기로요. 처음엔 저도 반신반의했죠. 그냥 또 뻔한 홍보 아닌가 싶었거든요. 그런데 알고 보니까... 이거 꽤 괜찮은 변화더라고요. 어떤 분은 농담처럼 "이제 타입스크립트로 에어컨도 만들 수 있겠네?" 하시더라고요. 웃기지만, 은근 공감됐어요.

 

 

컴퓨터는 코드 읽는 걸 어떻게 할까?

  • 컴퓨터는 0과 1만 이해하기 때문에 우리가 쓴 코드를 바로 실행할 수 없다.
  • 그래서 코드를 기계어로 바꾸는 '컴파일' 과정이 필요하다.
  • Rust나 Go는 미리 컴파일해서 실행하고, Python이나 JavaScript는 코드 실행 시 바로 읽으며 작동한다.
  • 요즘은 두 방식을 혼합해 쓰는 경우도 많다.

우리가 아무리 잘 써도, 컴퓨터 입장에선 그게 그냥 문자일 뿐이에요. 얘네는 오직 0과 1만 이해하거든요. 그래서 우리가 쓴 코드를 기계어로 바꾸는 작업이 필요한데, 그게 바로 컴파일이죠.

Rust나 Go 같은 언어는 먼저 코드를 바꿔놓고 실행하는 식이에요. 반면에 Python이나 JavaScript는 그 자리에서 읽으면서 실행하죠. 이걸 인터프리터 방식이라고도 하더라고요. 요즘은 둘 다 섞은 것도 많긴 해요.

 

타입스크립트는 뭐가 다른가요?

  • 타입스크립트는 자바스크립트에 타입 개념을 추가해 코드의 안정성을 높인다.
  • 하지만 타입스크립트는 실행할 수 없고, 자바스크립트로 먼저 변환해야 한다.
  • 번역 작업을 거쳐야 실행 가능한 언어라 조금 번거롭지만 안정성이 장점이다.

타입스크립트는 자바스크립트에 '타입'이라는 걸 붙여서 좀 더 튼튼하게 만든 버전이에요. 자유로운 자바스크립트가 좋긴 한데, 실수도 잘 나고 관리가 힘들잖아요. 그걸 보완해 주는 친구가 바로 타입스크립트예요.

근데 말이죠, 이게 바로 실행되진 않아요. 브라우저도 Node.js도 타입스크립트를 못 알아들어요. 그래서 먼저 자바스크립트로 변환해서 실행해야 해요. 일종의 번역 작업이 필요한 거죠. 좀 번거롭긴 하지만, 안전한 코드가 좋잖아요.

 

컴파일 시간... 진짜 스트레스였죠

  • 대형 프로젝트는 컴파일에 시간이 오래 걸려 개발 흐름이 끊기곤 했다.
  • VS Code는 150만 줄이 넘는 코드로 구성되어 있어 컴파일에 1분 이상 걸리기도 한다.
  • 새 컴파일러를 사용하면 5.7초 만에 끝나는 수준으로 크게 개선되었다.

개발하다 보면 제일 짜증나는 게 바로 그거예요. 기다림. 특히 컴파일할 때요. 예를 들어 VS Code 있죠? 우리가 매일 쓰는 그 에디터요. 이게 150만 줄 넘는 타입스크립트로 되어 있다네요. 이걸 컴파일하는 데 1분 넘게 걸린다니... 저도 그런 거 기다리다가 딴짓하다가 개발 흐름 놓친 적 많아요.

그런데 이젠? 5.7초면 끝. 진짜요. 처음엔 "말도 안 돼" 싶었는데, 테스트해보니까 진짜 빠르더라고요. 놀랐어요. 이거 완전 게임 체인저 아니에요?

 

새 컴파일러 등장 — 완전 마법같아요

  • 기존 컴파일러는 타입스크립트로 작성된 타입스크립트 컴파일러였다.
  • 새 컴파일러는 Go 언어로 작성되어 속도가 10배 빨라지고 메모리 사용도 줄었다.
  • 개발 환경이 훨씬 쾌적해지는 효과를 기대할 수 있다.

기존 tsc 컴파일러는 웃긴 얘기지만, 타입스크립트로 짜여진 타입스크립트 컴파일러였어요. 자기가 자기 코드를 컴파일하는 셈이죠. 좀 복잡하죠?

근데 이번에 새로 나온 컴파일러는 Go로 다시 짰대요. 그래서 속도도 엄청 빨라지고, 메모리도 절반만 써요. 저처럼 랩톱 팬 돌아가는 소리에 민감한 사람에겐 진짜 희소식이에요.

 

Rust는 왜 안 썼대? 궁금하잖아요

  • Go는 타입스크립트와 구조가 비슷해서 이식이 쉬웠다.
  • 병렬 처리와 멀티스레드 구현이 간단해 컴파일 속도 개선에 유리했다.
  • 타입스크립트의 함수 기반 코드 스타일도 Go와 잘 맞는다.

처음엔 저도 "아니, 요즘 다 Rust 쓰지 않나?" 싶었어요. 근데 이유를 듣고 이해됐어요. 타입스크립트랑 Go 구조가 비슷해서 옮기기 훨씬 수월하대요. 그리고 Go는 병렬처리도 쉬워서 멀티스레드로 컴파일 속도 확 올릴 수 있대요.

또 타입스크립트는 클래스보다 함수 기반 코드가 많잖아요. 그게 또 Go랑 잘 맞는다고 하더라고요.

 

AI가 도와줬다니까 더 놀라워요

  • 방대한 코드를 사람이 직접 옮긴 것이 아니라 AI 번역 도구를 활용했다.
  • AI가 코드 변환을 수행하고, 사람이 검토하는 방식으로 작업이 이루어졌다.
  • AI 기술이 실제 개발 환경에 효율적으로 쓰인 사례다.

이 많은 코드를 사람이 일일이 Go로 옮긴 거냐고요? 그럴 리가요. AI 코드 번역 도구를 썼대요. 번역한 코드 검토만 사람이 하는 식으로요. 요즘 AI 진짜 물건이에요.

 

우리한테 어떤 변화가 있을까?

이런 거 들으면 가끔 "그게 뭐 대단해?" 싶을 수도 있잖아요. 근데 직접 써보면 달라요.

  • 프로젝트 열 때 기다리는 시간 확 줄어요.
  • 자동완성, 함수 정보 같은 것도 바로바로 나와요.
  • 메모리 덜 먹으니까 컴퓨터도 덜 버벅여요.

자바스크립트 실행 속도는 그대로지만, 코딩 자체가 훨씬 쾌적해진다니까요. 약간 차는 그대로인데 시동이 빨라진 느낌? 그 작은 차이가 꽤 큽니다.

 

타입스크립트 7부터 쓸 수 있어요

  • 새 컴파일러는 타입스크립트 7 버전부터 사용할 수 있다.
  • 특히 대규모 프로젝트에서 효율 향상을 체감할 수 있다.
  • 소규모 프로젝트에서도 개발 환경 개선 효과는 충분하다.

이 새 컴파일러는 타입스크립트 7버전부터 적용된대요. 큰 프로젝트 하시는 분들이 특히 반가우실 거예요. 물론 작은 프로젝트에도 쾌적한 환경은 중요하죠.

 

이런 실험도 있어요 — 둠 게임 돌리기?

  • 타입스크립트 타입 시스템만으로 둠 게임을 구현한 사례가 있다.
  • 프레임 하나 만드는 데 12일 걸릴 만큼 비효율적이지만 재미있는 실험이다.
  • 새 컴파일러 사용 시 하루에 한 프레임은 가능할지도 모른다.

웃긴 얘기 하나 해드릴까요? 누가 타입스크립트 타입 시스템만으로 둠을 돌려봤대요. 실험이긴 하지만 진짜 독특하죠? 프레임 하나 만드는데 12일이나 걸렸다던데, 이 새 컴파일러 쓰면 하루에 하나쯤은 나오려나 싶어요.

 

작지만 큰 변화, 우리 일상이 달라집니다

  • 컴파일 속도 개선은 단순한 기술 변화처럼 보이지만 실제 작업 흐름을 크게 개선한다.
  • 반복되는 기다림이 줄어들면서 개발자 경험이 훨씬 좋아진다.
  • 더 쾌적하고 빠른 코딩 환경이 가능해졌다.

 

컴파일 속도 빨라진 거, 그냥 그런 얘기 같죠? 그런데요, 막상 써보면 "와, 진짜 다르다" 싶어요. 저는 이제 기다리는 시간 줄어서 작업 흐름이 훨씬 좋아졌거든요.

컴파일 누를 때마다 느껴요. "아, 이래서 기술이 중요하구나..."

반응형