이번 업데이트의 핵심은 라우트 조회 성능의 대폭적인 개선입니다. ‘Speed up GTG Simulator by reducing slices/matches’ 변경을 통해 라우팅 성능이 단순한 경우 10-20% 향상되었으며, 불필요한 중복 제거와 문자열 할당 방지를 통해 이루어졌습니다. 또한, ‘Micro-Optimize Router#find_routes’는 라우트 찾기 프로세스에서 오버헤드를 줄여 Rails 8.0 대비 2-2.5배 빠른 라우트 조회 속도를 제공합니다. ‘Simplify stdparam state to reduce retained hashes’는 stdparam_state에 저장되는 데이터 구조를 단순화하여 해시 집약적인 작업의 성능을 개선했습니다. 이러한 라우트 관련 최적화는 Rails 애플리케이션의 전반적인 반응 속도 향상에 크게 기여할 것입니다.
예외 처리 메커니즘에도 중요한 변화가 있었습니다. ‘Allow execution wrapper to handle all exceptions’ PR을 통해 실행 래퍼(execution wrapper)와 실행 미들웨어(execution middleware)가 기존의 StandardError 대신 모든 Exception을 기본적으로 처리하도록 변경되었습니다. 이는 개발자가 Rails.error.handle 블록 내에서 발생하는 광범위한 유형의 예외를 보다 효과적으로 관리할 수 있게 하여 애플리케이션의 견고성을 높입니다.
ActiveModel에서는 ‘Make Value type default to mutable’ 변경이 이루어졌습니다. 이로써 ActiveModel 타입 값은 기본적으로 가변(mutable)이 되어, 사용자 정의 타입 값이 수정될 때 적절하게 복제되도록 보장합니다. 이는 데이터 일관성 유지에 중요한 부분입니다.
PostgreSQL 어댑터 관련 개선사항으로는 ‘Pass keyword arguments to PostgreSQL Adapter Table methods’가 있습니다. 이제 PostgreSQL 어댑터의 테이블 정의 메소드는 키워드 인수를 받을 수 있게 되어, validate_constraint 및 validate_check_constraint와 같은 기능들이 향후 키워드 인수를 지원할 수 있는 기반을 마련했습니다. 이는 데이터베이스 스키마 정의의 유연성을 높여줍니다.
그 외에도 ‘Further restrict which contradicted queries need to be run’ 변경은 완전히 일치하는 쿼리만 집계를 트리거하도록 하여 불일치 또는 특정 ARel 값을 무시함으로써 불필요한 추가 쿼리를 방지합니다. 또한, ‘Allow to skip HashWithIndifferentAccess value conversion’은 직렬화된 속성에서 HashWithIndifferentAccess를 다룰 때 ActiveModel의 비효율성을 개선합니다.