2026-05-03

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

요약 (AI 작성)

zntc는 RN codegen 마무리와 타입 전용 import 정리로 시작했습니다. prop 위치에 남은 Flow·TS 타입 노드를 mixed로 매핑하고(#2452), Flow enum을 flow-enums-runtime 호출로 바꾸면서 번들러가 그 runtime require를 다시 쓰도록 고쳤으며(#2465), require.context 모듈 ID에 rootDir을 적용했습니다(#2478). import { type A, type B } 선언을 통째로 지우고, 해석되지 않는 타입 전용 import는 빌드를 실패시키지 않으며, 타입 전용 import 생략에 걸려 있던 16개 바인딩 상한을 없앴습니다(#2467, #2468, #2469, #2479). HMR은 reparse 경로를 절대 경로 대신 모듈 ID로 다루게 됐습니다(#2480).

안전성 점검도 이어졌습니다. 스택 크기에 묶인 버퍼가 조용히 잘리던 transformer 세 경로와 AST walker·catch 이름 수집을 동적 배열로 바꾸고(#2476, #2482), catch 바인딩의 binding_property 처리(#2485), worklet의 깊이 제한 재귀 탐색을 명시적 스택으로 바꾸는 수정(#2486)이 들어갔습니다. minifier는 한 번만 쓰는 최상위 const의 inline 순서를 바로잡았고(#2495), NAPI build 옵션 slice 해제도 보강했습니다(#2499).

나머지는 대부분 번들러 성능 작업입니다. 전날 열린 graph 탐색 read/stat 비용 개선(#2440)이 소스 읽기와 mtime stat을 합치는 형태로 병합됐고, 미사용 define 사전 패스, Worker 레코드 스캔, 경로 import의 builtin 검사, 할 일 없는 builtin 플러그인 hook을 건너뛰게 했습니다(#2481, #2487, #2488, #2490). AST의 addString 저장을 중복 제거하고 intern 적중 통계와 Span 키 HashMap을 붙인 뒤(#2496, #2498, #2500), transformer의 AccessorSpans·styled-components·define span 캐시를 이 intern map으로 흡수했습니다(#2501, #2510, #2515). tree-shaking은 숫자 상수 체인을 접고(#2497) 역의존 탐색, pre-shake 갱신 범위, 상수 판정 캐시, Symbol.const_value 분리, 숫자 심볼 bitset으로 그 비용을 줄였습니다(#2509, #2511, #2513, #2514, #2516). 프로파일 계측 세분화, median 기반 벤치마크 리포트와 대형 monorepo 번들 측정(#2492, #2493), CLI의 debug·resolver 옵션 노출과 문서 동기화(#2491, #2494)도 있었습니다. core-js 런타임 폴리필 지원 #2517은 이날 열려 5월 4일에 병합됐습니다.

bungae에는 ZTS NAPI에 rootDir을 넘겨 모듈 ID를 정규화하는 PR #84을 열었으며 아직 병합되지 않았습니다. 블로그 저장소 ohah.github.io의 커밋 15개는 크론의 CRON_CRD_WRITE.md 점검 기록 13개와 요약·메타 갱신 2개입니다.

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

커밋

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/bungae#84생성openmainfix(zts-bundler): pass rootDir to ZTS NAPI for module ID normalization
ohah/zntc#2517생성mergedmainfeat(core): core-js 런타임 폴리필 지원
ohah/zntc#2516생성 · 병합mergedmainperf(tree-shaker): prebuilt numeric-symbol bitset for nodeContainsNumericConstRef (#2505 sub-item #2)
ohah/zntc#2515생성 · 병합mergedmainrefactor(transformer): drop define_spans cache (intern map 흡수)
ohah/zntc#2514생성 · 병합mergedmainperf(semantic): split Symbol.const_value into 1B kind + side-table text (#2505 sub-item #1)
ohah/zntc#2513생성 · 병합mergedmainperf(constant_facts): cache forbidden + reachable per module across post-pass (#2504)
ohah/zntc#2512생성 · 병합mergedmainrefactor(parser): flow Name_withRef → addString 통합
ohah/zntc#2511생성 · 병합mergedmainperf(linker): narrow refreshAfterAstMutation API for tree-shaker pre-shake (#2502, #2507)
ohah/zntc#2510생성 · 병합mergedmainrefactor(transformer): drop styled-components span cache + AstSnapshot 보강
ohah/zntc#2509생성 · 병합mergedmainrefactor(tree-shaker): use Module.importers for numeric BFS reverse-deps (#2506)
ohah/zntc#2508생성 · 병합mergedmainchore(bundler): /simplify follow-up — dedupe resync + isExported helpers
ohah/zntc#2503생성 · 병합mergedmainrefactor(ast): integrate intern stats into debug_log category
ohah/zntc#2501생성 · 병합mergedmainrefactor(transformer): drop AccessorSpans cache (intern map 흡수)
ohah/zntc#2500생성 · 병합mergedmainperf(ast): Span-key adapted HashMap for intern map
ohah/zntc#2499생성 · 병합mergedmainfix(napi): free build option typed slices
ohah/zntc#2498생성 · 병합mergedmainperf(ast): instrument addString intern hit/miss stats
ohah/zntc#2497생성 · 병합mergedmainperf(tree-shaking): fold numeric const chains
ohah/zntc#2496생성 · 병합mergedmainperf(ast): dedupe addString storage
ohah/zntc#2495생성 · 병합mergedmainfix(minifier): inline pass ordering for single-use top-level const (#1631)
ohah/zntc#2494생성 · 병합mergedmaindocs: Astro CLI 옵션 문서 동기화
ohah/zntc#2493생성 · 병합mergedmainchore(benchmark): 대형 monorepo 번들 측정 추가
ohah/zntc#2492생성 · 병합mergedmainchore(benchmark): median 기반 측정 리포트로 정리
ohah/zntc#2491생성 · 병합mergedmainfeat(cli): debug 및 resolver 옵션 노출
ohah/zntc#2490생성 · 병합mergedmainperf(resolve): 경로 import의 builtin 검사 생략
ohah/zntc#2489생성 · 병합mergedmainperf(profile): parser parse 세부 버킷 추가
ohah/zntc#2488생성 · 병합mergedmainperf(bundler): Worker URL 레코드 inline scan 전환
ohah/zntc#2487생성 · 병합mergedmainperf(bundler): Worker 보완 스캔 prefilter 추가
ohah/zntc#2486생성 · 병합mergedmainfix(worklet): replace recursive depth-limited walkers with explicit stack (#2484)
ohah/zntc#2485생성 · 병합mergedmainfix(semantic): handle binding_property in collectAndCheckCatchBindings (#2483)
ohah/zntc#2482생성 · 병합mergedmainfix(ast-walk,semantic): drop stack-bounded buffers in walker + catch_names (#2475 medium)
ohah/zntc#2481생성 · 병합mergedmainperf(bundler): 미사용 define graph pre-pass skip
ohah/zntc#2480생성 · 병합mergedmainfix(hmr): use module ID (not abs path) for reparsed_paths
ohah/zntc#2479생성 · 병합mergedmainfix(import-scanner): guard allSpecsAreTypeOnly against union punning UB
ohah/zntc#2478생성 · 병합mergedmainfix(codegen): apply rootDir to require.context module lookup IDs
ohah/zntc#2477생성 · 병합mergedmainchore(profile): graph discovery post 세부 계측 추가
ohah/zntc#2476생성 · 병합mergedmainfix(transformer): drop stack-bounded buffers in 3 silent-truncation paths (#2475 audit)
ohah/zntc#2469생성 · 병합mergedmainfix(graph): remove 16-binding cap on type-only import elision
ohah/zntc#2468생성 · 병합mergedmainfix(graph): soft-fail unresolved type-only imports (#2466)
ohah/zntc#2467생성 · 병합mergedmainfix(import-scanner): elide import { type A, type B } declaration (#2466)
ohah/zntc#2465생성 · 병합mergedmainfix(codegen): Flow enum → flow-enums-runtime callable (#1589 A-2)
ohah/zntc#2452생성 · 병합mergedmainfeat(codegen): remaining Flow / TS type nodes at prop position → mixed (#2348)
ohah/zntc#2440병합mergedmainperf(bundler): graph discovery read/stat 비용 개선