Rails의 유연한 뷰 레이어: Phlex와 ViewComponent
Rails는 전통적인 ActionView 외에 컴포넌트 기반 아키텍처를 위해 Phlex와 ViewComponent 두 가지 인기 옵션을 제공합니다.
-
Phlex: 순수 Ruby 기반 프레임워크로,
Phlex::HTML을 상속받아 Ruby 메서드 호출로 HTML을 작성합니다. 경량, 빠르고 Ruby 개발자에게 자연스러우며, Ruby와 ERB 간 컨텍스트 전환이 없어 IDE 지원 및 테스트가 용이합니다. ERB 없이 100% Phlex만으로 Rails 앱 구축이 가능합니다. -
ViewComponent: GitHub 개발, Ruby 클래스와 ERB 템플릿 조합으로 로직/HTML 분리를 유지합니다.
Phlex의 순수 Ruby 접근 방식은 개발 효율성을 높입니다.
Hotwire를 통한 JavaScript 의존성 최소화
Rails는 JS 의존성 관리의 어려움을 해결하고자 Hotwire 라이브러리와 ‘HTML-over-the-wire’ 접근 방식을 채택했습니다. 서버가 HTML 렌더링을 담당하고 Hotwire가 이를 브라우저 DOM에 패치하여, 복잡한 React 스타일보다 단순하며 개발 및 런타임 오류를 줄입니다. Hotwire Native는 웹 앱과 네이티브 모바일 앱 통합을 간소화합니다.
Rails 커뮤니티의 효율성 지향
Rails 개발자들은 최소한의 노력으로 제품 출시를 목표합니다. Bundler와 같은 효율적인 솔루션이 널리 채택되어, 개발자들이 중복된 문제 해결에 시간을 낭비하지 않도록 돕습니다.