Pyodide 래퍼에서 Edge AI 엔진으로

발행: (2025년 12월 17일 오전 10:00 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

몇 달 전, 브라우저에서 바로 Python ML 모델을 실행할 수 있는 React 라이브러리 v1을 배포했습니다. 작동은 했지만, 피드백은 직설적이고 공정했습니다:

“이건 기본적으로 Pyodide를 감싼 래퍼에 불과합니다.”

이 한 줄이 중요한데, 실제 문제를 드러냈기 때문입니다.

v1이 옳았던 점 (그리고 틀린 점)

v1은 가능성을 입증했습니다

  • Python + WASM + React가 클라이언트‑사이드에서 동작할 수 있음을 증명했습니다.

실제 앱에서 나타난 문제들

  • 추론이 UI를 멈추게 함.
  • 워커가 React 컴포넌트보다 오래 살아남아 메모리 누수 발생.
  • WASM OOM(메모리 초과)으로 인해 조용히 멈춤.
  • 정리 로직이 취약하고 흩어져 있었음.

Python을 실행하는 것이 어려운 부분이 아니라, 실패를 관리하는 것이 어려웠습니다.

v2에서 바뀐 점

  • 전체 재작성 – 래퍼에서 Edge ML을 위한 인프라 레이어로 전환.
  • 감시된 워커 풀 – 멈추거나 OOM이 된 워커를 자동으로 종료하고 교체.
  • 엄격한 React 라이프사이클 바인딩 – 컴포넌트 언마운트 = 워커 종료. 좀비 워커 없음.
  • 제로‑카피 데이터 경로 – 가능한 경우 SharedArrayBuffer를 사용해 대형 텐서 직렬화를 피함.

목표는 단순히 속도 향상이 아니라, 실패 상황에서도 예측 가능성을 확보하는 것이었습니다.

앞으로의 방향

현재 Neural Bundler를 프로토타이핑하고 있습니다 — Python 수학 로직을 WebGPU 컴퓨트 셰이더로 변환하는 빌드‑타임 컴파일러로, 수학 연산이 무거운 워크로드에서는 Pyodide를 완전히 건너뛰게 합니다. 아직 초기 단계이지만 매우 유망합니다.

클라이언트‑사이드 ML, 엣지 추론, 혹은 WASM + React와 관련된 작업을 하고 계시다면 의견을 듣고 싶습니다.

Repository link

Back to Blog

관련 글

더 보기 »