Rails X: 미래를 위한 프레임워크 진화와 커뮤니티의 역할

Closing Keynote: Vladimir Dementyev, Rails X. San Francisco Ruby Conference 2025.

작성자
Evil Martians
발행일
2025년 12월 27일

핵심 요약

  • 1 Rails의 미래 버전(Rails X)은 개발자 경험 향상, AI 통합, 그리고 확장성에 중점을 두어 지속 가능한 성장을 목표로 해야 합니다.
  • 2 현재 Rails 사용자들이 겪는 문제점(콜백, Active Record, 프론트엔드 관리)을 커뮤니티 피드백을 통해 개선하고, 신규 사용자 유입과 스타트업 성장을 지원해야 합니다.
  • 3 Rails X는 단일 솔루션이 아닌 다양한 프론트엔드 옵션, WASM 기반 온보딩 등 유연한 생태계를 제공하며, 이는 코어 팀뿐만 아니라 커뮤니티 전체의 협력으로 구축될 것입니다.

도입

샌프란시스코 루비 컨퍼런스의 마지막 발표에서는 'Rails X' 또는 'Rails 10'이라는 가상의 미래 버전에 대한 비전을 제시합니다. 이 발표는 커뮤니티의 요청과 피드백을 수용하고, 끊임없이 변화하는 소프트웨어 엔지니어링 세계의 요구에 발맞춰 Rails가 어떻게 진화해야 할지에 대한 청사진을 그립니다. 밝고 희망찬 미래를 위한 씨앗을 심는 것이 이 기조연설의 목표이며, Rails가 단순한 도구를 넘어 미래를 구축하는 데 필수적인 요소임을 강조합니다.

Rails 진화의 핵심 동력

Rails의 미래 버전 구축은 네 가지 주요 동력을 기반으로 합니다. 과거 결정에 대한 성찰, 사용자 및 커뮤니티의 의견 경청, 경쟁자들의 동향 관찰, 그리고 미래 예측입니다. 이 네 가지 요소는 Rails가 지속적으로 관련성을 유지하고 발전하는 데 필수적입니다.

현재 Rails의 문제점 및 개선 방향 (커뮤니티 피드백 기반)

커뮤니티 피드백을 통해 현재 Rails가 직면한 몇 가지 문제점이 제기되었습니다.

1. 콜백(Callbacks)

  • 콜백은 강력하지만, 복잡한 코드베이스에서 ‘콜백 지옥(Callback Hell)’을 유발하여 관리가 어렵습니다.

  • 이를 측정하고 이해하기 위한 도구인 callback_hell 젬이 소개되었으며, 무분별한 사용보다는 합리적인 사용을 권장합니다.

2. Active Record

  • 많은 개발자가 Active Record를 강력하지만 책임감이 과도하게 부여되는 요소로 인식합니다.

  • Active Record를 데이터 전송 계층으로만 사용하거나 다른 도메인 모델링 라이브러리를 활용하는 대안이 존재함을 언급합니다.

3. 하위 프레임워크 및 생태계 부족

  • Action Mailbox, Action Text 등 일부 코어 프레임워크 기능이 모든 애플리케이션에 필요하지 않다는 비판이 있습니다.

  • Laravel이 제공하는 공식적인 스타터 킷(starter kits) 및 UI 킷(UI kits)과 같은 강력한 생태계가 Rails에는 부족하며, 이는 신규 사용자 유입에 걸림돌이 됩니다.

4. 프론트엔드 관리의 불안정성

  • Webpacker 도입 이후 Rails의 프론트엔드 관리 방식은 지속적으로 변화하며 일관성이 부족하다는 지적이 있습니다.

  • no build 방식의 한계를 지적하고, Laravel과 Phoenix Elixir에서 이미 성공적으로 사용 중인 ViteVite Rails를 대안으로 제시합니다.

  • bun_gem을 통해 Node.js 런타임을 Ruby 젬으로 번들링하여 프론트엔드 빌드 도구의 의존성 문제를 해결할 수 있는 방안을 소개합니다.

Rails의 대상 사용자 및 성장 전략

Rails의 지속 가능한 미래를 위해 두 가지 핵심 사용자 그룹에 집중해야 합니다.

1. 신규 사용자 (Zero 주변)

  • rails new 명령은 현대적인 애플리케이션 초기 설정을 충분히 지원하지 못합니다. Laravel의 인터랙티브한 new 명령과 스타터 킷은 좋은 본보기입니다.

  • Rails Bytes와 같은 커뮤니티 주도 템플릿의 인지도를 높이고, 더 나은 제너레이터(generator) 작성 방식을 제공해야 합니다.

  • UI 컴포넌트 라이브러리 부족은 Hotwire 스택의 완성도를 저해하며, 디자이너의 관점에서 구축된 공식 UI 킷의 필요성을 강조합니다.

2. 성장하는 스타트업 (1에서 2로)

  • 코드베이스 및 팀 확장성: 서비스 클래스, 도메인 모델링 개념의 도입을 통해 복잡성을 관리하고 코드베이스 유지보수성을 높여야 합니다. 모듈화(engines, packages)에 대한 명확한 가이드라인과 쉬운 설정 방안이 필요합니다.

  • 워크플로우/오케스트레이션: Active Job은 단일 단계 처리에 적합하지만, 다단계 백그라운드 작업 관리를 위한 Active Job Continuation과 같은 기능의 잠재력을 활용해야 합니다.

  • 성능 확장성: 네이티브 비동기(Async) 지원은 필수적입니다. Action Cable의 스레드 기반 아키텍처 한계를 지적하며, action_cable_next 젬을 통해 비동기 웹소켓 처리를 개선할 수 있음을 강조합니다.

미래 Rails (Rails X)의 예측

Rails X는 다음 세 가지 핵심 요소를 갖춰야 합니다.

1. 개발자 경험(Developer Experience, DX)

  • 더 나은 언어 서버(LSP)와 개발자 지원 도구를 통해 즉각적인 피드백과 마찰 없는 코드 탐색을 제공해야 합니다.

  • rubocop-rails, strict_loading_rails와 같은 도구를 기본으로 통합하여 잠재적 문제를 사전에 방지하는 ‘능동적 멘토’ 역할을 수행해야 합니다.

  • 타입 안전성(Type Safety)은 다른 언어에서 유입되는 개발자들을 위해 중요하며, AI 도구에 필요한 정보 소스를 제공할 수 있습니다.

2. AI 통합

  • Rails는 AI를 적극적으로 수용하여 AI 생성/강화 코드, 공식 Agentic 프레임워크(Laravel Agent와 유사), 코드 및 런타임 인텔리전스를 제공해야 합니다.

  • 이를 통해 에이전트의 효율성과 정확성을 높이고 개발 프로세스를 혁신할 수 있습니다.

3. 다양한 프론트엔드 옵션

  • Hotwire는 여전히 유용하지만, 미래를 위한 발전 동력에는 한계가 있습니다. Inertia.js와 같이 JavaScript를 뷰 레이어로 활용하는 방식이 점차 인기를 얻고 있습니다.

  • Reaction View, Live Components와 같은 새로운 네이티브 Rails 뷰 레이어 아이디어도 탐색되어야 합니다.

  • Rails는 단일 프론트엔드 솔루션에 집중하기보다 다양한 옵션을 제공하여 개발자들이 선택할 수 있도록 해야 합니다.

4. AI를 활용한 신규 사용자 온보딩 (Wipe Coders)

  • 코딩 경험이 없는 ‘Wipe Coders’를 위한 온보딩은 미래 Rails의 핵심입니다.

  • Ruby WASM 및 Rails WASM 실험을 통해 브라우저 내에서 Rails 애플리케이션을 직접 구축하고 배포할 수 있는 환경을 제공하여 진입 장벽을 낮출 수 있습니다.

  • AI를 활용한 코드 생성 및 수정 데모를 통해, 초보자도 쉽게 기능을 구현하고 디자인을 개선할 수 있음을 보여주었습니다.

결론

결론적으로, Rails X는 초보자와 개발자 모두에게 친화적이며, AI 네이티브 기능을 통합하고, 다양한 규모의 요구사항에 맞춰 확장 가능해야 합니다. 이는 단순히 코어 프레임워크의 업데이트를 넘어, Rails를 강력하고 안전한 기반으로 삼아 커뮤니티가 그 위에 다양한 솔루션을 구축하는 것을 의미합니다. 발표자는 Rails의 미래는 코어 팀뿐만 아니라 컨퍼런스에 참여하고 기여하는 모든 이들의 책임임을 강조합니다. 끊임없이 소프트웨어 시스템을 구축하고, 아이디어를 공유하며, 외부의 영감을 Rails 생태계로 가져와야 합니다. Rails는 단일하고 완벽한 아이디어가 아니라, 우리가 함께 만들어가는 유연하고 역동적인 '메시 퀼트(messy quilt)'임을 기억해야 합니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

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