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

Bun과 Deno: TypeScript를 실행하는 런타임 이해하기

~8 min · tooling, bun, deno, runtime

Level 0Curious
0 XP0/93 lessons0/23 achievements
0/100 XP to next level100 XP to go0% complete
"Bun과 Deno는 .ts를 직접 실행하지만 타입 검사는 별도 책임이야."

세 실행 경로

Bun은 JavaScriptCore 기반 런타임으로 Node 호환성, 빠른 시작, 패키지 관리자·번들러·테스트 실행기를 함께 제공해. Deno는 V8 기반으로 명시적 권한 모델과 웹 표준, 린터·포매터·테스트 실행기를 내장해. 둘 다 import 때 TypeScript를 내부 변환하므로 소스 .ts를 직접 실행할 수 있어.

Node는 tsx 같은 래퍼나 빌드된 JavaScript를 사용하며, 특정 Node 버전과 Node 전용 생태계가 중요한 기존 코드베이스에서 호환성 선택이 돼.

타입 검사는 여전히 필요해

Bun과 Deno 모두 기본 실행 경로에서는 타입을 지우고 실행할 뿐 전체 타입 검사를 하지 않아. tsc --noEmit이나 Deno의 deno check를 별도로 실행해야 해.

선택 기준

Node 호환 프로젝트에서 속도와 단순함이 중요하면 Bun, 명시적 --allow-net·--allow-read 권한과 웹 표준을 원하면 Deno, 특정 Node 라이브러리와 기존 운영 호환성이 중요하면 Node를 골라.

2026년 새 TypeScript 프로젝트에서 Bun은 빠른 선택, Deno는 보안 중심 선택, Node는 호환성 선택이야. 셋 모두 유효하고 프로젝트의 제약이 결정을 내려.

Code

3개 TS runtime 경험 나란히·bash
# Bun — native TS, 빠른 startup.
bun run hello.ts            # 그냥 실행
bun test                    # 내장 test runner
bun --hot run server.ts     # hot reload 내장

# Deno — native TS, security 모델.
deno run hello.ts           # permission 명시 요청
deno run --allow-net script.ts  # network 접근 허용
deno test                   # 내장 test runner
deno fmt && deno lint       # formatter 와 linter 내장

# Node + tsc workflow — 여러 tool.
npm install --save-dev typescript tsx
npx tsx hello.ts            # tsx 가 TS 지원 위해 Node + esbuild wrap
# (또는: hot reload 엔 nodemon + tsx)
# (또는: 타입 체크엔 tsc --noEmit, runtime 엔 node dist/hello.js)

External links

Exercise

작은 TypeScript 스크립트를 Bun이나 Deno로 실행해. 같은 스크립트를 Node와 tsx 조합에서도 돌려 시작 방식, 모듈 해석, 사용감을 비교해.
Hint
짧은 스크립트에서는 시작 시간 차이가 눈에 띌 수 있지만 장기 서버에서는 운영 호환성이 더 중요해. 실행 파일 구성과 배포 단순성도 함께 비교해.

Progress

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

댓글 0

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

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