Rails 8의 주요 특징으로는 Progressive Web Apps(PWA) 지원 강화를 위한 매니페스트 및 서비스 워커 파일 기본 포함, Action Controller에 내장된 속도 제한 기능 추가 등이 있습니다. 배포 측면에서는 Kamal이 기본 배포 도구로 포함되어 config/deploy.yml
이 자동 생성되며, 에셋 파이프라인 기본값이 Sprockets에서 Propshaft로 변경되어 효율성이 증대되었습니다. 또한, Thruster가 Rails 8의 Dockerfile에 기본 구성되어 Rails 애플리케이션의 프로덕션 배포 속도와 효율적인 실행을 지원합니다.
개발자 경험 개선을 위해 새 앱 생성 시 .devcontainer
폴더가 기본 생성되어 원격 컨테이너 개발 환경 설정이 간소화되었고, Rails 콘솔이 현재 환경을 시각적으로 표시하게 되었습니다. 기본적인 인증 시스템 시작을 위한 authentication
제너레이터가 추가되었으며, SQLite3의 전체 텍스트 검색 및 가상 테이블 지원이 강화되었습니다.
가장 주목할 만한 변화 중 하나는 Redis 의존성을 줄이기 위한 ‘Solid’ 시리즈의 도입입니다. Rails 8에서는 Solid Cache
(기본 캐싱 백엔드), Solid Queue
(기본 Active Job 백엔드), Solid Cable
(기본 Action Cable 어댑터)이 기본으로 제공됩니다. 특히 Solid Cable
은 메시지를 데이터베이스에 저장하고 폴링 방식으로 처리하여 Redis 없이도 Action Cable 기능을 사용할 수 있게 하여 배포 유연성을 크게 향상시켰습니다.
그 외에도 Rails의 오류 페이지 디자인 개선, Parameters#expect
를 통한 안전한 파라미터 처리, 헬스체크 요청 로그 침묵화, ActiveSupport::Testing::NotificationAssertions
모듈을 통한 알림 테스트 용이성 확보, 그리고 Rails 유지보수 정책 업데이트(버그 수정 1년, 보안 수정 2년) 등 다양한 개선이 이루어졌습니다.