David Heinemeier Hansson(DHH)의 발표는 Ruby on Rails 8의 출시와 함께 프레임워크가 추구하는 새로운 비전과 핵심 기능을 상세히 설명합니다. 이 비전은 Rails 7에서 시작된 'No Build' 철학을 계승하며, 복잡한 웹 개발 환경에서 벗어나 단순성과 개발자 자립성을 극대화하는 데 중점을 둡니다. Rails 8은 개발자가 더 적은 의존성으로 효율적으로 애플리케이션을 구축하고 배포할 수 있도록 지원하는 것을 목표로 합니다.
Rails 7의 유산과 ‘No Build’ 철학
Rails 7은 ES6, HTTP/2, Import Maps 등 최신 웹 기술의 발전을 적극적으로 수용하여, Webpack과 같은 복잡한 JavaScript 빌드 파이프라인의 필요성을 제거했습니다. 이는 번들링, 트리 쉐이킹 등 과거의 제약 조건에서 벗어나 개발자가 작성한 코드를 브라우저에 직접 제공하는 방식으로 전환했음을 의미합니다. Rails 8은 이러한 ‘No Build’ 철학을 더욱 심화하여, 개발자가 프런트엔드 복잡성에 얽매이지 않고 백엔드 개발에 집중할 수 있도록 돕습니다.
‘No PaaS’, ‘No Build’ 비전과 비용 효율성
Rails 8의 가장 두드러진 특징 중 하나는 Platform as a Service(PaaS) 및 대규모 클라우드 제공업체(예: AWS)에 대한 의존성을 줄이려는 시도입니다. DHH는 PaaS의 높은 비용과 ‘서버 공포증(server phobia)’을 조장하는 비즈니스 모델을 비판하며, 개발자가 직접 서버를 다루고 배포할 수 있도록 역량을 강화하는 것이 중요하다고 강조합니다. Heroku의 과거 혁신적인 기여를 인정하면서도, 현재의 비효율적인 비용 구조(예: Heroku와 비교하여 훨씬 저렴한 직접 하드웨어 임대 비용)를 지적하며, 오픈소스와 ‘제네릭(Generics)’을 통해 이러한 시장의 불균형을 해소해야 한다고 주장합니다.
Solid Trifecta: 단일 데이터베이스 기반 시스템
Rails 8은 Redis와 같은 외부 서비스를 대체하기 위해 Solid Cable, Solid Cache, Solid Queue라는 세 가지 핵심 기능을 도입합니다. 이들은 모두 단일 데이터베이스(특히 SQLite)를 기반으로 웹소켓 통신(Action Cable), 캐싱(Action Cache), 그리고 백그라운드 작업(Active Job)을 처리합니다. 이를 통해 시스템의 복잡성을 대폭 줄이고, 개발자가 별도의 데이터베이스 설정 없이 파일 시스템 기반으로 애플리케이션을 운영할 수 있게 합니다. 특히 Solid Cache는 대규모 캐시 저장, 암호화, 데이터 보존 정책 지원 등 프로덕션 환경에 필요한 강력한 기능을 제공하며, Redis에 필적하는 성능을 보여줍니다.
배포의 간소화: Kamal 2와 Thruster
Kamal 2는 Rails 8의 배포 전략의 핵심으로, ‘No Config’에 가까운 배포 경험을 제공합니다. 자동 SSL(Let’s Encrypt), 단일 서버에서 여러 애플리케이션 실행, Thruster를 통한 효율적인 정적 파일 서빙 및 압축 등 다양한 기능을 통합하여 개발자가 최소한의 설정만으로도 애플리케이션을 인터넷에 배포할 수 있도록 돕습니다. 시연을 통해 두 개의 Rails 애플리케이션을 몇 분 만에 단일 서버에 배포하는 과정은 Kamal 2의 강력한 효율성과 단순성을 명확하게 보여줍니다.
기타 핵심 기능 개선
- 인증 시스템: Rails 8은 Devise와 같은 블랙박스 방식 대신, 개발자가 직접 코드를 보고 이해할 수 있는 형태의 인증 코드 생성 기능을 제공하여 보안의 기본 원리를 학습하도록 유도합니다.
- Prop Shaft: Sprockets를 대체하는 새로운 자산 파이프라인으로, 현대 웹 기술에 맞춰 간소화되고 효율적인 방식으로 설계되었습니다.
향후 계획 (Rails 8.1+)
DHH는 Rails 8.1 이후에 추가될 수 있는 기능들로 Action Notifier(웹 푸시 알림), Active Record Search(데이터베이스 기반 검색), Action Text with Markdown(House MD) 등을 간략하게 소개하며, Rails 프로젝트의 지속적인 개선 의지를 표명합니다. 이는 Rails가 단순히 현재의 요구사항을 충족하는 것을 넘어, 미래의 웹 개발 환경 변화에도 적극적으로 대응하려는 노력을 보여줍니다.
Rails 8은 단순성, 자립성, 그리고 개발자 역량 강화를 핵심 가치로 삼아 웹 개발의 새로운 패러다임을 제시합니다. 'No Build', 'No PaaS' 철학을 통해 복잡한 외부 의존성을 제거하고, Solid Trifecta와 Kamal 2와 같은 혁신적인 도구들을 통합하여 개발자가 최소한의 인지 부하로 'Hello World'부터 'IPO'까지 아우르는 애플리케이션을 구축하고 배포할 수 있도록 돕습니다. 이는 Rails가 단순한 프레임워크를 넘어, 개발자가 더 즐겁고 효율적으로 작업할 수 있는 환경을 제공하려는 지속적인 노력을 반영하며, 'One-person framework'라는 궁극적인 비전에 한 걸음 더 다가선 결과입니다.