WebAssembly는 JS를 대체하지 않고 계산 경계를 나눠 맡는다
Wasm은 계산 밀도가 높은 작업에 강하고 JS는 DOM, 이벤트, 네트워크, UI 상태 연결에 자연스럽다.
| 판단 축 | Wasm에 맡길 때 | JS에 둘 때 | 검증 질문 |
|---|---|---|---|
| Workload | 반복 계산이 크고 CPU 병목 | 짧은 UI 로직과 상태 처리 | 계산 비용이 경계 비용보다 큰가 |
| Interop | 큰 데이터 덩어리를 적게 왕복 | 작은 값과 DOM을 자주 다룸 | 호출 횟수와 복사 비용을 측정했는가 |
| Memory | TypedArray와 linear memory로 공유 | 객체 그래프와 문자열 중심 | 변환 비용이 허용되는가 |
| Build | C/C++/Rust 툴체인과 wasm 파일 배포 | JS 번들만으로 충분 | 배포와 디버깅 체인을 감당하는가 |
| UX | 무거운 계산을 worker와 함께 분리 | 브라우저 API와 직접 상호작용 | 로딩 시간이 사용자 경험을 해치지 않는가 |
WebAssembly는 모든 JavaScript를 바꾸는 기술이 아니라 계산 모듈과 브라우저 플랫폼 역할을 나누는 선택이다.