브라우저에서 Ruby on Rails 구동: 개발자 온보딩 경험 개선을 위한 새로운 접근

RailsConf 2025 The future of Rails begins in the browser by Vladimir Dementyev, Albert Pazderin

작성자
Ruby Central
발행일
2025년 07월 24일

핵심 요약

  • 1 Ruby on Rails 학습의 진입 장벽을 낮추기 위해 브라우저 기반의 대화형 Rails 튜토리얼이 소개되었습니다.
  • 2 WebAssembly, WASI, Ruby WASM, Wasmify Rails, Web Containers 기술을 활용하여 Rails 애플리케이션을 브라우저에서 직접 실행하는 방법을 설명합니다.
  • 3 이 프로젝트는 Rails의 접근성을 높이고, AI 코딩 에이전트와의 통합 가능성을 제시하며, 미래 Rails 커뮤니티 성장에 기여할 것으로 기대됩니다.

도입

RailsConf에서 발표된 이 영상은 Ruby on Rails 학습의 초기 진입 장벽을 해소하고 새로운 개발자들의 온보딩 경험을 개선하기 위한 혁신적인 접근 방식을 소개합니다. 기존의 Rails 학습 방식이 복잡한 환경 설정과 의존성 문제로 인해 초보자들에게 어려움을 주었던 점을 지적하며, 이를 해결하기 위한 '브라우저 기반의 대화형 Rails 튜토리얼'의 필요성을 강조합니다. 이 튜토리얼은 사용자가 별도의 설치 없이 웹 브라우저 내에서 직접 Rails 애플리케이션을 실행하고 상호작용할 수 있도록 설계되었습니다.

이 대화형 튜토리얼을 구현하기 위한 핵심 기술 요소는 다음과 같습니다. 첫째, WebAssembly (Wasm)는 고수준 언어 컴파일을 위한 타겟으로, Ruby 인터프리터를 Wasm 바이너리로 변환하여 웹 환경에서 실행 가능하게 합니다. 둘째, WASI (WebAssembly System Interface)는 Wasm 모듈이 파일 시스템이나 네트워킹과 같은 호스트 자원에 접근할 수 있도록 하는 인터페이스를 제공하여, Wasm의 기본 보안 샌드박스 제약을 극복합니다. 셋째, Ruby WASM 프로젝트는 Ruby 런타임을 WebAssembly 환경에 맞춰 패키징하고, 필요한 Gem들을 번들링하며, Wasm 환경과 호환되지 않는 Ruby 기능을 패치하거나 비활성화합니다. 넷째, Wasmify Rails는 Rails 애플리케이션을 WebAssembly 환경에 맞게 패키징하고, 필요한 설정과 패치를 적용하여 브라우저에서 올바르게 동작하도록 합니다.

이 외에도 브라우저 내에서 Rails 서버와 데이터베이스를 구동하는 기술적 도전 과제와 해결책이 제시됩니다. PGlite와 같은 WebAssembly로 컴파일된 데이터베이스 엔진을 활용하여 브라우저 내에서 데이터베이스를 실행하며, Web Containers 기술을 통해 브라우저 탭 내에서 미니 운영체제처럼 작동하는 개발 환경을 구축합니다. Web Containers는 NodeJS 런타임, 가상 파일 시스템, 네트워크 프록시 (Service Worker) 등을 제공하여 Rails 애플리케이션이 브라우저에서 완벽하게 작동하도록 지원합니다. 특히, ExpressJS 서버와 Rails 서버 간의 통신(Bridge) 구현 방식과 Rails 콘솔(Console)의 브라우저 내 구현 방식 등 구체적인 기술적 세부 사항들이 설명됩니다.

사용자 인터페이스는 StackBlitz의 오픈소스 프레임워크인 Tutorial Kit을 활용하여 구축되었으며, 이는 Web Containers를 기반으로 하여 Rails on Wasm 설정을 쉽게 통합할 수 있게 합니다. 이 모든 요소들이 결합되어 사용자는 브라우저에서 라이브 터미널과 실행 중인 Rails 애플리케이션 미리보기를 통해 대화형 학습 경험을 할 수 있습니다.

결론

이 프로젝트의 궁극적인 목표는 Rails 개발의 진입 장벽을 낮춰 더 많은 신규 개발자들이 Ruby on Rails 커뮤니티에 쉽게 합류할 수 있도록 하는 것입니다. 또한, Rails on Wasm 기술은 AI 코딩 에이전트(예: Bolt)와의 통합 가능성을 열어줍니다. Rails의 성숙한 생태계와 "설정보다 관례(convention over configuration)" 원칙은 AI 에이전트가 효율적이고 간결한 코드를 생성하는 데 유리하게 작용할 수 있습니다. 발표자는 미래의 Rails 커뮤니티 성장은 신규 진입자들에게 달려 있음을 강조하며, 모두가 함께 이 미래를 만들어 나가자고 독려합니다. 이 기술은 Gem 유지보수자들이 대화형 튜토리얼을 쉽게 구축할 수 있는 일반적인 도구를 제공하는 것을 다음 목표로 삼고 있습니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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