첫 번째 주요 변경 사항은 Rails가 더 이상 새로운 애플리케이션을 생성할 때 bin/bundle
binstub을 생성하지 않는다는 점입니다. 과거에는 이 bin/bundle
binstub이 Bundler의 올바른 버전을 활성화하는 데 도움을 주었으나, 이제는 이러한 메커니즘이 Rubygem 자체에 내장되어 더 이상 필요하지 않게 되었습니다. 이는 Rails 애플리케이션의 초기 설정 과정을 간소화하고 불필요한 파일을 줄여 개발 환경을 더욱 깔끔하게 만듭니다. 개발자는 이제 Bundler 활성화에 대한 추가적인 고려 없이 프로젝트를 시작할 수 있게 되었습니다.
두 번째 변경 사항은 유효성 검사 콜백에 except_on:
옵션이 추가된 것입니다. 이 except_on:
옵션은 이전에 validates
와 같은 유효성 검사 메서드에 도입되어 특정 조건에서 유효성 검사를 건너뛸 수 있도록 하는 유연성을 제공했습니다. 이번 업데이트를 통해 before_validation
및 after_validation
콜백에도 동일한 옵션이 추가되어, 유효성 검사 로직 전후에 실행되는 콜백의 동작을 더욱 세밀하게 제어할 수 있게 되었습니다. 이는 Rails 프레임워크 전반에 걸쳐 옵션의 일관성을 유지하고, 개발자가 특정 상황에서만 콜백을 실행하거나 제외할 수 있도록 하여 코드의 재사용성과 가독성을 높이는 데 기여합니다.
세 번째이자 중요한 변경 사항은 config.yjit
설정의 확장입니다. YJIT(Yet Another Ruby JIT)는 Ruby 3.1부터 도입된 JIT(Just-In-Time) 컴파일러로, Ruby 애플리케이션의 성능을 크게 향상시킬 수 있습니다. 이번 업데이트를 통해 개발자는 config.yjit = true
를 사용하여 YJIT를 기본 설정으로 쉽게 활성화할 수 있습니다. 또한, config.yjit = { stats: true }
와 같이 사용자 정의 옵션을 통해 YJIT의 동작을 보다 세밀하게 제어할 수 있는 기능이 새롭게 지원됩니다. 이는 성능 최적화를 위한 통계 수집과 같은 고급 설정을 가능하게 합니다. 물론, config.yjit = false
를 통해 YJIT를 완전히 비활성화할 수도 있어, 개발 환경의 특성과 요구 사항에 따라 유연하게 YJIT를 관리할 수 있습니다. 이러한 유연한 YJIT 설정은 개발자가 애플리케이션의 성능을 최적화하는 데 있어 더 많은 통제권을 제공합니다.
또한, schema_format: ruby
와 같은 설정은 Rails의 스키마 관리 방식에 대한 명시적인 지정을 보여주며, 이는 데이터베이스 스키마를 Ruby 코드로 관리하는 Rails의 철학을 반영합니다. 지난 한 주 동안 30명의 기여자가 Rails 코드베이스에 참여하여 이러한 변화들을 이끌었으며, 이는 Rails 커뮤니티의 활발함과 지속적인 발전을 보여주는 증거입니다.