2026-05-11

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

zntc는 0.1.0 공개를 앞두고 문서와 배포 준비에 많은 시간을 썼습니다. 퍼블리시 대상 16개 패키지에 저자·저장소·키워드·Node 엔진 메타데이터와 LICENSE를 넣고 오류 코드 문서를 한국어·영어 양쪽으로 생성하는 0.1.0 준비 커밋(#3058)과 lockstep 버전 전략 문서(#3060)가 병합됐습니다. 실제 퍼블리시나 태그 기록은 이날 목록에 없습니다. 문서 사이트에는 번들 성능 벤치마크 차트(#2992)와 10·1000·5000 모듈 재측정, native-transforms 가이드, JS·NAPI 플러그인 개발 가이드(#3019), 로드맵·Electron 가이드, React Native·Expo 레시피, zntc-init 모드별 가이드, HTTPS dev server·Web Worker 가이드가 추가됐고, 한국어 문서 종결어미를 합쇼체로 통일했습니다(#3020). 문서에만 있고 CLI에는 없던 --dev·--polyfill·--watch-folder 등 7개 플래그는 실제 CLI에 연결했습니다(#3080).

기능으로는 Vite plugin-react와 같은 경로 필터를 react-refresh에 넣었고(#3003), index.html 안의 EJS 스타일 ZNTC_* 환경 변수 토큰 치환(#3010), MetafileAnalyzer의 Treemap·Import graph 시각화(#3009), zntc-init의 vite·rspack overlay와 web scaffold 모드(#3018), vite plugin의 virtual module ID와 쿼리 파라미터 sub-import(#3023), esbuild와 같은 모양의 OutputFile(#3035), jsx: 'preserve' 모드(#3057), --external:pkg 별칭(#2995)이 추가됐습니다. e2e에는 라이브러리 39개를 9개 시나리오의 작은 앱으로 묶어 검증하는 호환성 매트릭스가 생겼습니다(#3065). 소스맵 names 배열 발행(#2989)과 전날 열린 가이드 보강 PR도 이날 병합됐습니다.

수정 사항은 manualChunks vendor 청크의 namespace가 entry preamble로 새던 문제(#2991), UMD·AMD globals 매핑 회귀(#2994, #3001), Node에서 WASM init() 기본 호출이 깨지던 문제(#3006), writer-edge 판정이 함수 본문 안의 쓰기까지 잡던 회귀(#3016), vite 4 이상 hook 객체 호환(#3017), import specifier 문자열 이스케이프(#3029), CSS 번들 같은 asset 출력이 dist에 써지지 않던 문제(#3030), return·throw 뒤 ASI 위험(#3059) 등입니다. JSX 런타임은 linker의 synthetic 우회를 없애고 transformer가 정식 AST 노드를 만들게 한 뒤 헬퍼 스코프를 격리했으며(#3067, #3071), 이어 ImportBinding.isSynthetic을 is_helper로 완전히 대체했습니다(#3084). 성능 쪽은 디렉터리 단위 realpath 캐시와 새 빌드의 fstat 생략(#3039, #3050)이 들어갔고, tree-shake 대형 테스트 파일도 주제별로 나눴습니다.

블로그 저장소 ohah.github.io에는 zntc 개발기 3-15부터 3-17까지(4월 24일부터 5월 12일 범위)를 추가하고 배경 타임라인을 늘린 뒤 커밋 수 수치를 정정한 커밋, 오늘의 커밋 _meta.json 누락 항목 보충, 요약 갱신과 맞춤법 교정, 크론 점검 표시 커밋이 있었습니다.

공개 커밋 109개, 해당일 생성 또는 병합된 PR 85개를 정리했습니다. PR 생성 82개·병합 85개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#3086생성 · 병합mergedmaindocs(pages): 3차 점검 정정 — watcher 백엔드 / RN 무시 플래그 / worker chunk / loader 목록
ohah/zntc#3085생성 · 병합mergedmaintest(e2e): IIFE format + JSX automatic 회귀 시나리오 추가 (#3078)
ohah/zntc#3084생성 · 병합mergedmainrefactor(bundler): ImportBinding.isSynthetic 완전 제거 — is_helper 로 대체 (#3078)
ohah/zntc#3083생성 · 병합mergedmaindocs(pages): reference/cli.md RN bundle 표 --source-map-url 중복 제거
ohah/zntc#3082생성 · 병합mergedmainrefactor(bundler): external_imports 의 isSynthetic → is_helper (#3078)
ohah/zntc#3081생성 · 병합mergedmaindocs(pages): RN Metro-dropin 플래그 + --browserslist 문서화 (KO/EN)
ohah/zntc#3080생성 · 병합mergedmainfeat(cli): 문서에만 있던 7개 플래그를 실제 CLI 에 연결 + --mangle-report 문서 제거
ohah/zntc#3079생성 · 병합mergedmainrefactor(bundler): esm_wrap helper binding hoist + linker isSynthetic 정리 (#3078)
ohah/zntc#3077생성 · 병합mergedmainrefactor(bundler): isSynthetic() → is_helper 로 명확화 (안전 케이스 2곳)
ohah/zntc#3076생성 · 병합mergedmainrefactor(bundler): dead mergeImportBindings synthetic-only loop 제거
ohah/zntc#3075생성 · 병합mergedmaintest(e2e): JSX automatic callee 분기 회귀 테스트 — static children / fragment
ohah/zntc#3074생성 · 병합mergedmaindocs(bundler): extractImportBindings 의 helper_ref_nodes sortedness invariant 명시
ohah/zntc#3073생성 · 병합mergedmaindocs(pages): 로드맵에 Rollup plugin context API / ESTree AST 예정 항목 추가 (KO/EN)
ohah/zntc#3072생성 · 병합mergedmaindocs(pages): HTTPS dev server / Web Worker 사용자 가이드 추가 (KO/EN)
ohah/zntc#3071생성 · 병합mergedmainfix(linker): JSX runtime helper scope 격리 — 사용자 식별자 충돌 회피 (#3068)
ohah/zntc#3070생성 · 병합mergedmaindocs(pages): 사용자 페이지에서 PR # / 성능 history / D-ID / 구현 비교 제거 (KO/EN)
ohah/zntc#3069생성 · 병합mergedmaindocs(pages): import.meta.glob / Web Worker stale 정정 (KO/EN)
ohah/zntc#3067생성 · 병합mergedmainfix(linker): JSX runtime synthetic 우회 제거 — transformer 가 정식 AST 노드 생성 (#3062)
ohah/zntc#3066생성 · 병합mergedmaindocs: PostCSS/Tailwind/SVG/YAML 활용 가능성 명시 + dev-server proxy/middleware webpack 격차
ohah/zntc#3065생성 · 병합mergedmainfeat(e2e): 외부 라이브러리 호환성 매트릭스 — 39개 lib / 9 시나리오
ohah/zntc#3064생성 · 병합mergedmainfix(e2e): port 충돌 해소 — fixed port를 tests/e2e/tests/ports.ts로 중앙화
ohah/zntc#3061생성 · 병합mergedmaintest(core): drop hand-rolled CLI sidecar list in bootstrap test
ohah/zntc#3060생성 · 병합mergedmaindocs: release / versioning strategy + lockstep 강제
ohah/zntc#3059생성 · 병합mergedmainfix(codegen): throw 에도 ASI hazard fix 적용 + helper 추출
ohah/zntc#3058생성 · 병합mergedmainchore(release): 0.1.0 publish 준비 (메타데이터/docs/banner)
ohah/zntc#3057생성 · 병합mergedmainfeat(core+vite-plugin): jsx: 'preserve' mode + return ASI hazard fix
ohah/zntc#3055생성 · 병합mergedmainrefactor: tree-shake integration core 테스트 분리
ohah/zntc#3054생성 · 병합mergedmainrefactor: tree-shake direct re-export 테스트 분리
ohah/zntc#3053생성 · 병합mergedmainrefactor: tree-shake CJS 테스트 분리
ohah/zntc#3052생성 · 병합mergedmainrefactor: tree-shake inner graph 테스트 분리
ohah/zntc#3051생성 · 병합mergedmainrefactor: tree-shake integration barrel 테스트 분리
ohah/zntc#3050생성 · 병합mergedmainperf(fs): fresh build fstat 생략 + dir-fd cache 통일 + webpack 비교 제외
ohah/zntc#3049생성 · 병합mergedmainrefactor: tree-shake sideEffects 테스트 분리
ohah/zntc#3048생성 · 병합mergedmainfix(web): dev pipeline 이 SCSS/CSS Modules CSS 를 inject 한 경우 bundle CSS link skip
ohah/zntc#3046생성 · 병합mergedmainrefactor: tree-shake annotation 테스트 분리
ohah/zntc#3045생성 · 병합mergedmainrefactor: tree-shake RN ESM 테스트 분리
ohah/zntc#3044생성 · 병합mergedmainrefactor: tree-shake dead statement 테스트 분리
ohah/zntc#3043생성 · 병합mergedmainrefactor: tree-shake writer 테스트 분리
ohah/zntc#3042생성 · 병합mergedmainrefactor: tree-shake re-export 테스트 분리
ohah/zntc#3041생성 · 병합mergedmainrefactor: tree-shake edge-case 테스트 분리
ohah/zntc#3040생성 · 병합mergedmainperf(fs): pm.setup.read.close profile scope 분리 + bottleneck 분석
ohah/zntc#3039생성 · 병합mergedmainperf(resolver): directory-level realpath cache + 사이트 벤치마크 수치 재반영
ohah/zntc#3038생성 · 병합mergedmainrefactor: tree-shake LazyBarrel 테스트 분리
ohah/zntc#3037생성 · 병합mergedmaindocs(site): 10/1000/5000 modules 벤치마크 재측정 + bench.ts fixture 개선
ohah/zntc#3036생성 · 병합mergedmainrefactor: tree-shake innerGraph 테스트 분리
ohah/zntc#3035생성 · 병합mergedmainfeat(core): OutputFile shape esbuild 호환 — contents (Uint8Array) + lazy text getter
ohah/zntc#3034생성 · 병합mergedmaindocs(site): zntc-init vite/rspack/web 모드 별도 가이드
ohah/zntc#3033생성 · 병합mergedmainrefactor: tree-shake CJS 테스트 분리
ohah/zntc#3032생성 · 병합mergedmainfix(docs): zntc-init 도움말 시그니처 최신화 (RN 가이드)
ohah/zntc#3031생성 · 병합mergedmaindocs(site): React Native + Expo 레시피 페이지 통합
ohah/zntc#3030생성 · 병합mergedmainfix(bundler+cli): asset_outputs (CSS bundle) 가 dist 에 write 되도록 — #3022 마무리
ohah/zntc#3029생성 · 병합mergedmainfix(parser): import specifier 의 string literal escape unescape 적용 (#3025)
ohah/zntc#3028생성 · 병합mergedmaindocs(site): 로드맵 + Electron 가이드 페이지 추가
ohah/zntc#3027생성 · 병합mergedmainfix(bundler): plugin load loader fallback + types/schema test 회귀 (#3024)
ohah/zntc#3024생성 · 병합mergedmainfix(docs): EN 로케일 analyze/playground 페이지 라우팅 추가
ohah/zntc#3023생성 · 병합mergedmainfeat(bundler): vite plugin virtual module ID + query parameter sub-import 지원
ohah/zntc#3021생성 · 병합mergedmaindocs(plugins): 5단계 가이드 위치 이동 + 호환성 표 상태순 정렬
ohah/zntc#3020생성 · 병합mergedmaindocs(site): 한국어 문서 종결어미 합쇼체로 통일
ohah/zntc#3019생성 · 병합mergedmaindocs(plugins): JS/NAPI plugin 개발 가이드 + Vue/Svelte SFC 한계 + 네이티브 추후 명시
ohah/zntc#3018생성 · 병합mergedmainfeat(init): vite/rspack overlay + web scaffold 모드 추가
ohah/zntc#3017생성 · 병합mergedmainfix(core): vitePlugin wrapper 가 vite 4+ hook object + sourcemap object 호환
ohah/zntc#3016생성 · 병합mergedmainfix(bundler): writer-edge 가 함수 body 안 write 까지 over-fire 하던 회귀 (#3012)
ohah/zntc#3015생성 · 병합mergedmaindocs(site): sidebar 기본 닫힘 + Playground 분리 + bundler-deep-dive mermaid
ohah/zntc#3014생성 · 병합mergedmainfix(ci): integration job 에 @zntc/web 빌드 step 추가 — app 모드 테스트 회귀 가드
ohah/zntc#3011생성 · 병합mergedmainfix(init): zntcBundleScript 에 --minify default 추가
ohah/zntc#3010생성 · 병합mergedmainfeat(html): index.html 안 EJS 스타일 ZNTC_* 환경변수 토큰 치환
ohah/zntc#3009생성 · 병합mergedmainfeat(analyze): Treemap + Import graph 시각화 추가
ohah/zntc#3008생성 · 병합mergedmaindocs(pages): native-transforms 가이드 신설 + installation 탭 렌더링 fix + README 정비
ohah/zntc#3007생성 · 병합mergedmaintest(scripts): publish-install-test 에 entry function smoke step 추가
ohah/zntc#3006생성 · 병합mergedmainfix(wasm): #3005 Node init() default 호출 시 url.fileURLToPath 누락
ohah/zntc#3004생성 · 병합mergedmaintest(transformer): react-refresh Vite path filter 회귀 가드 추가
ohah/zntc#3003생성 · 병합mergedmainfeat(transformer): react-refresh 에 Vite plugin-react 호환 path filter 추가
ohah/zntc#3002생성 · 병합mergedmainfeat(docs): 랜딩 차트 정리 + 설치 가이드 패키지 매니저 5탭화
ohah/zntc#3001생성 · 병합mergedmainfix(bundler): AMD/UMD external 의 PascalCase fallback 복원 (IIFE 만 매핑 필수)
ohah/zntc#2998생성 · 병합mergedmainchore(scripts): strict-format-matrix 정밀 점검 스크립트 추가
ohah/zntc#2997생성 · 병합mergedmainchore(scripts): 정밀 format × minify × runtime mode 매트릭스 점검 스크립트
ohah/zntc#2996생성 · 병합mergedmaindocs(cli): --help 에 누락된 핵심 옵션 표시 추가
ohah/zntc#2995생성 · 병합mergedmainfeat(cli): --external:pkg esbuild 호환 alias 추가
ohah/zntc#2994생성 · 병합mergedmainfix(bundler): UMD/AMD globals 매핑 회귀 — IIFE 와 정책 통일
ohah/zntc#2993생성 · 병합mergedmaindocs(roadmap): outdated 한계/배포 상태 동기화
ohah/zntc#2992생성 · 병합mergedmainfeat(docs): 메인 페이지에 번들 성능 벤치마크 차트 추가
ohah/zntc#2991생성 · 병합mergedmainfix(bundler): manualChunks 의 vendor 청크 정의 namespace 가 entry preamble 로 누출 (#2990)
ohah/zntc#2989병합mergedmainfeat(codegen): sourcemap names 배열 + mapping name_index 발행 (Sentry production debugging)
ohah/zntc#2988병합mergedmainfeat(docs): dev-server 가이드에 import.meta.hot HMR API 섹션 추가
ohah/zntc#2987병합mergedmainfeat(docs): bundling/plugins/config/transpile 가이드 사용자 함정·한계 보강