LabHub

블로그

Modern Backend Runtime 2025 — Node.js 22·Bun·Deno·Cloudflare Workers·WinterJS 완전 비교 가이드 (Season 7 Ep 1)

한국어English日本語

프롤로그 — "Node 하나만 있으면 되는 줄 알았다"

Season 7이 시작된다. Season 5에서는 데이터 엔지니어링을, Season 6에서는 프런트엔드를 훑었다. 이제 Season 7은 백엔드와 플랫폼 엔지니어링. 서버·인프라·운영·확장성·신뢰성이 주제다.

그 첫 글은 가장 뜨거운 논쟁 중 하나 — "2025년에 어떤 JavaScript 런타임을 써야 하는가?"

2022년까지만 해도 답은 단순했다. "Node.js." 15년 넘게 사실상 유일한 JS 서버 런타임이었다. 2022년 Bun 1.0이 충격적 벤치마크와 함께 등장하면서 지형이 흔들리기 시작했고, 2024~2025년은 다극 체제가 정착한 시기다.

2025년의 JS 런타임 지형:

런타임엔진타겟2025 현황
Node.js 22 LTSV8범용 서버여전히 표준, 안정성
Bun 1.2JavaScriptCore(JSC)범용 + CLI속도 왕
Deno 2V8Typescript 네이티브·보안Node 호환성 대폭 개선
Cloudflare WorkersV8 IsolateEdge330+ Edge, 가장 광범위
Vercel Edge RuntimeV8 IsolateEdgeCloudflare 위에 얹음
Deno DeployV8 IsolateEdgeDeno 자회사
WinterJSSpiderMonkey + WASMEdge실험적
Fastly ComputeWASMEdgeWebAssembly-first

이 글에서는 13개 챕터로 각 런타임의 내부·성능·생태계·선택 기준을 풀어본다.


1장 · 왜 JS 런타임이 다양해졌나

2022년까지의 Node 독점

2009년 Ryan Dahl이 만든 Node는 "브라우저 밖 JavaScript"의 유일한 선택지였다. V8 + libuv + npm 조합은 빠른 개발·거대한 생태계·쉬운 배포로 서버 JS를 장악했다.

그러나 Node에는 누적된 기술 부채가 있었다:

2022 Bun의 등장

Jarred Sumner가 1인 개발로 시작, "Node를 10배 빠르게, 그리고 TS를 바로 실행"을 목표로 함. 2022년 9월 베타 공개, JavaScriptCore(JSC) + Zig 구현으로 충격적 벤치마크. 2023년 9월 1.0, 2025년 1.2까지 진화.

2022 Deno 2의 재정비

Ryan Dahl이 2018년 "Node의 후회"를 담아 시작한 Deno는 보안·TS 네이티브·Web 표준에 집중. 하지만 npm 생태계 단절로 채택이 느렸다. 2024년 Deno 2에서 npm 호환성을 전면 복원하며 재도약.

2023~2024 Edge Runtime 범람

Cloudflare Workers(V8 Isolate), Vercel Edge, Deno Deploy, Fastly Compute, Netlify Edge — "Full Node가 아닌 경량·빠른 실행"을 지향하며 Edge 컴퓨팅의 주 런타임으로.

결론

"하나의 런타임으로 모두를 커버하는 시대는 끝났다." 2025년엔 목적별 선택.


2장 · Node.js 22 LTS — 안정적 진화의 대명사

2024년 10월 LTS 전환. 2025년 기준 프로덕션의 default.

주요 기능 (22 기준)

Node의 2025 강점

  1. 생태계: npm 260만+ 패키지, 모든 라이브러리가 테스트된 곳
  2. 안정성: 15년 프로덕션 입증
  3. 클라우드 지원: 모든 서버리스·PaaS의 기본
  4. 문서·커뮤니티: 한국어 자료도 풍부

Node의 약점

2025 권장 사용 패턴


3장 · Bun 1.2 — 속도와 DX의 혁명

2023년 9월 1.0, 2024년 말 1.2. JavaScriptCore + Zig + uWebSockets의 결합. 주간 다운로드 700만+ 돌파.

핵심 특징

벤치마크 예시 (간이)

작업Node 22Bun 1.2배율
npm install (중간 규모)25s3s~8x
HTTP echo server (RPS)60k250k~4x
Startup (hello world)40ms6ms~7x
SQLite read (10k rows)80ms12ms~7x

실전 서비스에서 4~10배가 아닌 1.5~3배 수준으로 귀결되지만 여전히 매력적.

Bun.serve 예시

Bun.serve({
  port: 3000,
  fetch(req) {
    const url = new URL(req.url);
    if (url.pathname === "/") return new Response("Hello Bun!");
    return new Response("Not Found", { status: 404 });
  },
});

Bun의 약점 (2025 기준)

2025 권장 사용


4장 · Deno 2 — 보안·표준·Typescript 네이티브

Ryan Dahl이 Node의 "10가지 후회"를 바로잡아 2018년 시작. 2024년 Deno 2는 npm 완전 호환 + Node.js API 호환으로 귀환.

핵심 특징

보안 예시

# 파일 읽기 + 네트워크 접근 명시적으로 허용
deno run --allow-read --allow-net server.ts

# 모든 권한 (개발용)
deno run -A server.ts

Deno Deploy — Edge 배포

2025 권장 사용


5장 · Cloudflare Workers — V8 Isolate 기반 Edge

2017년 출시, 2024~2025년 Edge 컴퓨팅의 1강.

V8 Isolate란

Workers의 특징

예시

export default {
  async fetch(req: Request, env: Env): Promise<Response> {
    const { pathname } = new URL(req.url);
    if (pathname === "/") return new Response("Hello from Edge!");
    return new Response("Not Found", { status: 404 });
  },
};

함께 쓰는 서비스

2025 Node 호환 (nodejs_compat)

2024년부터 Cloudflare Workers에서 Node API 다수를 호환. fs, buffer, stream, events 등. Express·Hono 앱 이식 가능.

2025 권장 사용


6장 · Vercel Edge·Deno Deploy — Workers 생태계의 확장

Vercel Edge Runtime

Deno Deploy

2024~2025 추세

Edge에서의 Node API 호환성 확대로 "Edge도 범용 런타임"이 된다. 2020년대 초반 "Edge는 경량 로직만"이라는 제약이 빠르게 무너지는 중.


7장 · 성능 벤치마크의 정직한 이해

왜 벤치마크는 속으는가

실전에서 중요한 지표

  1. P95·P99 latency — 평균이 아니라 꼬리
  2. Memory footprint — Serverless·Kubernetes 비용 직결
  3. Cold start — Edge·Serverless에서 critical
  4. GC pause — Real-time 서비스 영향
  5. Startup time — Serverless·CLI에 직접 영향

참고 도구

조언

"속도는 코드가 아니라 알고리즘·DB·네트워크가 결정한다." 런타임을 100ms에서 50ms로 줄여봐야, DB 쿼리 500ms면 의미 없다. 병목 측정이 먼저.


8장 · TypeScript 네이티브 — 런타임의 필수 기능이 되다

과거

2024~2025 흐름

주의

"TS를 실행한다"는 것과 "타입 체크"는 다르다. 런타임은 타입을 제거만 한다. 타입 체크는 여전히 tsc 또는 IDE가 담당.

2025 베스트 프랙티스

  1. 개발·런타임: Bun·Deno·tsx 직접 실행
  2. CI: tsc --noEmit로 타입 체크
  3. 프로덕션: Node + esbuild·swc 번들 또는 Bun 직접 실행
  4. 에지: wrangler/vercel 전용 번들러 사용

9장 · 패키지 매니저 전쟁 — npm·pnpm·yarn·bun·deno

npm

pnpm

Yarn (Berry)

bun install

Deno (JSR·npm)

2025 권장


10장 · 프레임워크와의 궁합

Node.js

Bun

Deno

Cloudflare Workers

Hono — 2024~2025의 다크호스

import { Hono } from "hono";

const app = new Hono();
app.get("/", (c) => c.text("Hello!"));
app.get("/user/:id", (c) => c.json({ id: c.req.param("id") }));

export default app; // 모든 런타임에서 동작

11장 · 전환 전략 — 이미 Node면 어떻게 옮기나

부분 전환 시나리오

시나리오 1 — 스크립트·CLI만 Bun

시나리오 2 — Edge 레이어 도입

시나리오 3 — 전면 Bun 전환

리스크 체크


12장 · 한국 생태계 현황

도입 사례

한국어 커뮤니티 자원

채용 시장


13장 · 체크리스트·안티패턴·다음 글 예고

런타임 선택 체크리스트 (12개)

  1. 안정성 최우선 장기 서비스 → Node.js LTS
  2. 최대 속도·DX → Bun
  3. TypeScript 네이티브·보안 우선 → Deno
  4. 글로벌 Edge → Cloudflare Workers·Vercel Edge
  5. WebAssembly·Polyglot → Fastly Compute
  6. 프레임워크는 Hono(런타임 무관) 고려
  7. 패키지 매니저 pnpm 또는 bun
  8. 번들은 esbuild·swc·Rolldown·Turbopack
  9. 테스트는 Vitest·Bun test·Node test
  10. 프로덕션 모니터링(Sentry·Datadog) 호환 확인
  11. Native addon (sharp·canvas) 호환 확인
  12. 팀 역량·학습 곡선 고려

런타임 안티패턴 TOP 10

  1. "Bun이 빠르대"로 프로덕션 전면 전환
  2. Cold start 테스트 없이 Serverless 배포
  3. Edge에서 Node API 쓰다가 배포 직전 깨짐
  4. TS 타입 체크를 스킵 (런타임이 실행한다고 안전 X)
  5. --experimental-* 플래그를 프로덕션에
  6. 동일 앱을 Node + Bun 혼합 실행
  7. child_process 과용 (Serverless·Edge에서 동작 X)
  8. 커넥션 풀 누수 — Edge에서 특히 심각
  9. 모니터링·APM 연동 없이 프로덕션
  10. 벤치마크를 그대로 믿기 — 실전은 다르다

다음 글 예고 — Season 7 Ep 2: "Modern Backend Framework"

런타임 위에 올리는 프레임워크. Ep 2는 2025년 백엔드 프레임워크 지도.

"프레임워크는 유행이 아니라 팀의 무기고다. 무기는 많이 쓸수록 익숙해지고, 익숙한 무기가 가장 강하다."

다음 글에서 만나자.


"런타임은 도구이지 종교가 아니다. Node·Bun·Deno·Workers 각자의 강점이 있고, 2025년 현명한 팀은 하나를 고집하지 않고 문제에 맞는 도구를 고른다. Season 7을 이 태도로 시작한다."

— Season 7 Ep 1.

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다