Learn

bun 실전 사용법

올인원 런타임 : 패키지 매니저, 번들러, 테스트 러너, 그리고 Node의 대안.

bun은 단순한 패키지 매니저가 아니에요 : Node, npm, 그리고 여러 부가 도구(번들러, 테스트 러너)를 Zig로 작성된 하나의 바이너리로 대체하려는 완전한 JavaScript 런타임이에요.

bun 하나로 하는 것들

기능bun별도 도구
JavaScript 런타임Node.js
패키지 매니저npm / pnpm
번들러Vite / esbuild / Rollup
테스트 러너Vitest / Jest
TypeScript 트랜스파일러기본 내장tsc / ts-node

결과 : 더 적은 의존성, 더 적은 설정, 그리고 Node보다 빠른 실행 속도.

bun 설치하기

macOS와 Linux:

shell
curl -fsSL https://bun.sh/install | bash

Windows (PowerShell):

shell
powershell -c "irm bun.sh/install.ps1 | iex"

npm으로(대안):

shell
npm install -g bun

설치 확인:

shell
bun --version

자주 쓰는 명령어

기존 프로젝트의 의존성 설치:

shell
bun install

패키지 추가:

shell
bun add react

개발 의존성 추가:

shell
bun add -d typescript

스크립트 실행:

shell
bun run dev
shell
bun dev

파일 직접 실행(node 없이):

shell
bun run index.ts

테스트 실행:

shell
bun test

일회성 명령어 실행:

shell
bunx create-next-app my-app

패키지 제거:

shell
bun remove lodash

bun이 왜 이렇게 빠른가

bun은 가비지 컬렉터가 없는 저수준 언어 Zig로 작성됐어요. 빠른 시작으로 알려진 Safari의 JavaScriptCore 엔진을 사용해요. 패키지 설치는 공격적으로 병렬화되어 있고 자체 바이너리 캐시 형식(bun.lockb)을 사용해요.

공개 벤치마크에서 bun은 npm보다 520배, pnpm보다 25배 빠르게 의존성을 설치해요.

bun의 lockfile

bun은 bun.lockb 파일(바이너리 형식, 사람이 읽을 수 없음)을 생성해요. 고정된 버전을 확인해야 한다면:

shell
bun pm ls

호환성

bun은 npm 생태계와 약 95% 호환돼요. 대부분의 패키지가 수정 없이 작동해요. 남은 문제 사례 : 일부 네이티브 패키지(.node 바인딩)와 Node에 매우 특화된 도구들이에요. 2026년에는 매 릴리즈마다 호환성이 개선되고 있어요.

bun 공식 문서 Node.js API 호환성

다음 단계를 열려면 단계를 체크하세요

코스로 돌아가기