2026-03-23

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

요약 (AI 작성)

zntc는 전날 연 벤치마크 스위트(#277)를 병합하며 단계별 파이프라인 프로파일링과 Bun을 포함한 7개 도구 비교를 넣었고, .ts 같은 파일을 자동으로 ESM 모듈 모드로 처리해 트랜스파일을 18배 빠르게 했습니다(#278). 변수 이름을 줄이는 identifier mangling을 단일 파일과 번들 모드에 넣은 뒤(#279, #280), lodash-es·preact·date-fns·uuid·zod 다섯 패키지를 번들링하는 실제 프로젝트 스모크 테스트를 시작했습니다(#281).

이후 하루 대부분은 스모크 테스트가 드러낸 문제를 고치는 데 쓰였습니다. namespace import를 esbuild 방식으로 ns.prop 직접 치환하고 export * as ns를 지원해 zod를 통과시켰고(#288, #290), contextual keyword를 식별자로 허용하는 파서 수정(#291), sideEffects 글롭 패턴(#293), CJS 내부 require() 번들링과 JSON 모듈, node_modules의 .js를 CJS로 간주하는 처리 등 CJS 상호 운용 개선(#295)이 이어졌습니다. axios·Redux Toolkit·express·superjson·zustand·effect·yargs에서 나온 버그를 고치고(#296, #297, #300), 2단계 선언 방식으로 전방 참조를 해결했으며(#301), 스모크 테스트 결과를 PR 댓글로 남기는 CI(#303)와 scope hoisting 충돌 회피의 전역 이름 자동 수집(#304)을 넣었습니다. 스모크 테스트는 vue·svelte·solid·three·react-dom·d3·hono 등을 더해 47개로 늘었습니다(#305, #311).

밤에는 --platform=node에서 package.json exports의 node 조건 사용(#307), barrel re-export의 export 체인 추적(#308), TS contextual keyword 30개를 식별자로 통합한 렉서 정리(#309)를 병합했습니다. export default 함수 이름의 contextual keyword 인식을 고치려던 #306은 병합 없이 닫혔습니다. CLI --define:KEY=VALUE(#312), CJS 트리 셰이킹과 메모리 누수 수정(#313), CJS 모듈의 export * 지원과 esbuild·rolldown 호환 __toESM(#314)이 들어왔고, Playwright 브라우저 E2E를 31개까지 늘렸습니다(#315, #316). 발견한 문제는 ISSUES.md로 정리하기 시작했습니다. 브라우저 호환성을 위한 import.meta polyfill 등의 #317은 이날 PR이 열렸습니다.

cheolsu-proxy는 Store 로직을 OpsStore로 합쳐 CLI와 MCP 사이 중복을 없앴습니다(#321). 블로그 저장소에는 맞춤법 크론의 상태 갱신 커밋과 3월 23일 오늘의 커밋 요약 작성이 올라왔습니다.

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

커밋

ohah/cheolsu-proxy

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/cheolsu-proxy#321생성 · 병합mergedmainrefactor: OpsStore에 Store 로직 통합하여 CLI/MCP 간 중복 제거
ohah/zntc#317생성mergedmainfeat(bundler): 브라우저 호환성 — deconflict 자동 수집 + import.meta polyfill + auto define
ohah/zntc#316생성 · 병합mergedmainfeat(e2e): 브라우저 E2E 10→31개 확장
ohah/zntc#315생성 · 병합mergedmainfeat(e2e): 브라우저 E2E immer/mobx 추가 + parser span 수정
ohah/zntc#314생성 · 병합mergedmainfix(linker): export * from CJS 모듈 지원 (vue 해결)
ohah/zntc#313생성 · 병합mergedmainfix(bundler): CJS tree-shaking + namespace re-export + 메모리 릭 수정
ohah/zntc#312생성 · 병합mergedmainfeat(cli): --define:KEY=VALUE 글로벌 치환 옵션 추가
ohah/zntc#311생성 · 병합mergedmainfeat(smoke): 스모크 테스트 38→47개 (react-dom, d3, hono 등 9개 추가)
ohah/zntc#310생성 · 병합mergedmainrefactor: /simplify 리뷰 반영 (#307, #308)
ohah/zntc#309생성 · 병합mergedmainrefactor(lexer): TS contextual keyword 30개를 identifier로 통합
ohah/zntc#308생성 · 병합mergedmainfix(linker): barrel re-export 패턴 export chain 소스 모듈까지 추적
ohah/zntc#307생성 · 병합mergedmainfix(resolver): --platform=node에서 package.json exports 'node' 조건 사용
ohah/zntc#306생성closedmainfix(parser): export default function에서 TS contextual keyword 함수 이름 인식
ohah/zntc#305생성 · 병합mergedmainfeat(bundler): 스모크 테스트 29→38개 (vue, svelte, solid, three 등)
ohah/zntc#304생성 · 병합mergedmainrefactor(linker): scope hoisting deconflict — 상수 글로벌 목록 → unresolved ref 자동 수집
ohah/zntc#303생성 · 병합mergedmainfeat(ci): 스모크 테스트 결과 PR 댓글로 포스트
ohah/zntc#302생성 · 병합mergedmaintest(integration): forward reference 실행 검증 테스트
ohah/zntc#301생성 · 병합mergedmainfix(semantic): forward reference 해결 — 2-pass 선언 방식
ohah/zntc#300생성 · 병합mergedmainfix(parser/bundler): effect/yargs 파싱+emitter 수정
ohah/zntc#299생성 · 병합mergedmainfeat(bundler): 스모크 테스트 12→21개 확장
ohah/zntc#298생성 · 병합mergedmainfix(bundler): CJS require_rewrites 메모리 릭 수정
ohah/zntc#297생성 · 병합mergedmainfix(bundler): express/superjson/zustand 스모크 테스트 — 3가지 버그 수정
ohah/zntc#296생성 · 병합mergedmainfix(bundler): axios/toolkit 스모크 테스트 — 5가지 버그 수정
ohah/zntc#295생성 · 병합mergedmainfeat(bundler): CJS interop 대폭 개선 — 22/24 스모크 테스트 통과
ohah/zntc#294생성 · 병합mergedmainfix(bundler): 스모크 테스트 실패 6건 수정 — 파서/codegen/linker
ohah/zntc#293생성 · 병합mergedmainfeat(bundler): sideEffects 글롭 패턴 지원
ohah/zntc#292생성 · 병합mergedmainfix(bundler): lodash-es/zod 스모크 테스트 수정 + CI 통합
ohah/zntc#291생성 · 병합mergedmainfix(parser): contextual keyword를 expression/statement에서 식별자 허용
ohah/zntc#290생성 · 병합mergedmainfeat(bundler): esbuild 방식 namespace import + export * as ns + zod 스모크 테스트 성공
ohah/zntc#288생성 · 병합mergedmainrefactor(linker): esbuild 방식 namespace import — ns.prop 직접 치환
ohah/zntc#287생성 · 병합mergedmainfix(tree-shaker): namespace import 시 named re-export 소스 모듈 include
ohah/zntc#285생성 · 병합mergedmainfix(linker): namespace import + re-export alias + _default 충돌 해결
ohah/zntc#281생성 · 병합mergedmaintest: 실제 프로젝트 스모크 테스트 — 5개 npm 패키지 번들링 검증
ohah/zntc#280생성 · 병합mergedmainfeat(linker): 번들 모드 identifier mangling — scope hoisting 후 이름 단축
ohah/zntc#279생성 · 병합mergedmainfeat(codegen): identifier mangling MVP — 변수 이름 단축
ohah/zntc#278생성 · 병합mergedmainfix(cli): .ts 파일 ESM module mode 자동 설정 — 트랜스파일 18배 성능 개선
ohah/zntc#277병합mergedmainfeat: 벤치마크 스위트 — esbuild/SWC/oxc/webpack/rspack/rolldown 비교