3. 개발 과정

ZTS(2026-05-07부터 zntc) 개발 과정을 시간 순서대로 기록한다. 각 편은 마일스톤 단위로 나뉘며, 실제 대화 기록(Claude Code 세션 + 2026-04-26부터 병행한 OpenAI Codex 세션, 누적 ~2,000개 이상의 유저 메시지)과 git 이력(2026-05-12 시점 git log 기준 누적 ~3,670개 커밋, ~2,000개 PR — 모두 rebase merge)을 교차 검증하며 작성했다.

첫 9일 (3/18 ~ 3/26) — 기준선

편기간세션커밋핵심 성과
3-1. Phase 1~2: 렉서와 파서3/18348렉서 완성, 파서 AST 200개 태그, Test262 13.7%
3-2. Phase 3~5: 트랜스포머와 코드젠3/18~191—TS→JS 변환, 소스맵, CLI, 첫 설계 논쟁들
3-3. Test262 100% 달성기3/19~201926150,504건 전체 통과, Semantic Analysis, RegExp, Cover Grammar
3-4. 번들러 Phase B1~B23/21~22616427개 설계 결정, 모듈 그래프, 링커, tree-shaking, code splitting
3-5. Dev Server와 HMR3/22~233—HTTP/WS 서버, React Fast Refresh, CSS 핫 리로드, 벤치마크
3-6. 스모크 테스트와 실전 호환성3/2351235→47개 패키지, CJS 지원, forward reference
3-7. 트랜스파일 적합성 9.5%→74.1%3/24~257145TS 파서 전면 보강, 런타임 에러 전해소, SIMD
3-8. 워크플로우와 AI 협업 방식전 기간38—/simplify, 서브에이전트, 의사결정, 레퍼런스 비교

이후 (3/26 ~ 5/19) — RN·번들러 고도화, 그리고 배포 직전

편기간커밋핵심 성과
3-9. ES5 다운레벨링 완성과 번들러 고도화~4/7—block scoping, ES5 완성, kangax 99%, AST 통합, SWC 비교 CI
3-10. React Native 플랫폼과 4/7 시점 성능~4/7—RN resolve/엔진 타겟, Hermes 호환, scan 파이프라인, 성능 기준선
3-11. Metro 동등성 — RN HMR 재설계4/8~10~76RN HMR 재설계, dev 엔진 통합, 플러그인 stdio→bun:ffi→C NAPI 전환
3-12. 호환성 겹층 — 워클렛·Stage 3 decorator·ESTree4/11~14~111Reanimated 워클렛, TS decorator, UMD/AMD, RSC directive, ESTree 어댑터
3-13. Metro 경계 확정과 근본 수정 원칙4/15~18~79"zts vs 번개" 경계, Metro API 감사, miette급 에러, 근본 수정 CLAUDE 규칙
3-14. RFC 시리즈 — References·AST 재설계·HMR 프로파일4/19~23~142References RFC #1634, oxc 스타일 AST RFC #1672, HMR #1727, ModuleGraph accessor, require.context
3-15. "프로덕션이라는 말" — config·CJS DCE·styled/emotion 트랜스포머4/24~30~543type-only elision, AST cosmetic refactor, Astro 문서 사이트 개편, manualChunks parity, WASM 번들러, config 시스템, CJS DCE, styled/emotion 트랜스포머, Codex 등판
3-16. binding-lite·메모리 오염·패키지 분리, 그리고 이름이 바뀐 날5/1~7~402tsconfigRaw, binding-lite, 메모리 오염 근본수정, stack-overflow hardening, RN codegen rn-0.78~0.84, Flow "ts처럼", core-js 폴리필, @zntc/* 모노레포 분리, 번개 흡수, zts→zntc 리네임
3-17. 0.1.0을 향해 — 플러그인 통일·파일 분리·배포 파이프라인·Codex 회고5/8~12~392plugin 통일, 대규모 파일 분리, TS Project References, 배포 파이프라인(OIDC/9-platform prebuilt), react-refresh, MetafileAnalyzer, 문서 대보강, 0.1.0 publish prep + Codex 병행 회고
3-18. minify 격차 추격과 Module Federation — 0.1.0은 아직 preview5/13~19~217 PRmangler 크기 격차 루트커즈(M/N/K 시리즈), TSC conformance audit, 코드 스플리팅 P3 → Module Federation, 청크 무결성 sidecar

배포 이후 (5/20 ~ 9/26) — 릴리즈·성능·이슈 큐

편기간커밋핵심 성과
3-19. 0.1.0을 실제로 눌렀다 — 그리고 만든 것을 되돌리는 이틀5/20~31613v0.1.0·v0.1.1 npm 배포, Rollup 스타일 출력 API, this.emitFile chunk/asset, link.populate −55%, MCP 에픽 전체 롤백, mangler 8번째 NO-GO, rename_table 단일 출처, Zig 0.16, lazy compilation
3-20. "1위가 하고싶어요" — 위상 보존 HMR과 디스크 캐시, 0.1.26월280v0.1.2, lazy dev HMR + React Fast Refresh, 재귀 walker 제거 + CI tripwire, precedence 재설계, HMR 위상 보존, O(N²)×3 제거, 모듈 디스크 캐시
3-21. 이슈 큐를 따라가는 여름 — preserve-modules와 0.1.3·0.1.47/1~9/21197v0.1.3·v0.1.4, preserve-modules 조합 결함 시리즈(#4532 외), CJS interop, JSX namespace, external 매핑·re-export, 다운레벨 ESM의 top-level await
3-22. 다운레벨링의 의미를 지키는 심볼 표9/22~2695async/generator·ES5 의미론, 실행 결과 오라클, 심볼 기반 블록 이름 변경, 변환 중 스코프·참조 추적

타임라인 한눈에 보기와 일별 작업 강도는 1. 개발 배경과 동기에 정리돼 있다.

9월 26일에는 다운레벨링과 심볼 추적 후속 변경이 main에 반영돼 있다. 최신 GitHub 릴리즈는 여전히 v0.1.10이며, 3-22는 이후 미출시 변경을 따로 다룬다. 아래 누적 통계는 집계 기준을 섞지 않도록 9월 21일 수치를 보존했다.

통계

  • 개발 기간: 2026-03-18 ~ (진행 중, 아래 수치는 2026-09-21 기준)
  • 누적 커밋: 약 5,280개 — 3월 1,073 · 4월 1,801 · 5월 1,932 · 6월 280 · 7월 115 · 8월 41 · 9월 41. 두 달 반(3/18~5/31)에 88%가 몰려 있다
  • 릴리즈: v0.1.0·v0.1.1(5/21) · v0.1.2(6/7) · v0.1.3(7/12) · v0.1.4(7/19~20) · v0.1.5·v0.1.6(8/31) · v0.1.7(9/10) · v0.1.8(9/17) · v0.1.9(9/19) · v0.1.10(9/21) — npm @zntc/core
  • PR: 약 3,800개 (2026-09-21 기준, 모두 rebase merge)
  • 단일 날짜 최다 커밋: 5/9 — 161개 (publish-readiness + TS Project References + 코어 파일 분리 리팩터). 종전 최다는 3/19(138)
  • AI 협업: Claude Code(zts/zntc 워크스페이스) 전 기간 + OpenAI Codex CLI(zts-codex 별도 클론) 4/26~ 병행 — 같은 GitHub 이슈/PR 풀 공유
  • 의사결정 문서: D001~D082 (3/18~3/21), 이후로는 GitHub 이슈/RFC로 이전
  • 가장 많은 세션이 열린 날(첫 9일 기준): 3/20 (14개 세션, 123 커밋) — Test262 100% 달성일
  • 이름 변경: zts → zntc("Zig Native Transpiler Compiler"), 2026-05-07 15:40 KST (npm org @zts 선점 때문, 687 파일 한 커밋)
  • 5/12 시점 상태: zntc 0.1.0 배포 직전 — @zntc/{core,web,server,react-native,vite-plugin,wasm,rspack-loader,init,shared} + 9 platform prebuilt, 문서 사이트 340+ 페이지. 실제 npm publish는 아직
  • 9/21 시점 상태: v0.1.10까지 배포 완료. 8/31·9/10 릴리즈 셋은 @ohah/pdf가 zntc 로 빌드하다 찾은 소스맵·resolver 결함이 계기였다. 6월 이후 무게중심이 maru로 옮겨가면서 작업이 며칠 단위로 몰아서 들어오는 형태로 바뀌었고, 성격도 새 기능에서 이슈 큐 소화로 전환됐다