글 목록으로 돌아가기
2026년 4월 12일·General·학부연구생·1 min read

Emscripten은 무엇을 해주는 도구?

웹어셈블리를 공부하다 보면 LLVM 보다 더 자주 보는게 Emscripten이였다.

AI 노트

글을 빠르게 훑을 수 있도록 요약과 읽기 가이드를 제공합니다.

Emscripten을 한 줄로 말하면

Emscripten은
C/C++ 코드를 WebAssembly와 JavaScript 런타임 형태로 빌드할 수 있게 해주는 툴체인이다.

즉, 단순히 .wasm 파일 하나를 만드는 도구가 아니라
웹 환경에서 실행되도록 연결해주는 전체 빌드 흐름에 가깝다.


왜 필요한가

C/C++ 코드를 Wasm으로 만든다고 해서 바로 브라우저에서 잘 도는 것은 아니다.

실행 환경에는

  • 메모리 초기화
  • 런타임 보조 코드
  • JS와의 연결
  • 입출력 처리

같은 요소들이 필요하다.

Emscripten은 이런 부분을 함께 다뤄준다.


Emscripten이 하는 일

1. 컴파일

C/C++ 코드를 LLVM 기반으로 Wasm 타겟으로 컴파일한다.

2. 런타임 연결

필요한 JS glue code와 함께 묶어서 실행 가능하게 한다.

3. 디버깅 / Sanitizer 지원

AddressSanitizer 같은 도구를 Wasm 환경에서도 활용할 수 있게 도와준다.


내가 Emscripten을 보며 느낀 점

Emscripten을 그냥 "번역기"처럼 생각하면 구조가 잘 안 보인다.
실제로는 네이티브 코드를 웹 실행 환경으로 옮겨주는 브리지에 가깝다.

특히 실험을 하다 보면

  • LLVM IR 단계
  • Wasm 생성 단계
  • 후처리 단계
  • 실행 단계

가 한 번에 연결돼 있다는 걸 느끼게 된다.


정리

WebAssembly를 실제로 써보려면
Wasm 자체만 아는 것으로는 부족하고,
그걸 어떻게 빌드하고 실행할지까지 알아야 한다.

그 역할을 가장 직접적으로 보여주는 도구가 바로 Emscripten이라고 생각한다.

Comment

댓글 0

익명 로그인 없이 남길 수 있지만 수정과 삭제는 작성 당시 입력한 비밀번호로만 가능합니다.

아직 댓글이 없습니다

첫 번째 피드백을 남겨 보세요.