WebAssembly 계산 경계
Wasm은 브라우저 플랫폼을 바꾸는 기술이 아니라 계산 함수와 JavaScript UI의 책임을 나누는 선택이다.
| 구성 | 맡는 일 | 주의할 비용 | 좋은 기준 |
|---|---|---|---|
| JavaScript | DOM, 이벤트, 네트워크, 상태 연결 | 메인 스레드 긴 작업 | UI와 I/O 조율에 집중 |
| Wasm module | CPU 집약 함수 실행 | 로드와 초기화 비용 | 큰 계산 단위로 호출 |
| Linear memory | 입력 버퍼와 결과 버퍼 공유 | 문자열·객체 변환 | 배열 중심 데이터 전달 |
| Toolchain | Rust/C++ 코드를 wasm으로 빌드 | 디버깅과 배포 복잡도 | 팀이 빌드 체인을 운영 가능 |
| Fallback | 미지원·로드 실패 대비 | 빈 화면 또는 기능 중단 | JS 경로와 오류 안내 준비 |
WebAssembly는 JavaScript를 없애는 방식이 아니라 JS와 계산 모듈 사이의 경계를 명확히 하는 방식이다.