개요

JavaScript/TypeScript 런타임은 브라우저 밖에서 JS를 실행하는 환경입니다. Node.js가 사실상 표준이었으나, DenoBun이 각각 보안과 속도를 앞세워 대안으로 부상했습니다.

3대 런타임

Node.js

항목내용
창시자Ryan Dahl (2009)
엔진V8 (Chrome)
언어C++
패키지npm (2M+ 패키지)
특징가장 큰 생태계, 최고 안정성, LTS
  • 사실상 서버 JS의 표준
  • Express, Fastify, Nest.js 등 풍부한 프레임워크
  • 모든 클라우드 플랫폼 완벽 지원

Deno

항목내용
창시자Ryan Dahl (2018, Node.js 반성에서 출발)
엔진V8
언어Rust
패키지JSR + npm 호환
특징퍼미션 기반 보안, 내장 도구 최다, Web Standard API
  • --allow-net, --allow-read 등 세밀한 보안 제어
  • fmt, lint, test, bench, compile, doc 모두 내장
  • Deno Deploy (엣지 서버리스), Fresh (웹 프레임워크) 생태계

Bun

항목내용
창시자Jarred Sumner (2022, Oven)
엔진JavaScriptCore (Safari)
언어Zig
패키지npm 호환 (내장)
특징최고 속도, 올인원 (런타임+번들러+패키지매니저+테스트)
  • Node.js 드롭인 대체 목표
  • bun install npm 대비 10~30배 빠름
  • bun build --compile로 단일 바이너리

성능 비교

Node.js = 1.0x 기준

항목Node.jsDenoBun
HTTP req/s14,000 (1.0x)29,000 (2.1x)52,000 (3.7x)
Cold Start60~120ms40~60ms8~15ms
패키지 설치1.0x빠름10~30x
번들링1.0x (Webpack)-~50x
테스트 실행1.0x (Jest)빠름10~30x

기능 비교

기능Node.jsDenoBun
TypeScriptts-node/tsx 필요네이티브네이티브
보안 모델없음퍼미션 샌드박스없음
패키지 매니저npm (별도)deno add + npm내장
번들러별도 (Webpack 등)없음내장
포매터Prettier (별도)deno fmt없음
린터ESLint (별도)deno lint없음
테스트 러너Jest 등 (별도)deno testbun test
벤치마크별도deno bench없음
컴파일 (바이너리)pkg (별도)deno compilebun build —compile
문서 생성TypeDoc (별도)deno doc없음
보안 감사npm auditdeno audit없음
Web Standard API부분완전부분
SQLite 내장별도 패키지없음bun:sqlite
FFIN-APIdeno ffibun:ffi

호환성 비교

항목Node.jsDenoBun
npm 패키지100%~90%~95%
CommonJSOOO
ES ModulesOOO
package.jsonOOO
node_modulesOOO
Node.js 내장 모듈100%대부분대부분
C++ 애드온 (N-API)O부분O
Express/FastifyOOO
Next.jsO실험적실험적

생태계 비교

항목Node.jsDenoBun
패키지 레지스트리npm (2M+)JSR + npmnpm
웹 프레임워크Express, Fastify, Nest.jsFreshHono, Elysia
엣지 배포Vercel, AWS LambdaDeno Deploy-
프레임워크 지원Next.js, Nuxt, RemixFresh, AstroNext.js (실험), Astro
GitHub Stars112k106k76k
LTSO (짝수 버전)O (2.0+)미확정

각 런타임의 철학

런타임철학
Node.js”검증된 안정성” — 가장 큰 생태계, 최고의 호환성
Deno”올바른 설계” — 보안, 표준, 도구 통합
Bun”극한의 속도” — 모든 것을 빠르게

선택 가이드

상황추천
프로덕션 안정성 최우선Node.js
대규모 팀, 기존 코드베이스Node.js
보안 민감 서버Deno (퍼미션 샌드박스)
TypeScript 설정 없이 시작Deno or Bun
내장 도구로 의존성 최소화Deno (fmt, lint, test, bench, doc 모두 내장)
엣지 서버리스Deno (Deno Deploy)
최고 성능 / 빠른 시작Bun
빠른 패키지 설치Bun
CLI 도구 배포 (단일 바이너리)Deno or Bun
Node.js 드롭인 대체Bun
새 프로젝트 (소규모)Bun or Deno

경량 / 임베디드 런타임

txiki.js

항목내용
엔진QuickJS-ng (V8/JSC 아님)
비동기 I/Olibuv (Node.js와 동일)
언어C (82%+)
라이선스MIT
GitHubhttps://github.com/saghul/txiki.js
웹사이트https://txikijs.org
  • Web Platform APIs (fetch, WebSocket, setTimeout, Crypto) 내장
  • TCP/UDP/HTTP 서버, WebSocket 내장
  • SQLite, FFI, 해싱 표준 라이브러리
  • tjs compile → 단일 바이너리 컴파일
  • WinterTC (서버 JS 호환성 표준) 준수
  • 목표: 임베딩/경량 환경 (IoT, 엣지, 스크립팅)

QuickJS는 FFmpeg 창시자 Fabrice Bellard가 만든 초소형 JS 엔진

엔진 비교

런타임엔진특징
Node.js / DenoV8최고 성능, 가장 큰 JIT
BunJavaScriptCore빠른 시작, 애플 생태계
txiki.jsQuickJS초소형, 임베딩 최적

2025~2026 트렌드

  • Node.js: TypeScript 네이티브 지원 실험 (--experimental-strip-types), 안정성 유지
  • Deno: npm 호환성 90%+ 달성, JSR 생태계 성장, Deno 2.x LTS
  • Bun: Windows 안정화, 프로덕션 채택 증가, 번들러/컴파일러 고도화
  • 공통: OpenAI 호환 API, MCP 프로토콜, AI 에이전트 런타임으로의 확장

관련 항목