이번 주 Rails 업데이트의 핵심은 여러 방면에서의 성능 향상과 기능 개선입니다. 특히 ‘Routes lookup’에 대한 최적화가 두드러집니다. ‘GTG Simulator’의 속도를 10-20% 향상시키고, ‘Router#find_routes’는 Rails 8.0 대비 2-2.5배 빠르게 경로를 찾는 마이크로 최적화가 적용되었습니다. 또한, ‘stdparam_state’의 데이터 구조를 단순화하여 해시 집약적인 작업의 성능을 개선함으로써 전반적인 라우팅 효율성을 높였습니다.
예외 처리 측면에서는 ‘execution wrapper’ 및 ‘execution middleware’가 기본적으로 ‘StandardError’뿐만 아니라 모든 ‘Exception’을 처리하도록 변경되었습니다. 이로써 개발자는 애플리케이션 내에서 발생하는 다양한 예외 상황을 보다 포괄적으로 관리하고 대응할 수 있게 되었습니다. ActiveModel에서는 값 유형이 기본적으로 가변(mutable)으로 설정되어, 사용자 정의 유형 값이 수정될 때 적절히 복제되도록 보장함으로써 데이터 무결성과 예측 가능성을 향상시켰습니다.
데이터베이스 상호작용과 관련하여, ‘PostgreSQL Adapter Table’ 메서드는 ‘forward argument (…)’를 사용하여 키워드 인수를 받을 수 있게 되었습니다. 이는 향후 ‘validate_constraint’ 및 ‘validate_check_constraint’와 같은 기능이 키워드 인수를 수락할 수 있는 중요한 기반을 마련합니다. 더불어, 상충되는 쿼리가 집계를 트리거하는 방식을 더욱 제한하여 불필요한 추가 쿼리 실행을 방지하고 쿼리 효율성을 높였습니다. 마지막으로, ‘ActiveModel’이 직렬화된 속성에서 ‘HashWithIndifferentAccess’를 처리하는 비효율성을 개선하여 속성 변경 시의 성능을 향상시키는 업데이트도 포함되었습니다. 이번 주에는 총 18명의 기여자가 Rails 코드베이스에 참여하여 이러한 다양한 개선 사항들을 추가하며 프레임워크의 발전에 기여했습니다.