C.W.K.
Stream
Lesson 06 of 06 · published

Deno · Bun · 크로스-런타임 현실

~12 min · deno, bun, edge, cross-runtime

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

Bun은 거의 drop-in

Bun이 SDK를 special config 없이 돌림. bun add @anthropic-ai/sdk, bun run app.ts, 끝. Bun의 TypeScript-native 파이프라인이 Node + tsx 보다 개발이 눈에 띄게 빠를 때 많아.

Deno는 import map 필요

Deno가 npm: specifier로 SDK 실행 가능(import Anthropic from "npm:@anthropic-ai/sdk";). 권한 명시 — --allow-net=api.anthropic.com이랑 --allow-env면 보통 충분.

Cloudflare Workers와 Vercel Edge가 제약 공유

Workers와 Vercel Edge 둘 다 V8 isolate 위, web-standard API 표면. Streaming·tool use 동작; file streams·Node-only Files API 헬퍼 X. Ship하는 런타임에서 specific 코드 경로 테스트 — 'Node에서 동작'이 공짜로 옮겨가지 않아.

원칙: 지연·기능 needs로 런타임 픽. SDK는 모든 런타임에서 동작; 일부 헬퍼만 그래.

Code

Bun 스크립트 (zero config)·typescript
// app.ts
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic();
const r = await client.messages.create({
  model: 'claude-haiku-4-5-20251001',
  max_tokens: 64,
  messages: [{ role: 'user', content: 'bun says hi' }],
});
console.log(r.content);

// 실행: bun run app.ts
권한 명시한 Deno·typescript
// deno-app.ts
import Anthropic from 'npm:@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: Deno.env.get('ANTHROPIC_API_KEY'),
});
const r = await client.messages.create({
  model: 'claude-haiku-4-5-20251001',
  max_tokens: 64,
  messages: [{ role: 'user', content: 'deno says hi' }],
});
console.log(r.content);

// 실행: deno run --allow-net=api.anthropic.com --allow-env deno-app.ts

External links

Exercise

같은 minimal Messages 스크립트를 Node, Bun, Deno 아래 실행. 각각에 필요했던 권한 플래그·config 파일 메모. 프로덕션에 쓸 런타임 픽하고 한 문장 정당화.
Hint
'아는 거니까'가 정당화여도 그 자체로 valid 답 — 그렇게 써.

Progress

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

댓글 0

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

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