제약 조건의 힘과 레일즈의 ‘오마카세’ 철학
발표자는 개인적인 경험과 레오나르도 다빈치의 인용구를 통해 ‘제약 조건이 집중과 생산성을 높인다’고 주장합니다. 콩코드 제트기, 아폴로 11호 컴퓨터 사례는 제약 하의 혁신을 보여줍니다.
DHH의 ‘Rails is Omakase’ 블로그 게시물을 인용하며, 레일즈는 Active Record, Minitest, Stimulus 등으로 개발자의 선택을 제한하여 의사결정 피로도를 줄이고 신속한 개발을 돕는 철학을 가집니다. 이는 프론트엔드 개발에도 중요한 원칙입니다.
프론트엔드 개발의 ‘오코노미’ 문제점과 레일즈의 제안
반면, ‘오코노미(Okonomi)’는 개발자가 모든 것을 선택하는 방식으로, 자바스크립트 생태계에서 과도한 의존성, 복잡한 설정, 디버깅 어려움, 느린 웹 성능 문제를 야기합니다. 레일즈 프론트엔드 스택이 Sprockets에서 여러 번들링 옵션으로 복잡해진 것은 ‘오마카세’ 철학에서 벗어나 ‘오코노미’ 방식으로 흐르고 있음을 의미합니다.
이에 대한 해결책으로, 발표자는 레일즈의 기본 프론트엔드 스택으로 다음 조합을 강력히 권장합니다.
* 패키지 매니저
: npm (안정성과 개선된 성능)
* 빌드 시스템
: Vit (ESBuild + Rollup 조합으로 빠른 개발 및 안정성)
* CSS 전처리기
: PostCSS (산업 표준, Sass/SCSS 대체 가능)
* 타입 시스템
: TypeScript (Vit과 완벽 통합)
* 프론트엔드 상호작용
: Hotwire, Stimulus, Web Components (레일즈 방식, 웹 표준 활용)
Import Maps
, Webpack
, 그리고 대부분의 대규모 자바스크립트 프레임워크
는 피할 것을 조언합니다. Alex Russell의 연구를 인용, 과도한 자바스크립트 페이로드가 웹 성능을 저해하며, 대부분의 애플리케이션은 복잡한 프레임워크 없이도 충분히 구축될 수 있음을 강조합니다.
미래를 위한 레일즈 프론트엔드
발표자는 ‘오마카세’ 철학을 레일즈 프론트엔드에 적용하기 위한 Velour
Gem과 Ruby 기반 반응형 프론트엔드 프레임워크인 Wisdom
을 소개하며, 효율적이고 즐거운 레일즈 프론트엔드 개발의 비전을 제시합니다.