Hotwire 에코시스템의 미래와 비전

Marco Roth - The Future of Rails as a Full-Stack Framework powered by Hotwire - Rails World 2023 - YouTube

3줄 요약

  • Hotwire는 Turbolinks에서 진화한 'HTML over the Wire' 접근 방식으로, Rails 7에 기본 포함되어 서버 렌더링 애플리케이션 개발의 복잡성을 줄입니다.
  • 새로운 Turbo 기능, StimulusUse, Turbo Power, Turbo Boost 등 다양한 라이브러리와 향상된 툴링으로 개발자 경험과 사용자 경험을 개선합니다.
  • Hotwire.io와 커뮤니티 주도적 노력을 통해 문서화와 생태계 탐색을 개선하며, React와 같은 SPA의 장점을 통합하고 있습니다.

본 강연은 Ruby와 Rails에 대한 깊은 애정을 바탕으로, 웹 개발의 변화 속 Hotwire 에코시스템의 현재와 미래 비전을 제시합니다. 발표자는 과거 JavaScript 개발의 복잡성을 경험하며 'HTML over the Wire' 접근 방식에 매료되었음을 밝힙니다. 이 철학은 백엔드를 단일 진실의 원천으로 삼고, 불필요한 JavaScript 작성을 최소화하면서도 현대적인 웹 애플리케이션을 구축하는 Hotwire의 핵심 기반이 됩니다.

Hotwire의 역사는 2012년 Turbolinks 출시로 시작되어, Turbolinks 5, ActionCable, CableReady, Phoenix LiveView, StimulusReflex 등 다양한 기술의 영향을 받으며 발전, 2021년 Rails 7에 기본 포함되며 주류 기술로 자리매김했습니다. Hotwire의 핵심은 서버 렌더링된 HTML을 통해 백엔드를 단일 진실의 원천으로 삼아 개발 생산성을 높이는 것입니다.

현재 Hotwire 에코시스템은 여러 구성 요소의 시너지를 통해 진화 중입니다. Turbo는 뷰 전환 및 모핑 기능으로 사용자 경험을 향상시키며, StimulusUse는 컨트롤러 개발을 간소화합니다. Turbo Streams는 사용자 정의 액션을 지원하며, Turbo Power 및 Turbo Boost 프로젝트는 기존 라이브러리 기능을 Hotwire로 통합하여 확장성을 강화합니다.

사용자 경험을 위해 낙관적 UI(Optimistic UI) 패턴도 도입됩니다. ‘Formulas’는 브라우저 네이티브 API를 활용한 인라인 유효성 검사를, ‘스켈레톤(Skeletons)’은 로딩 중 시각적 피드백을 제공하여 SPA와 유사한 매끄러운 경험을 선사합니다.

개발자 경험 개선을 위한 툴링 발전도 중요합니다. Stimulus는 명확한 경고 메시지를 제공하며, Stimulus LSP는 VS Code에서 자동 완성, 경고, 빠른 수정 등 강력한 기능을 제공하여 개발 생산성을 획기적으로 높입니다.

Hotwire 에코시스템의 미래는 커뮤니티의 활발한 참여와 지속적인 개선에 달려 있습니다. 문서화 및 정보 부족을 해결하기 위해 'Hotwire.io' 웹사이트를 통한 커뮤니티 콘텐츠 및 문서 통합, 그리고 'Hotwire Weekly Newsletter'를 통한 정보 공유가 추진 중입니다. Hotwire는 Rails 외 다른 프레임워크에서도 활용될 잠재력을 지니며, 커뮤니티 주도적인 혁신을 통해 더욱 성장할 것입니다. 궁극적으로 Hotwire는 Ruby on Rails 개발자들이 더욱 생산적이고 즐겁게 작업할 수 있도록 지원하며, 서버 렌더링 애플리케이션의 새로운 기준을 제시할 것으로 기대됩니다.