처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.13 28

WASI 0.3 출시 — WebAssembly가 드디어 '비동기'를 배웠어요

Hacker News 원문 보기
WASI 0.3 출시 — WebAssembly가 드디어 '비동기'를 배웠어요

WebAssembly(웹어셈블리)라고 하면 보통 브라우저에서 돌아가는 빠른 바이너리 정도로 알고 계신 분들이 많은데요. 사실 몇 년 전부터 이 기술을 브라우저 밖, 그러니까 서버나 엣지, 임베디드 환경에서 쓰려는 움직임이 꾸준히 진행되고 있어요. 그 중심에 있는 게 바로 WASI인데, 이번에 WASI 0.3.0이 정식으로 릴리스됐어요.

WASI가 뭐냐면, WebAssembly System Interface의 약자로, 웹어셈블리 프로그램이 파일을 읽고, 네트워크 통신을 하고, 시간을 확인하는 것처럼 '운영체제가 해주는 일'에 접근할 수 있게 해주는 표준 인터페이스예요. 웹어셈블리 자체는 철저하게 격리된 샌드박스라서 바깥세상과 소통할 방법이 없거든요. 그 통로를 표준으로 정해주는 게 WASI라고 보시면 돼요. 운영체제의 시스템 콜 같은 역할이죠.

0.2가 2024년 초에 나왔으니까 꽤 오랜만의 메이저 업데이트인데요, 이번 0.3의 핵심을 한 단어로 요약하면 '비동기(async)'예요.

이번 릴리스의 주인공: 네이티브 비동기 지원

기존 WASI 0.2에서도 비동기 비슷한 걸 할 수는 있었어요. wasi:io라는 인터페이스의 poll(폴링) 방식을 썼는데요. 이게 뭐냐면, '작업 끝났어? 아직? 끝났어?' 하고 계속 물어보는 방식이에요. 동작은 하지만 어색했고, 특히 여러 컴포넌트를 조합할 때 문제가 됐어요. 언어마다 자바스크립트의 이벤트 루프, 러스트의 tokio처럼 저마다 다른 비동기 런타임을 갖고 있는데, 이들이 서로의 사정을 모르니 한 컴포넌트가 무언가를 기다리는 동안 다른 컴포넌트까지 통째로 멈춰버리는 일이 생겼거든요.

0.3에서는 비동기가 컴포넌트 모델이라는 기반 자체에 들어갔어요. 인터페이스를 정의하는 WIT 언어에 future(나중에 도착할 값 하나)와 stream(계속 흘러들어오는 값들) 타입이 추가됐고, 함수 자체를 비동기로 선언할 수 있게 됐어요. 예를 들어 HTTP 핸들러가 응답 본문을 stream 타입으로 돌려주면, 전체 응답이 완성되길 기다리지 않고 준비된 부분부터 흘려보낼 수 있는 거예요.

이게 왜 중요하냐면, 서로 다른 언어로 만든 컴포넌트들을 레고처럼 조립해도 비동기 작업이 자연스럽게 맞물려 돌아가게 됐기 때문이에요. 러스트로 짠 컴포넌트가 Go로 짠 컴포넌트를 호출하면서도 서로를 블로킹하지 않는 거죠. 이걸 '조합 가능한 동시성(composable concurrency)'이라고 부르는데, 0.2 시절 생태계의 가장 큰 숙제로 꼽히던 부분이에요. 덕분에 폴링을 위해 존재하던 어색한 장치들도 자연스럽게 정리되는 방향이고요.

왜 다들 여기에 공을 들일까

Docker를 만든 솔로몬 하익스가 '2008년에 WASM과 WASI가 있었다면 Docker를 만들 필요가 없었을 것'이라고 말한 적이 있어요. 컨테이너보다 훨씬 가볍게 밀리초 단위로 시작하고, 더 촘촘한 샌드박스 격리를 제공하니까요. Fastly 같은 엣지 컴퓨팅 업체들은 이미 웹어셈블리로 고객 코드를 돌리고 있고, Fermyon의 Spin이나 wasmCloud 같은 서버리스 플랫폼도 이 생태계 위에 서 있어요.

다만 그동안은 '비동기 없는 시스템 인터페이스'라는 약점 때문에 네트워크 서버 같은 진짜 워크로드를 올리기엔 아쉬움이 있었는데, 0.3이 그 퍼즐을 채운 셈이에요. 로드맵상 0.3 다음 단계가 사실상 정식 표준화를 향한 1.0이라서, 이번 릴리스는 단순한 버전 업 이상의 의미가 있어요.

한국 개발자 입장에서는

당장 프로덕션에 도입하기보다는 두 가지 관점에서 지켜볼 만해요. 첫째는 플러그인 시스템이에요. 사용자가 올린 코드를 안전하게 실행해야 하는 SaaS, 게임 모드, 데이터 파이프라인의 커스텀 변환 로직 같은 곳에서 웹어셈블리 샌드박스는 이미 현실적인 선택지거든요. 둘째는 멀티테넌트 서버리스인데, 컨테이너보다 시작이 빠르고 한 서버에 더 촘촘하게 올릴 수 있어서 비용 구조 자체가 달라져요. wasmtime 같은 런타임이 0.3 지원을 구현해가는 중이니, 러스트나 Go로 사이드 프로젝트 삼아 컴포넌트 하나 만들어보면 감이 빨리 올 거예요.

정리하면

WASI 0.3은 '웹어셈블리로 진짜 서버 워크로드를 돌릴 수 있는가'라는 오래된 질문에 비동기라는 마지막 퍼즐 조각을 끼운 릴리스예요. 여러분은 어떻게 보세요? 웹어셈블리가 컨테이너의 자리를 일부라도 가져갈 수 있을까요, 아니면 플러그인 샌드박스 같은 영역에 머물까요? 실무에서 웹어셈블리 써보신 분들의 경험담도 궁금해요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.