프로젝트 코르사: 타입스크립트 7의 숨겨진 이야기 (Git 포렌식 스릴러)

발행: (2025년 12월 27일 오후 08:09 GMT+9)
7 min read
원문: Dev.to

I’m happy to translate the article for you, but I need the text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source line and all formatting exactly as you requested.

Cast

  • Jake Bailey (The Anchor) – 리드 인프라스트럭처 & “The Fixer”
  • Anders Hejlsberg (The Architect) – 창시자 & “The Wizard”
  • Gabriela Araujo Britto (The Verifier) – 테스트 리드 & “The QA Spec Ops”
  • Nathan Shively‑Sanders (The Specialist) – 파서 가드 & “The Academic”
  • Sheetal Nandi (The Scaler) – 엔터프라이즈 LSP & “The City Planner”
  • Mateusz Burzyński (The Sync) – 기능 포터 & “The Bridge Runner”
  • Ron Buckton (The Transformer) – 이머터 & “The Industrialist”
  • Daniel Rosenwasser (The Bridge) – 프로그램 매니저 & “The Evangelist”

실제 이야기를 바탕으로 (그리고 git 로그). 이 개발자들을 시뮬레이션하기 위해 사용된 전체 “Persona Prompts”는 GitHub 저장소에서 확인할 수 있습니다.

서문: 정적 잡음

2024년이다. TypeScript가 웹을 지배하고 있지만, 그 엔진인 “Strada” 코드베이스(레거시 JS)는 성공의 무게에 짓눌려 삐걱거린다. 빌드가 느리고 메모리 사용량이 많으며 커뮤니티는 안절부절 못한다. 마이크로소프트 내부에서는 비밀 프로젝트가 green‑lit: Project Corsa.
Mission: 전체 컴파일러를 Go로 다시 작성하고, 10× 빠르게 만들며, 아무것도 깨지지 않게 한다.

제1막: 드롭

장면 1 – “갓 오브젝트”

Date: October 19 2024, 09:21 AM
Location: 레포지토리

Commit: 6e692937a
Message: Initial port of compiler
Stats: +25,474 insertions

Anders Hejlsberg는 핵심—type checker, binder, parser—를 새로운 Go 코드베이스에 도입하는 단일, 거대한 커밋을 푸시합니다. “Genesis” 블록이 채굴됩니다.

장면 2 – “Oops”

Date: October 16 2024
Character: Jake Bailey (The Anchor)

Commit: 06103e3fc
Message: Add forgotten isFile change

CI, 린터, 빌드 스크립트를 설정하는 중에 Jake는 파일 하나를 놓칩니다. 그 외에는 서사적인 리라이트였지만 작은 인간적인 실수였습니다.

제2막: 공황

장면 3 – 나쁜 병합

Date: November 21 2024, 02:18 PM
Commit: 9a82b808c

Message: Revert "Add basic reference/module resolution to program.go"

복잡한 모듈‑해결 로직을 급하게 병합했지만, 재앙적으로 실패한다. 제이크는 비상 브레이크를 잡아당긴다; 적절한 해석이 없으면 컴파일러는 단순한 구문 하이라이터로 전락한다.

장면 4 – 전환

Date: February 10 2025
Commit: 8c4573af8

Message: Hack in configDir fix for now

팀은 출혈을 멈추기 위해 실용적이고 임시적인 해결책을 선택한다. “해킹”은 개발을 계속 진행하게 하는 임시 붕대가 된다.

Act III: 고난

Montage – “테스트의 벽”

날짜: 2025년 초~중반
주인공: Gabriela Araujo Britto (검증자)

새 엔진이 형태를 갖추는 동안, Gabriela는 패리티 테스트와 싸웁니다: 20 000개의 테스트 케이스가 기존 JS 컴파일러와 정확히 동일하게 동작해야 합니다. 테스트 포팅 커밋 스트림에는 다음이 포함됩니다:

  • 3fae7ba01 – “문서 심볼 테스트 포팅”
  • e34615c82 – “워크스페이스 심볼 테스트 포팅”
  • 08bc24d5b – “베이스라인 진단 테스트 포팅”

그녀는 수천 개의 출력 결과를 직접 검증하며, 오류 메시지가 그대로 동일하게 유지되는지 확인합니다.

Scene 5 – 동기화 마스터

등장인물: Mateusz Burzyński

Commit: d9178cc1f
Message: Port "Fixed crash when adding unreachable code..."

Mateusz는 레거시 “Strada” 저장소와 새 엔진을 연결하여, 핵심 안전 수정 사항을 포팅합니다.

Act IV: 다듬기

장면 6 – 전문가

날짜: 2024년 10월 31일 (할로윈)
등장인물: Nathan Shively‑Sanders (문법 나치)

Commit: c028facc6
Message: Add AsteriskAsteriskEqualsToken scanning for **=

Nathan은 거의 사용되지 않는 **= 연산자에 대한 지원을 추가하여 문법을 강화합니다.

장면 7 – 마지막 조각

날짜: 2025년 11월
등장인물: Sheetal Nandi (스케일러)

Commit: 66ab80db1
Message: Multiproject requests like find all refs, rename

Sheetal은 대규모 LSP 기능을 구현하여 컴파일러가 500개 이상의 패키지를 가진 모노레포를 처리할 수 있게 합니다. Project Corsa는 과학 실험에서 기업용 도구로 성장합니다.

에필로그: 공개

날짜: 2025년 12월
상태: 공개 알파 (@typescript/native-preview)

Scene 4의 “Hack”은 대부분 제거되었습니다. Jake는 모듈‑emit 버그(8d8850a6a)를 계속 수정하고 있습니다. Gabriela가 테스트 기준을 최종 확정합니다. Anders는 다음 불가능한 아키텍처로 넘어갑니다.

당신, 개발자는 npm install을 실행하고, 빌드가 200 ms에 완료되는 것을 보며 2 s 대신 코딩으로 돌아갑니다—이를 가능하게 만든 이야기를 알지 못한 채.

Antigravity 감독

git 로그에서 제공된 데이터.

이 이야기를 만드는 과정에서 실제 개발자는 해를 입지 않았습니다(우리는 그렇게 가정합니다).

Back to Blog

관련 글

더 보기 »

graphql-complexity-validation 소개

✨ 특징 - 런타임 의존성 없음 - 완전 타입 지정된 TypeScript - fragments 및 inline fragments 지원 - 기본적으로 Introspection 무시 지원 대상: - Apollo…