피드로 돌아가기
Compiling Google OR-Tools to WebAssembly Simplifies Browser-Based Optimization Solvers
Dev.toDev.to
Infrastructure

WASM 기반 Google OR-Tools 도입으로 브라우저 내 Near-Native 최적화 구현

Compiling Google OR-Tools to WebAssembly Simplifies Browser-Based Optimization Solvers

Pavel Kostromin2026년 6월 8일8advanced

Context

기존 Native Solver의 저수준 메모리 제어 및 Multithreading 요구사항과 JavaScript의 Single-threaded 샌드박스 구조 간 기계적 불일치로 인해 브라우저 내 고성능 최적화 실행 불가.

Technical Solution

  • C++ 기반 OR-Tools 코드베이스를 WASM Bytecode로 컴파일하여 브라우저 내 가상 머신 기반의 Near-native 실행 환경 구축
  • WASM Threading 기능을 통한 CP-SAT 및 VRP Solver의 필수 요구사항인 Multithreading 병목 해결
  • Server-side 의존성을 제거한 Client-side 독립 실행 구조로 설계하여 Network Latency 및 서버 비용 문제 해결
  • MPSolver 및 MathOps API를 통한 Incremental Solve 기능을 구현하여 웹 애플리케이션 내 심리스한 통합 가능
  • Native Binding 시 발생하는 System Call 누락 및 Memory Segmentation Fault 문제를 WASM 샌드박스 환경으로 원천 차단

1. 브라우저 기반의 복잡한 연산 필요 시 JS 기반 라이브러리보다 WASM 컴파일된 Native 모듈 검토

2. Native Solver를 JS Binding으로 연결하려는 시도 지양 및 WASM 런타임 채택

3. 실시간 인터랙티브 최적화가 필요한 경우 Server-side API 대신 WASM-compiled OR-Tools 우선 고려

원문 읽기