피드로 돌아가기
React to Rust, no try/catch
Dev.toDev.to
Frontend

Rust WASM-TypeScript 간 Result 타입 통합을 통한 No-Exception 아키텍처 구현

React to Rust, no try/catch

Sarkis M2026년 5월 9일21advanced

Context

TypeScript와 WASM 간 FFI 경계에서 발생하는 Exception 처리의 불일치로 인한 런타임 불안정성 상존. 기존의 try/catch 기반 제어 흐름은 오류 타입의 불명확함과 데이터 흐름의 단절을 초래함.

Technical Solution

  • Rust의 Result<T, E>와 Option 타입을 TypeScript의 Tagged Union으로 1:1 투영하여 Exception 없는 데이터 파이프라인 구축
  • Rust solver 내부에서 Panic을 완전히 제거하고 모든 도메인 실패를 타입화된 LambertError Variant로 반환하는 설계 적용
  • Schema-first 접근법을 통한 Type, Validation, Field Path의 Single Source of Truth 확보 및 런타임 타입 추론 자동화
  • FFI 경계에서 Error 객체를 래핑하는 대신 Rust의 Sum Type을 JS Tagged Union으로 직접 변환하는 2라인의 투영 로직 구현
  • UI 렌더링 직전 단계까지 모든 비즈니스 로직에서 Result/Option 체인을 유지하여 Error Handling 지점을 경계선으로 단일화

1. WASM 도입 시 Rust 내부 Panic 가능성을 완전히 배제하고 Result 기반의 Error Model을 설계했는가?

2. TypeScript-WASM 경계에서 Exception을 throw하는 대신 Tagged Union 형태로 에러를 반환하고 있는가?

3. Form-Validation-Logic-UI로 이어지는 데이터 흐름을 하나의 Schema로 통합 관리하여 중복 수정 지점을 제거했는가?

4. null/undefined 대신 Option 타입을 도입하여 값의 부재를 명시적으로 처리하고 있는가?

원문 읽기