WebAssembly 및 Web Containers 기반 Ruby Gem 인터랙티브 튜토리얼 플랫폼

[Euruko 2025] “Building interactive Ruby gem tutorials with Wasm” – Albert Pazderin (Georgia)

작성자
EuRuKo
발행일
2025년 11월 10일

핵심 요약

  • 1 새로운 Ruby Gem을 시도할 때 발생하는 복잡한 초기 설정 문제를 해결하기 위한 WebAssembly 및 Web Containers 기반의 인터랙티브 학습 플랫폼이 소개되었습니다.
  • 2 JavaScript 생태계의 StackBlitz와 Web Containers 기술을 Ruby에 적용하여 run_ruby.dev, Wasmifi Rails를 거쳐 Rails on Web Containers 아키텍처를 구축하는 과정이 설명됩니다.
  • 3 이 플랫폼을 활용해 action_policy Gem 튜토리얼을 생성하고 실행하는 데모를 선보이며, 향후 사용자 경험 개선, 다른 Rack 기반 프레임워크 및 Pure Ruby Gem 지원 계획을 발표했습니다.

도입

루비 개발자들이 새로운 Gem을 발견했을 때, 이를 즉시 시도해보는 과정은 종종 번거로운 설정 작업으로 인해 방해받곤 합니다. 기존의 복잡한 프로젝트에 통합하거나 간단한 테스트를 위해 새로운 프로젝트를 처음부터 구축해야 하는 상황은 개발자의 초기 흥미와 몰입을 저해합니다. 본 발표는 이러한 '발견의 순간'과 '실제 경험' 사이의 간극을 메우고, 새로운 루비 Gem을 시도하는 경험을 최대한 매끄럽고 즐겁게 만들기 위한 도구, 즉 인터랙티브 튜토리얼 플랫폼에 대해 다룹니다.

루비 생태계는 애플리케이션에 필요한 거의 모든 기능에 대한 Gem이 존재할 정도로 강력하지만, 너무 많은 선택지는 오히려 올바른 Gem을 선택하기 어렵게 만들고 초기 설정의 어려움을 가중시킵니다. 이러한 문제를 해결하기 위해 발표자는 JavaScript 생태계의 접근 방식을 분석합니다.

JavaScript 생태계의 혁신

  • StackBlitz: 브라우저에서 풀 스택 애플리케이션 환경을 실행할 수 있는 온라인 IDE입니다. NPM 패키지 설치부터 개발 서버 실행까지 모든 개발 환경 작업이 브라우저 내에서 이루어집니다.

  • Web Containers: StackBlitz 기술의 핵심으로, Node.js 런타임을 WebAssembly로 컴파일하여 브라우저 내에서 가상 운영 체제처럼 작동하게 합니다. 이를 통해 사용자의 로컬 머신이 개발 설정의 대부분을 처리하여 클라우드 서버 부담을 줄입니다.

  • Tutorial Kit: Web Containers 기술을 기반으로 구축된 인터랙티브 튜토리얼 프레임워크로, 사용자가 코드를 편집하고 실행하며 결과를 즉시 확인할 수 있는 학습 경험을 제공합니다.

Ruby 생태계로의 확장: Rails on Web Containers

WebAssembly가 Ruby도 실행할 수 있다는 점에 착안하여, 발표자 팀은 StackBlitz의 Web Containers 아키텍처에 Ruby 런타임을 통합하는 도전을 시작했습니다. 이 과정은 다음과 같은 단계를 거쳐 발전했습니다.

  • run_ruby.dev: 브라우저에서 Ruby 코드를 실행하고 Gem을 설치하며 Ruby 웹 서버를 구동할 수 있는 온라인 Playground. JavaScript와 Ruby 간의 공유 파일 시스템 구현이 핵심 기술이었습니다.

  • Wasmifi Rails Gem: 전체 Rails 애플리케이션을 WebAssembly 모듈로 패키징하여 브라우저에서 Rails 서버를 실행할 수 있게 한 Gem입니다.

  • 인터랙티브 Rails 시작 가이드: 공식 Rails 시작 가이드를 재구축하여 거의 모든 레슨을 인터랙티브하게 만들었습니다. 개발 환경 지원(제너레이터, 마이그레이션, 콘솔, 서버 라이브 리로드)이 추가되었으며, Tutorial Kit을 활용하여 UI를 구성했습니다. 이 결과물이 바로 Rails on Web Containers입니다.

데모: Action Policy Gem 튜토리얼

발표자는 CLI 명령어를 통해 새로운 튜토리얼 프로젝트를 생성하고, Gemfile에 action_policy Gem을 추가하는 과정을 시연했습니다. Ruby Wasm 명령어로 WebAssembly 모듈을 빌드한 후, 개발 서버를 실행하여 터미널, 코드 에디터, 애플리케이션 미리보기 등의 인터랙티브 요소를 갖춘 튜토리얼 환경을 보여주었습니다. 특히, Rails 콘솔에서 action_policy Gem이 정상적으로 로드되고 작동하는 것을 확인하며, 사용자가 아무것도 설치할 필요 없이 로컬 머신과 동일한 학습 경험을 얻을 수 있음을 강조했습니다.

결론

이 플랫폼은 새로운 Ruby Gem을 탐색하고 학습하는 데 필요한 초기 장벽을 허물어 개발자들이 발견의 즐거움을 즉각적인 실습 경험으로 이어갈 수 있도록 돕는 강력한 도구입니다. UI 컴포넌트 라이브러리, Rails 엔진, 경량 튜토리얼 등 다양한 용도로 활용될 수 있습니다. 다만, Web Containers의 라이선스 정책에 따라 비상업적 용도에는 무료이나 상업적 용도에는 유료 API 사용이 필요하다는 점을 명시했습니다. 향후 계획으로는 사용자 및 개발자 경험 개선, Ruby 생태계를 위한 더 많은 인터랙티브 튜토리얼 제작, Hanami 등 다른 Rack 기반 웹 프레임워크 지원, 그리고 Pure Ruby Gem을 위한 경량 파이프라인 추가 등을 언급하며 프로젝트의 지속적인 발전을 예고했습니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!