Format Atlas

웹

WebAssembly 모듈이란?

`.wasm`은 WebAssembly Core Specification의 바이너리 모듈에 흔히 쓰이는 확장자입니다. WebAssembly는 웹 이외에도 쓰이는 이식 가능한 저수준 코드 형식이지만, 파일 하나만으로 모든 환경에서 실행되지는 않습니다. 호환 런타임이 필요하며 기능과 호스트 API는 임베딩 환경에 따라 다릅니다.

.wasm이식 가능한 저수준 바이너리 모듈

이 형식을 선택할 때

  • 필요한 Wasm 기능과 호스트 API를 갖춘 환경에서 실행
  • 호환 런타임용 컴파일 모듈 배포

이 형식을 피할 때

  • 바이너리를 텍스트처럼 직접 읽거나 편집
  • import와 런타임 또는 WASI 호환성을 확인하지 않고 배포

주요 용도

  • WebAssembly 런타임용 컴파일 모듈 배포
  • 브라우저·서버용 프로그램 컴파일

특징

  • 구조화된 바이너리 섹션으로 모듈 인코딩
  • 함수·메모리·테이블·전역값·import·export 정의 가능
  • 지원되는 기능에 따라 검증·실행

장점과 단점

장점

  • 호환 런타임 간 이식 가능한 명령 형식
  • 텍스트 소스보다 간결한 바이너리
  • 임베딩 환경이 공개한 호스트 기능으로 접근 범위 제한 가능

단점

  • 일반 텍스트 편집기에서 내용을 바로 확인하기 어려움
  • 런타임·기능·가져오는 API 호환성 확인 필요
  • 파일 형식만으로 안전성이 보장되지는 않음

열기 및 변환

여는 방법

WebAssembly 지원 브라우저나 서버 런타임 또는 검증·진단 도구로 불러옵니다. 필요한 기능과 import 지원 여부를 확인하세요. 실행 전 출처와 호스트에서 제공할 기능을 검토합니다.

변환 방법

호환 컴파일 도구로 `.wasm`을 생성합니다. 사람이 읽는 WebAssembly 텍스트 형식(WAT)과 변환하려면 전용 도구가 필요하며 확장자 변경만으로 변환되지 않습니다. 다시 빌드한 뒤 기능·import/export와 런타임 또는 WASI 호환성을 확인하세요.

주의 사항

  • `.wasm`은 WebAssembly 런타임이 해석하는 모듈이지 범용 실행 파일이 아닙니다.
  • 격리는 임베딩 환경이 공개하는 import와 호스트 API에 달려 있습니다. 신뢰할 수 없는 모듈은 실행하지 마세요.
  • 브라우저·서버 런타임·WASI 환경은 다른 기능과 인터페이스를 지원할 수 있습니다.

자주 묻는 질문

.wasm은 브라우저에서만 실행되나요?

아닙니다. 브라우저 밖에도 런타임이 있지만 호스트 기능과 인터페이스는 환경마다 다릅니다.

.wasm은 단독 실행되나요?

대개 아닙니다. 호환 런타임과 필요한 import가 있어야 합니다.

WebAssembly는 자동으로 안전한가요?

아닙니다. 모듈 출처, 접근 가능한 import와 호스트 API, 런타임 설정을 확인하세요.

관련 형식

참고 자료 및 사양