강연의 핵심 내용은 Herb v0.4.0의 출시입니다. 이 버전에는 Herb Linter와 Herb Formatter의 첫 번째 프리뷰 버전이 포함되어 있습니다. 이 새로운 도구들은 RubyKaigi에서 소개된 C로 작성된 HTML 인식 ERB 파서인 Herb Parser를 기반으로 하며, *.html.erb 파일에 현대적인 개발자 경험을 제공하는 것을 목표로 합니다. 특히, 향상된 Language Server와 Visual Studio Code 확장은 에디터 내에서 직접 린팅 및 자동 포맷팅을 지원하고, 전체 프로젝트 분석 기능과 진단을 위한 새로운 사이드바 패널을 제공하여 개발 효율성을 크게 향상시킵니다. Herb Linter는 Ruby Style Guide와 유사하게 뷰 파일에 대한 모범 사례를 안내하며, CLI 및 에디터 통합을 통해 즉각적인 피드백을 제공합니다.
더 나아가, Marco Roth는 Rails 뷰 레이어의 미래를 위한 ‘ReActionView’ 비전을 제시했습니다. Rails의 Action View는 2004년부터 ERB를 기본 템플릿 엔진으로 사용해왔으며, 지난 20년간 많은 개선이 있었지만, 공개 API는 크게 변하지 않았습니다. 기존 ERB 렌더링 엔진이 비 Ruby 코드를 단순히 문자열로 처리하여 유효하지 않은 HTML을 생성할 수 있는 한계를 지적하며, HTML 구조를 인식하여 유효한 HTML만 생성하는 ‘HTML 템플릿 언어’의 필요성을 강조했습니다. 이러한 개념은 Elixir의 HEEx(HTML + EEx)에서 영감을 받아 ‘Herb’라는 이름으로 구체화되었습니다.
ReActionView 비전은 6가지 점진적인 채택 레벨로 구성됩니다. 첫 번째 레벨은 ‘Better Feedback and Developer Experience’로, *.html.erb 파일의 구문 오류에 대해 Vite와 유사한 즉각적이고 시각적인 오류 피드백을 제공합니다. 두 번째 레벨인 ‘HTML-aware ERB rendering Engine’에서는 ERB 렌더링 엔진을 HTML 구조를 인식하는 엔진으로 전환하여, 컴파일 시 유효하지 않은 HTML 생성을 방지하고 명확한 오류 메시지를 제공합니다. 세 번째 레벨 ‘Action View Optimizations’는 HTML+ERB 파일의 구조적 인식을 활용하여 템플릿 컴파일 시 저수준 최적화를 가능하게 합니다. 네 번째 레벨 ‘Reactive ERB Templates’는 템플릿의 변경 사항을 감지하여 필요한 부분만 효율적으로 재렌더링하는 기능을 포함하며, 이는 Phoenix LiveView HEEx와 유사합니다. 새로운 *.html.herb 파일 확장자를 통해 옵트인 방식으로 이 기능을 활성화하고, HTML5 유효성, 접근성, XSS 검사 등 엄격한 규칙을 적용할 수 있습니다. 다섯 번째 레벨 ‘Universal client-side Templates’에서는 특정 HTML+ERB 템플릿/부분을 서버와 클라이언트 양쪽에서 렌더링할 수 있는 ‘ERB 클라이언트 컴포넌트’ 개념을 탐구합니다. 마지막 여섯 번째 레벨 ‘External Components’는 React, Vue, Svelte 등 외부 UI 컴포넌트를 *.html.herb 템플릿 내에 직접 마운트하여 JavaScript 생태계의 풍부한 컴포넌트를 Rails 뷰 레이어에서 활용할 수 있는 유연성을 제공합니다.
현재의 Herb 도구들(린터, 포매터)은 *.html.erb 파일 작업을 더 안전하고 쉽게 만들지만, 이는 미래의 ReActionView를 위한 중요한 빌딩 블록입니다. 이 로드맵은 점진적이고 비파괴적인 방식으로 Rails에 통합될 수 있도록 설계되었습니다. Marco Roth는 Herb 파서 개선을 위한 커뮤니티의 기여를 독려하며, EuRuKo 2025에서 ReActionView의 첫 프로토타입 버전을 공개할 예정임을 밝혔습니다.