2010년 Rails 3.0이 등장했을 때, RESTful 선언, Active Record의 강력한 쿼리 언어, 비간섭형 JavaScript 헬퍼, Bundler를 통한 의존성 관리 등 개발 생산성을 높이는 혁신적인 도구들이 제공되었습니다. 이는 개발자들이 효율적이고 즐겁게 작업할 수 있었던 시대로 기억됩니다.
그러나 2019년경부터 웹 개발은 React Hooks와 같은 프론트엔드 기술의 부상과 함께 프론트엔드 중심의 분리된 스택 구조로 진화했습니다. Rails 6.0의 다중 데이터베이스 지원이나 병렬 테스트와 같은 개선에도 불구하고, Webpacker와 같은 도구는 프론트엔드 빌드 프로세스에 불필요한 복잡성을 더했다는 비판을 받았습니다. 이러한 분리는 백엔드와 프론트엔드 개발 간의 단절을 심화시키고, Micro-frontends, Backend for Frontend (BFF), Backend Driven UI와 같은 개념들이 복잡성을 더욱 가중시켰습니다.
연사는 이러한 복잡성 속에서 Ruby와 Rails가 여전히 단순하고 통합된 개발 경험을 제공할 수 있음을 강조합니다. Hotwire, Action Cable, 그리고 m.u.js와 같은 현대적인 Ruby 기반의 비간섭형 JavaScript 도구들은 서버 측 렌더링과 최소한의 JavaScript를 통해 동적인 사용자 경험을 구현할 수 있게 합니다. 이는 DHH가 주창한 ‘1인 프레임워크(one-person framework)’ 개념과 일치하며, 백엔드 중심의 개발로 제어력과 확장성을 확보하는 이점을 제공합니다.
데이터베이스 측면에서도 단순화를 추구할 수 있습니다. PostgreSQL은 JSON, 전문 검색, 지리 정보 등 풍부한 내장 기능을 통해 많은 외부 시스템을 대체할 수 있는 강력한 데이터베이스로 재평가됩니다. 특히 SQLite는 단순한 개발용 데이터베이스를 넘어, Litestack(Litestream, LiteFS, Litecache, Litejob 포함)과 같은 솔루션을 통해 캐싱 및 작업 큐 기능까지 대체하며 현대 Rails 애플리케이션의 핵심 데이터베이스로 부상하고 있습니다. 이는 소규모 프로젝트부터 상당한 규모까지 단순한 아키텍처로 커버할 수 있는 가능성을 제시합니다.
마지막으로, 연사는 지속적인 업그레이드와 배포의 중요성을 강조합니다. Ruby는 매년 성능 향상 버전이 출시되며, Rails 또한 꾸준히 발전합니다. Shopify의 사례처럼 Dependabot과 같은 자동화 도구와 지속적인 배포(Continuous Deployment) 전략을 통해 대규모 프로젝트에서도 최신 버전을 유지하는 것이 가능하며, 이는 오히려 안정성을 높이고 새로운 기능을 활용하는 데 필수적입니다.