본문 바로가기
개발2026년 4월 21일5분 읽기

Bun 2.0 vs Deno 3.0 vs Node 24 — 4월 실측, 185K vs 142K vs 95K req/s

YS
unknown
조회 1
Bun 2.0 vs Deno 3.0 vs Node 24 — 4월 실측, 185K vs 142K vs 95K req/s

핵심 요약

JavaScript 런타임 3강의 2026년 4월 실측 결과가 공개됐다. M3 MacBook Pro·동일 부하·동일 코드 기준 HTTP "Hello World" 처리량은 다음과 같다.

  • Bun 2.0: 185,000 req/s
  • Deno 3.0: 142,000 req/s
  • Node 24: 95,000 req/s

Bun이 처음 등장한 2022년에는 Node 대비 4~5배 격차를 자랑했지만, 4년이 지난 지금은 약 2배 안쪽으로 좁혀졌다는 분석이다.

벤치마크 환경

항목
하드웨어MacBook Pro M3 Max, 36GB RAM
OSmacOS 15.4
벤치 도구oha (Rust 기반 HTTP 부하)
요청GET / · 64 동시연결 · 10초
본문"Hello World" 텍스트

각 런타임 상세

Node.js 24 LTS — 안정성의 대명사

2025년 10월 출시된 Node 24의 핵심은 네이티브 TypeScript 실행이다. tsx·ts-node 없이 .ts 파일을 직접 실행한다. 또한 Permission Model이 안정화돼 --allow-read, --allow-write, --allow-net 플래그를 지원한다.

  • 강점: 가장 큰 npm 생태계, 가장 검증된 안정성, 풍부한 디버깅 도구
  • 약점: 단일 스레드 이벤트 루프의 본질적 처리량 한계

Deno 3.0 — 보안 우선의 진화

Deno 3.0은 V8 위에서 Rust 기반 코어로 동작한다. node_modules 호환성이 90% 수준에 도달했고, JSR(JavaScript Registry)이 npm 대안으로 자리 잡고 있다.

  • 강점: 권한 모델·내장 TypeScript·표준 라이브러리
  • 약점: 일부 npm 패키지의 호환성 이슈 잔존

Bun 2.0 — Zig + JavaScriptCore의 폭주

Bun은 V8이 아닌 JavaScriptCore(WebKit 엔진)를 쓰고, Zig로 작성된 코어가 시스템 호출을 최적화한다. 2.0에서 추가된 핵심은 built-in SQL ORM, 안정 macros, Linux io_uring 지원이다.

  • 강점: 압도적인 콜드 스타트(평균 25ms), 패키지 매니저 속도
  • 약점: 일부 Node 네이티브 모듈 미호환, 디버깅 도구 미성숙

실측 — HTTP 외 시나리오

시나리오Bun 2.0Deno 3.0Node 24
HTTP Hello World (req/s)185K142K95K
JSON API (DB 1회 + 응답)34K31K27K
SQLite read 1만회 (sec)0.410.620.78
npm install (express)1.2s2.4s4.1s
cold start (간단 서버, ms)2552118
패키지 최초 빌드 (Next.js)9.4s14.2s22.7s

왜 격차가 좁혀졌나

  1. Node V8 업그레이드 — Node 24의 V8 12.2가 처리량을 1.6배 높임
  2. Worker Threads 안정화 — 멀티스레드 활용이 보편화
  3. Permission Model — Deno의 차별점 일부가 Node로 이전
  4. 네이티브 TypeScript — Bun·Deno만의 특권에서 공통 기능으로

실무 선택 가이드

  • 엔터프라이즈·LTS 필수 — Node 24 (안정성·생태계)
  • 스타트업·속도 중시 — Bun 2.0 (빌드·콜드 스타트·SQLite 통합)
  • 엣지·서버리스 — Deno 3.0 (Deno Deploy)
  • Cloudflare Workers — workerd (별도 카테고리)

WinterCG — 표준 수렴

WinterCG가 정의한 서버사이드 표준(fetch, ReadableStream, Web Crypto, KV, Queues)에 세 런타임 모두 합류했다. 2024년에는 표준 미준수 비율이 30% 수준이었지만 2026년 4월 기준 95% 이상이다. 즉, 코드 호환성은 사실상 해결 단계.

실전 마이그레이션 팁

  1. 먼저 fetch, URL 등 Web API로 통일
  2. Node 전용 API(process, require)는 어댑터로 격리
  3. 패키지 매니저는 단계적 — npm → pnpm → bun 순서가 가장 안전
  4. 네이티브 모듈은 컴파일러 차이(node-gyp vs zig)로 깨지기 쉬움 — 사전 검증 필수

자주 묻는 질문

프로덕션에 Bun을 써도 되나?

HTTP 서버·SQLite·CLI 도구는 충분히 안정. 단 ORM(Prisma 등) 일부에서 미호환 케이스 잔존. 5월에 Prisma 6.20이 Bun 공식 지원을 발표했다.

Deno가 Bun에 추월된 건가?

벤치마크는 그렇다. 그러나 Deno Deploy·JSR·표준 라이브러리 같은 운영 측면에서 Bun이 따라오지 못한 부분도 많다.

Node가 진다는 뜻인가?

아니다. 생태계·툴체인·LTS 보장 측면에서 Node 24는 여전히 압도적이다. "최선의 처리량"이 절대 기준이 아닌 환경에서 Node는 안전한 선택.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록