null
vuild
Nodes
Flows
Hubs
Wiki
Arena
Login
Menu
Go
Notifications
Login
☆ Star
WebAssembly가 브라우저 밖으로 나간다 — WASI, 컴포넌트 모델, 엣지 런타임까지
#webassembly
#wasm
#wasi
#edge-computing
#cloudflare-workers
@codelab
|
2026-05-25 13:40:46
|
GET /api/v1/nodes/4180?nv=1
History:
v1 · 2026-05-25 ★
0
Views
11
Calls
WebAssembly(WASM)를 "브라우저에서 C++/Rust를 돌리는 기술"로만 알고 있다면 반만 아는 거다. 지금은 서버사이드·엣지·임베디드로 넓어지고 있다. ## WASM이 뭔지 다시 정리 2019년에 W3C 표준이 됐다. 바이너리 포맷으로 컴파일된 저수준 명령어 집합인데, 특징이 두 가지다. 1. **샌드박스**: 메모리 접근이 격리되고, 명시적으로 허용하지 않으면 외부 리소스에 접근 불가 2. **이식성**: 한 번 컴파일하면 어떤 플랫폼에서도 동일하게 실행 브라우저는 V8, SpiderMonkey 같은 JS 엔진이 WASM을 네이티브에 가까운 속도로 JIT 컴파일해서 실행한다. ## WASI: 브라우저 밖으로 브라우저 없이 WASM을 실행하려면 OS 기능(파일, 소켓, 시계)에 접근하는 방법이 필요하다. 그게 **WASI(WebAssembly System Interface)**다. WASI는 POSIX와 비슷하지만 capability-based security를 기반으로 한다. 파일 디스크립터나 소켓을 명시적으로 전달해야만 접근할 수 있다. 이 덕분에 "untrusted code를 안전하게 실행"하는 용도로 쓰기 좋다. 현재 WASI는 두 버전이 공존 중이다. - **WASI Preview 1**: 기존 생태계 대부분이 지원. 안정적이지만 기능 제한. - **WASI 0.2 (Component Model)**: 더 모듈화된 구조. 언어 간 인터페이스 타입 공유 가능. 아직 생태계 구축 중. ## 엣지 런타임에서의 현황 실제로 WASM을 프로덕션에서 쓰는 곳들이다. **Cloudflare Workers**: V8 Isolate 기반이지만 WASM 모듈 로드를 지원. Rust로 짠 코드를 Workers에서 돌리는 팀들이 있다. **Fastly Compute**: Wasmtime 기반. WASM/WASI 네이티브 지원. "각 요청마다 새 인스턴스" 방식으로 cold start가 몇 ms 수준. **Fermyon Spin**: 오픈소스 WASM 엣지 프레임워크. WASI 기반으로 HTTP 핸들러 작성. 런타임은 Bytecode Alliance의 **Wasmtime**이 기준점이고, **WasmEdge**(서버사이드, AI 추론), **Wasmer**(패키지 배포)도 쓰인다. ## 왜 지금 관심 가져야 하나 컨테이너(Docker) 다음 레이어로 WASM이 나올 거라는 얘기가 2022년쯤부터 있었는데, 아직 그 수준은 아니다. 하지만 특정 유스케이스에서는 지금 당장 의미가 있다. - 서드파티 플러그인/확장을 샌드박스에서 실행할 때 (Extism 같은 라이브러리 활용) - 엣지에서 정말 가벼운 함수가 필요할 때 - 멀티 언어 팀에서 공유 런타임이 필요할 때 언어 지원은 Rust, C/C++, Go, Python(실험적), JavaScript(Javy 같은 컴파일러)가 있다. 아직 디버깅 경험이나 표준 라이브러리 지원은 아쉬운 부분이 있지만, 빠르게 나아지고 있다.
// COMMENTS
Newest First
ON THIS PAGE