Wubular는 기존 Rubular의 서버-클라이언트 아키텍처를 Ruby WebAssembly(WASM) 기반의 클라이언트 측 아키텍처로 전환하며 혁신을 이루었습니다.
Rubular의 고전적 아키텍처 한계
기존 Rubular는 사용자 입력을 서버에 POST 요청으로 보내고 Ruby 백엔드에서 정규식을 평가한 후 결과를 받는 Ajax 방식이었습니다. 이는 서버 부하, 네트워크 지연, 백엔드 유지 보수 등의 명확한 한계를 가졌습니다.
Ruby 인 더 브라우저: WASM 도입과 Wubular의 장점
Ruby 3.2부터 MRI(Ruby 인터프리터)가 WebAssembly(WASM) 환경에서 실행 가능해졌습니다. WASM은 웹을 위한 안전하고 빠른 바이트코드입니다. 이 기술을 통해 Wubular는 모든 Ruby 코드를 완전히 클라이언트 측에서 실행합니다.
Wubular의 주요 이점은 다음과 같습니다. * 서버리스: 서버 배포 및 확장이 불필요합니다. * 즉각적인 피드백: 네트워크 왕복 없이 입력 즉시 결과가 표시됩니다. * 개인 정보 보호: 테스트 문자열이 브라우저를 떠나지 않습니다. * 간소화된 배포: 정적 HTML과 Ruby 파일만으로 구성됩니다.
Wubular는 WASM으로 컴파일된 Ruby 인터프리터를 사용하며, 애플리케이션 로직은 일반 .rb
파일로 작성됩니다. require "js"
라이브러리를 통해 Ruby 클래스에서 document.querySelector
같은 브라우저 API를 직접 조작합니다.
브라우저 내 TDD 및 테스트
Wubular는 TDD(테스트 주도 개발)로 구축되었으며, Minitest를 사용하여 브라우저 내에서 직접 테스트 스위트를 실행합니다. ?run_tests
파라미터를 통해 다양한 Ruby 버전으로 통합 테스트를 수 밀리초 내에 완료하며, 클라이언트 측 애플리케이션 개발의 새로운 가능성과 효율성을 입증합니다.