3-6. 스모크 테스트와 실전 호환성

기간: 2026년 3월 23일 커밋: 123개 세션: 5개 (가장 긴: ad71ad73 — GitHub issues 해결) 핵심: 스모크 테스트 5→47개, CJS/ESM 상호운용, forward reference, barrel re-export

"실제 패키지가 돌아가나?"

Test262 100%를 달성하고, 번들러와 Dev Server를 구현했지만, 진짜 중요한 질문은 남아 있었다: "실제 npm 패키지를 번들링하면 돌아가나?"

Bun 모노레포 셋업 (첫 세션)

"bun 모노레포 셋업을 할건데, 그럼 기존 지그는 어떻게 옮겨가나요?" "기존 액션들도 다 옮겨가야하나요?" "bun도 그렇게 하고 있나요?"

eaf1287 feat: Bun 모노레포 셋업 + 통합/E2E 테스트 환경 구축
db5cb8a feat: oxlint + oxfmt 설정 추가

import.meta.hot API 구현

"import.meta.hot API 구현해줘"

HMR 서버 아키텍처 결정:

"1번은 어떤걸 추천해? Bun은 어떻게 하고있지?" "Bun 표준 라이브러리 쓸때 손해가있어? 번은 왜 그렇게 했을까?" "그럼 std.http.Server로 결정"

HMR API 호환성:

"2번은 웹팩까지 호환하려면 import.meta.hot으론 안되지않아?" "그리고 metro도 생각해야하는데"

스레딩 결정:

"스레드 3개? 좀 과하다싶으면 10개이상 돌리는경우도 있을거자나" "스레드 늘어난다고 나쁜게 있어? 개발시에" "메트로도 그렇게 하고 있지 않아?" "좋아요 그렇게 가시져 1번으로 가요" — thread-per-connection 방식

React Fast Refresh

"일단 리액트 핫 리로드 해야한다는거 아니예요? $RefreshSig$ Hook 시그니처 먼저 해야하는거 아닌지?" "기능 갭이 뭐야?" "좀 더 자주 리셋 안됐으면 좋겠는데 포함하면 안되나"

벤치마크 — 7개 도구 비교

"프로파일링은 리소스 많이드나요?" "esbuild, swc, oxc, webpack, rspack 이 다 벤치마킹이였으면 좋겠는데" "벤치마크 결과가 좋다는게 뭔소리예요 너만 보면 안되죠" — 다른 도구와 비교 필수 "CI에도 추가하고, 윈도우, 리눅스, 맥 환경 다 CI 돌리고, 항상 깃헙 본문에 CI 돌면 추가되게 해주실 수 있나요?"

"프로파일링 병목 한번 잡아보시죠"

프로파일링에서 발견한 핵심 성능 문제:

c42a145 fix(cli): .ts/.tsx/.mts/.mjs 파일 자동 ESM module mode — 18배 성능 개선

스모크 테스트 확장: 5→47개

lodash-es: UMD 감지 문제

두 번째 세션에서 lodash-es 번들링을 시도:

34b0ca0 fix(bundler): node_modules .js CJS 기본 간주 — lodash UMD 해결

GitHub Issues 해결 세션 (ad71ad73)

"깃헙 이슈에 있는 내용 해결해줘"

esbuild vs oxc 방식 논쟁:

namespace import를 어떻게 처리할지에 대해 깊은 논의가 있었다:

"어떤 아키텍쳐 변경이 필요하죠? 하기전에 설명해주세요" "어느게 더 안정적인가요?" "oxc보다 esbuild가 낫단 이야기일까요?" "성능이 esbuild가 빠른 이유는?" "안정성은 어떤것때문에 보장 낫다고 판단하시는거예요?" "ES5 지원에도 불리한거죠?" "그럼 esbuild 방식으로 가시죠"

namespace import를 ns.prop 직접 치환 방식(esbuild)으로 결정:

b51dcac refactor(linker): esbuild 방식 namespace import — ns.prop 직접 치환

zod 문제 해결:

"zod 문제부터 해결하자" "계속 해결하시죠 pr로 생성해서 작업해주세요" "그리고 중첩 namespace * 순환참조도 여기서 작업 해"

84c9878 fix(linker): export * as ns의 seen 오염 방지 — zod 스모크 테스트 성공

axios/toolkit 세션 (e464436f)

"axios/toolkit 스모크 테스트 해결 해줘"

4가지 버그가 동시에 터졌다:

"어떤 정교한 스코프 분석을 하는거야?" — 문제 원인 파악 "oxc, rolldown은요?" — 다른 프로젝트 비교 "oxc는 왜 전용헬퍼?" — 구현 방식 차이 이해 "우린 왜 1곳이에요? 6곳은 어디어딘데요?" — 코드 구조 파악

스모크 테스트 실행 검증에 대한 집요함:

"실제 실행도 해보면서 통과했다고 확인한거야?" "리액트 쿼리 함수 호출도 해보고 이런거야?" "어 실행해봐"

"왜 테스트 코드를 수정해야해요? 제거가 안된게 문제가 아니고?" — 테스트를 고치는 것이 아니라 코드를 고쳐야 한다는 지적

더 많은 패키지 추가 요구:

"더 추가해보실 수 있나요 스모크 테스트" "effect, yargs도 해결 해" "rxjs 진짜 실행돼? 용량이 너무 작은데" — 의심스러운 결과에 대한 검증

벤치마크 비교 확장:

"esbuild 다 fail 달렸는데" — CI 결과 확인 "그리고 마찬가지로 swc, oxc, bun도 비교해줘 esbuild 말고" "어 롤다운이나 웹팩 Rspack으로 비교해줘"

forward reference: 2-pass 선언

ed2b622 fix(semantic): forward reference 해결 — 2-pass 선언 방식

scope hoisting 후 함수 선언이 사용 지점보다 뒤에 위치할 수 있다. 2-pass 방식: 첫 번째 패스에서 모든 선언을 등록하고, 두 번째 패스에서 참조를 해석.

"블록스코프내 레퍼런스도 해야하지 않아?" "테스트케이스도 추가해주고" "그정도로 실제 잘됐다고 보증할 수 있어??" — 테스트 충분성에 대한 의문 "스모크 테스트 노드 실행도 추가해야하는거 아냐??"

3/23 추가된 47개 스모크 테스트 (주요)

lodash-es, preact, date-fns, uuid, zod, axios, @reduxjs/toolkit, chalk, yaml, effect, yargs, semver, debug, fast-glob, micromatch, vue, svelte, solid-js, three.js, graphql, react-dom, d3, hono, dayjs...

366aaf7 feat(ci): 스모크 테스트 결과 PR 댓글로 포스트

각 패키지는 실제 사용 패턴으로 테스트했다. 단순히 import하는 것이 아니라, API를 호출하고 결과를 검증했다.