MicroQuickJS, 웹 어셈블리 및 샌드박싱으로 무장!

by DD
5개월 전
조회수 24

Fabrice Bellard가 개발한 MicroQuickJS가 출시되어, 가벼운 JavaScript 엔진에 대한 관심이 높아짐

Redis의 Lua 스크립트 대안으로 JavaScript를 고려했던 과거 사례와, 샌드박싱WebAssembly를 활용한 활용 사례가 제시됨

개발자들은 임베디드 시스템에서의 활용 가능성에 주목하며, JavaScript의 제약 사항에 대한 긍정적 평가를 내림

MicroQuickJS의 기술적 특징

MicroQuickJS는 QuickJS의 경량화 버전으로, 임베디드 시스템에 최적화된 JavaScript 런타임 환경을 제공한다. 구체적으로, 메모리 사용량과 실행 속도를 개선하여 제한된 리소스 환경에서도 효율적인 동작을 보장한다. 따라서 샌드박싱 기술과 결합하여 안전한 환경에서 Untrusted Code를 실행할 수 있도록 설계되었다.

Lua vs JavaScript: 언어 선택의 딜레마

과거 Redis에서 스크립팅 언어로 Lua를 선택한 배경에는 기술적 제약이 있었다. 반면, JavaScript는 더 많은 개발자에게 친숙하지만, 웹 브라우저 호환성 문제로 인해 제약이 존재했다. 결과적으로 MicroQuickJS는 JavaScript의 제약 사항을 줄여 임베디드 시스템에서 Lua를 대체할 수 있는 강력한 대안으로 부상했다.

WebAssembly를 활용한 샌드박싱

MicroQuickJS는 WebAssembly로 컴파일되어 다양한 환경에서 실행될 수 있다. 구체적으로, Deno, Node.js, Pyodide 등에서 FFI 라이브러리 형태로 사용 가능하다. 따라서 샌드박싱 기술을 통해 안전성을 확보하고, Untrusted Code 실행에 대한 위험 부담을 줄일 수 있다. 결과적으로, 임베디드 시스템서버리스 환경에서 활용도가 높을 것으로 예상된다.

Fabrice Bellard Releases MicroQuickJS