본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

새 JavaScript 런타임이 필요한 이유

~11 min · bun, overview, javascript, anthropic

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

Bun은 이 퀘스트의 JavaScript 패키지 관리자 가운데 가장 젊고 급진적이야. 단순히 빠른 npm이 아니라 JavaScript 도구 체계 전체를 다시 구현한 결과물이지. Node.js를 대신하는 런타임, npm을 대신하는 패키지 관리자, esbuild·webpack을 대신하는 bundler, Jest·Vitest를 대신하는 테스트 실행기와 작은 셸까지 실행 파일 하나에 담았어. Google V8 대신 Safari가 쓰는 Apple JavaScriptCore 위에서 동작하며 전부 Zig로 작성됐어.

속도 차이도 뚜렷해. 패키지 약 1,100개를 가진 Next.js 프로젝트를 빈 캐시에서 설치하면 npm은 약 57초, pnpm은 약 32초, Bun은 약 8.6초가 걸려 npm보다 약 7배 빨라. .ts.tsx 파일도 별도 컴파일 없이 실행해. 내장 lockfile은 현재 bun.lock이며 예전에는 bun.lockb였고, JSON 기반 lockfile보다 훨씬 빠르게 읽도록 Structure-of-Arrays 형식으로 최적화됐어.

2025년 10월의 Bun v1.3은 full-stack 개발 서버, MySQL·PostgreSQL·SQLite·Redis 내장 클라이언트, 100배 낮은 유휴 CPU 사용량, 격리된 workspace 설치와 bun audit을 추가했어. 2025년 11월에는 Anthropic이 Bun을 인수했어. Claude를 만드는 회사가 Bun도 개발하게 된 변화야.

Node.js 호환성은 좋지만 완벽하지는 않아. 주요 Node.js API를 폭넓게 구현했고 대부분의 npm 패키지가 작동하며 같은 registry와 package.json을 사용해. 하지만 일부 C++ native addon과 드문 Node 전용 API는 아직 맞지 않을 수 있어. 새 프로젝트에는 흥미로운 선택이지만 기존 프로젝트를 옮기기 전에는 반드시 전체 테스트를 통과시켜야 해.

Code

실행 파일 하나에 담긴 Bun 도구들·text
  Runtime           Bun           (Node.js 대체)
  Package manager   bun install   (npm/pnpm/yarn 대체)
  Bundler           bun build     (esbuild/webpack 대체)
  Test runner       bun test      (jest/vitest 대체)
  Shell             bun shell     (스크립트용 bash 대체)
  네이티브 TS       bun index.ts  (tsc 없음, 컴파일 없음)
  빌트인 DB         Bun.sqlite    (better-sqlite3 대체)

  한 binary 안에 다. Zig 로 작성. JavaScriptCore 엔진.

External links

Exercise

https://bun.sh/blog에서 최근 배포 글 세 개를 훑어봐. '몇 % 더 빨라졌다'거나 '이제 Bun에 내장됐다'는 설명이 얼마나 자주 나오는지 세어 보면 빠른 배포 속도가 드러나. 눈에 띄는 기능 하나를 골라 실제 프로젝트에 왜 중요한지 자기 말로 설명해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.