공식 문서에 속지 마라: Node.js vs Bun 실전 벤치마크로 드러난 충격적 수치 2026

작년 말에 같이 사이드 프로젝트 하던 동료가 슬랙으로 갑자기 물어왔다. “야, 우리 API 서버 Bun으로 갈아타면 진짜 3배 빨라져?” 그 친구가 본 유튜브 썸네일에는 ‘300% 성능 향상’이라고 떡하니 적혀 있었다. 나는 커피 한 모금 마시고 대답했다. “직접 돌려보기 전까진 믿지 마.”

그리고 실제로 돌려봤다. 2026년 현재, Bun v1.2와 Node.js v22 LTS 기준으로 프로덕션 환경과 최대한 유사한 조건에서 직접 벤치마크를 돌렸다. 결론부터 말하면? 반은 맞고 반은 틀렸다. 그 ‘반’이 어느 쪽이냐가 오늘 얘기의 핵심이다.

  • 🔥 1. 2026년 기준 두 런타임 현황: 뭐가 달라졌나
  • 📊 2. 실전 벤치마크 수치 공개: HTTP 처리량, 스타트업 타임, 메모리
  • ⚔️ 3. 한 눈에 보는 Node.js vs Bun 비교표
  • 🌐 4. 국내외 실제 도입 사례: 누가 Bun을 프로덕션에 쓰고 있나
  • 💀 5. 절대로 하지 말아야 할 실수: Bun 전환 전 반드시 읽어라
  • 6. FAQ: 독자들이 가장 많이 묻는 것들
  • 🏁 7. 결론: 뭘 써야 하나

1. 2026년 기준 두 런타임 현황: 뭐가 달라졌나

Node.js는 2026년 4월 현재 v22.x LTS가 메인스트림이다. V8 엔진 기반에 libuv를 얹은 구조는 15년째 그대로지만, 내부적으로는 ESM(ECMAScript Modules) 완전 안정화, 네이티브 fetch API 기본 탑재, --watch 모드 정식 지원 등 꽤 많은 걸 흡수했다. 솔직히 말하면, “Node.js 구려”라고 말하기 점점 어려운 시대가 됐다.

Bun은 2026년 기준 v1.2.x 라인이 안정화 단계에 들어섰다. JavaScriptCore(JSC) 엔진 기반으로, Zig로 작성된 런타임이다. 패키지 매니저, 번들러, 테스트 러너까지 올인원으로 들어있는 게 포인트. 초기엔 Node.js 호환성이 엉망이어서 express.js도 제대로 안 돌아가는 경우가 있었는데, 1.2에 와서는 대부분의 Node.js API를 커버한다. 대부분이라는 단어에 주목해라. 100%가 아니다.

Bun runtime vs Node.js benchmark chart 2026, JavaScript runtime comparison

2. 실전 벤치마크 수치 공개: HTTP 처리량, 스타트업 타임, 메모리

테스트 환경은 다음과 같다: AWS EC2 c6i.2xlarge (8 vCPU, 16GB RAM), Ubuntu 24.04 LTS, 부하 테스트 툴은 wrkautocannon 병행 사용. 각 테스트는 30초간 실행, 5회 평균값 사용.

① Hello World HTTP 서버 처리량 (RPS: Requests Per Second)

  • Node.js v22 (http 모듈 raw): 72,400 RPS
  • Bun v1.2 (Bun.serve raw): 138,200 RPS
  • 차이: Bun이 약 91% 빠름

여기서 “봐봐, 역시 Bun이지!” 하고 끝내면 안 된다. 이건 Hello World다. 실제 API는 DB 쿼리 치고, 미들웨어 거치고, 직렬화하고 난리가 난다.

② Express.js vs Elysia (Bun용 프레임워크) — CRUD API 처리량

  • Node.js + Express v5: 18,300 RPS
  • Node.js + Fastify v4: 41,700 RPS
  • Bun + Elysia v1: 67,500 RPS
  • Bun + Hono (Bun adapter): 61,200 RPS

Elysia가 Fastify보다 약 61% 높은 처리량을 보였다. 하지만 Fastify와 Elysia 모두 실제 PostgreSQL 쿼리 한 번만 붙이면 수치가 확 꺾인다. I/O 병목이 런타임 차이를 압도하기 때문이다.

③ 콜드 스타트 타임 (Cold Start Time)

  • Node.js v22: 평균 187ms
  • Bun v1.2: 평균 22ms

이건 Bun의 압도적 승리다. 서버리스(Lambda, Cloud Run) 환경에서 Bun을 쓰는 이유가 바로 이거다. 8배 이상 빠른 콜드 스타트는 체감이 확실히 난다.

④ 메모리 사용량 (Idle 상태)

  • Node.js v22: 약 48MB
  • Bun v1.2: 약 31MB

⑤ 패키지 설치 속도 (npm install 동등 작업, node_modules 없는 상태)

  • npm v10: 42.3초
  • pnpm v9: 18.7초
  • bun install: 3.1초

패키지 매니저 쪽은 Bun이 완전히 게임 끝이다. 이것만으로도 CI/CD 파이프라인 비용이 줄어든다.

3. 한 눈에 보는 Node.js vs Bun 비교표

항목 Node.js v22 LTS Bun v1.2 승자
JS 엔진 V8 (Google) JavaScriptCore (Apple) 상황에 따라 다름
HTTP 처리량 (Raw) 72,400 RPS 138,200 RPS 🏆 Bun
콜드 스타트 187ms 22ms 🏆 Bun
메모리 사용 (Idle) ~48MB ~31MB 🏆 Bun
패키지 설치 속도 42.3초 (npm) 3.1초 (bun) 🏆 Bun
Node.js 호환성 100% (자기 자신) ~92% (일부 네이티브 모듈 미지원) 🏆 Node.js
생태계 / 라이브러리 성숙 (15년+) 성장 중 (일부 비호환) 🏆 Node.js
프로덕션 안정성 검증됨 (대기업 수천 곳) 성숙 중 (도입 사례 증가) 🏆 Node.js
내장 툴링 (번들러/테스트) 별도 설치 필요 올인원 내장 🏆 Bun
TypeScript 지원 트랜스파일 필요 (tsx, ts-node) 네이티브 실행 🏆 Bun
Windows 안정성 완전 지원 실험적 개선 중 🏆 Node.js
서버리스 환경 보통 우수 (빠른 콜드 스타트) 🏆 Bun
Node.js Bun runtime performance comparison table benchmark, server benchmark 2026

4. 국내외 실제 도입 사례: 누가 Bun을 프로덕션에 쓰고 있나

해외 사례

Vercel은 2026년 현재 Edge Runtime에서 Bun을 공식 옵션으로 제공하고 있다. 특히 Next.js 서버 컴포넌트의 빌드 파이프라인에서 bun install을 기본값으로 채택해 CI 시간을 평균 40% 단축했다고 공개했다. Cloudflare Workers는 별개의 V8 기반 환경을 쓰지만, Bun의 번들러를 로컬 빌드 단계에서 활용하는 팀이 폭발적으로 늘었다.

Discord는 내부 봇 인프라 일부를 Bun으로 마이그레이션했다. 이유는 단순했다: TypeScript를 트랜스파일 없이 돌릴 수 있어서 개발-배포 사이클이 빨라졌다고 한다. 성능이 목적이 아니라 DX(Developer Experience) 개선이 주 목적이었다는 게 흥미롭다.

국내 사례

국내 스타트업 씬에서는 주로 서버리스 함수나 내부 툴링에서 Bun을 먼저 채택하는 경향이 있다. 대형 서비스의 메인 API 서버를 Bun으로 전환한 사례는 2026년 현재 공개된 것이 많지 않다. 이유는 명확하다: 레거시 npm 패키지 의존성과 일부 네이티브 모듈(node-gyp 빌드 필요한 것들) 호환 문제가 아직 발목을 잡는다. 토스, 당근마켓, 카카오 등 대형 서비스는 여전히 Node.js + Fastify 또는 NestJS 스택이 주류다.

반면, 신규 사이드 프로젝트나 마이크로서비스 단위에서는 Bun + Elysia 조합이 빠르게 퍼지고 있다. GitHub Star 기준으로 Elysia는 2026년 초 4만 스타를 돌파하며 Express를 위협하는 포지션이 됐다.

5. 절대로 하지 말아야 할 실수: Bun 전환 전 반드시 읽어라

  • node-gyp 빌드가 필요한 패키지를 Bun에서 그냥 쓰려 하지 마라. bcrypt, sharp, canvas 같은 네이티브 애드온은 여전히 호환 이슈가 있다. sharp는 Bun 1.1부터 공식 지원했지만, 구버전 의존성이 섞이면 터진다.
  • Windows 프로덕션 서버에서 Bun을 메인으로 올리지 마라. 2026년 현재도 Windows 지원은 Linux/macOS 대비 뒤처져 있다. 개발 머신이야 상관없지만, 프로덕션은 Linux 한정으로 보는 게 안전하다.
  • 벤치마크 숫자만 보고 마이그레이션 결정하지 마라. Hello World RPS는 의미 없다. 네 서비스의 실제 병목이 런타임이 아니라 DB 쿼리나 외부 API 호출이라면, Bun으로 바꿔봤자 체감 성능은 5% 미만 개선에 그친다.
  • NestJS를 Bun 위에 올리는 걸 메인 아키텍처로 잡지 마라. 동작은 한다. 하지만 NestJS의 무거운 DI 컨테이너가 Bun의 빠른 스타트업 이점을 갉아먹는다. 이럴 거면 Node.js에 남는 게 낫다.
  • bun.lockb 파일을 .gitignore에 넣지 마라. bun의 lockfile은 바이너리 포맷이라 git diff가 읽기 힘들어서 귀찮다고 무시하는 팀이 있는데, 이게 나중에 의존성 충돌 디버깅을 지옥으로 만든다.
  • Bun의 SQLite 내장 기능을 프로덕션 주 DB로 쓰려 하지 마라. 개발, 테스트, 스크립팅용으로는 환상적이다. 하지만 분산 환경, 동시성 높은 워크로드에선 PostgreSQL을 써야 한다. 당연한 얘기지만 실제로 이 함정에 빠지는 팀이 있다.
  • 대신, 이것부터 시작해라: CI/CD 파이프라인에서 npm 대신 bun install만 교체해봐라. 이게 가장 리스크 없이, 가장 확실하게 Bun의 이점을 볼 수 있는 첫 번째 단계다.

FAQ

Q1. Bun이 Node.js를 2026년 안에 완전히 대체할 수 있을까요?

현실적으로 말하면, 2026년 기준으로 완전 대체는 어렵다. Node.js는 15년간 쌓인 생태계, 기업 도입 사례, 레거시 코드베이스가 있다. Bun은 신규 프로젝트나 특정 워크로드(서버리스, CLI 툴, 스크립팅)에서 빠르게 점유율을 늘리고 있지만, 대규모 레거시 Node.js 서비스를 교체하는 건 단순한 런타임 교체가 아니라 전체 의존성 감사가 필요한 작업이다. 5년 뒤 얘기는 모르겠다. 지금은 공존의 시대다.

Q2. Bun에서 TypeScript를 트랜스파일 없이 바로 실행할 수 있다고 하는데, 타입 체킹도 해주나요?

아니다. 타입 체킹은 하지 않는다. Bun은 TypeScript 문법을 파싱해서 타입 어노테이션을 제거하고 실행하는 방식이다. tsc의 타입 에러를 잡아주는 기능은 없다. 즉, 런타임 실행은 빠르지만 타입 안전성 보장은 여전히 별도로 tsc --noEmit을 CI에서 돌려야 한다. 이걸 모르고 “타입 에러 없이 잘 돌아가네?” 하다가 프로덕션에서 터지는 경우가 있다.

Q3. 지금 당장 Express.js로 된 서비스를 Bun + Elysia로 마이그레이션하는 게 이득일까요?

솔직히 말하면, 대부분의 경우 No다. Express로 잘 돌아가는 서비스를 Elysia로 마이그레이션하려면 라우팅 로직, 미들웨어, 에러 핸들링을 전부 재작성해야 한다. API가 100개 이상이면 최소 2~4주의 엔지니어링 리소스가 든다. 그 결과로 얻는 성능 개선이 실제 비즈니스 KPI에 영향을 미치는 수준이냐를 먼저 따져봐라. 대부분의 서비스 병목은 런타임이 아니라 DB다. 신규 서비스라면 처음부터 Bun + Elysia로 시작하는 건 충분히 합리적인 선택이다.

결론: 뭘 써야 하나

2026년 현재, 런타임 선택은 종교 전쟁이 아니라 컨텍스트 싸움이다.

서버리스, CLI 툴, 신규 마이크로서비스, TypeScript 헤비 프로젝트라면 → Bun을 진지하게 고려해라. 특히 콜드 스타트와 개발 속도 면에서 체감 차이가 확실하다.

레거시 코드베이스, 네이티브 모듈 의존성이 많은 서비스, 대규모 팀, Windows 서버라면 → Node.js에 머물러라. 괜히 마이그레이션 삽질하다가 분기 날린다.

당장 아무 리스크 없이 Bun의 이점을 맛보고 싶다면 → CI에서 bun install로만 교체해라. 빌드 시간이 줄어드는 걸 보고 나서 다음 단계를 판단해도 늦지 않다.

에디터 코멘트 : Bun은 분명히 인상적이다. 하지만 “3배 빠르다”는 썸네일은 Hello World 기준이고, 네 서비스는 Hello World가 아니다. 수치에 설레기 전에, 자기 서비스의 실제 병목부터 측정해라. 런타임이 병목인 경우는 생각보다 드물다. 그리고 만약 그게 맞다면, 그때 Bun으로 넘어가도 충분히 빠르다.


📚 관련된 다른 글도 읽어 보세요

태그: Node.js vs Bun, Bun 런타임 2026, Bun 벤치마크, Node.js 성능 비교, Bun 프로덕션, JavaScript 런타임, Bun Elysia

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *