본 강연은 Rails 8로의 업그레이드 중요성을 강조하며, 토론토 대중교통(TTC)의 유지보수 소홀 사례를 통해 소프트웨어 업그레이드 지연이 초래할 수 있는 문제점을 비유적으로 설명합니다. Shopify의 Jenny는 Rails 업그레이드 방법, 이점, 그리고 Shopify의 대규모 업그레이드 전략을 제시합니다.
Rails 앱 업그레이드는 테스트 확보와 최소 Ruby 버전(3.1) 충족이 선행되어야 합니다. 과정은 최신 패치 업데이트, bin/rails app:update
실행, framework defaults
구성 등을 포함합니다. 이는 보안, 버그 수정, Rails 8의 comml
, solid_queue
같은 신기능 활용, 그리고 기술 부채 방지를 위해 필수적입니다. 미루면 결국 대규모 마이그레이션과 서비스 중단으로 이어집니다.
Rails 7.2 및 8에서는 콘솔 확장 API 변경, Active Job 테스트 일관성 강화, Rails.secrets
의 credentials
로의 마이그레이션 등 주요 변경사항이 있습니다. 또한 enqueue jobs after transaction commit
과 YJIT
활성화가 기본 적용되어 애플리케이션의 안정성과 성능이 향상됩니다.
Shopify는 수백 개의 Rails 앱 관리 문제를 해결하고자, 업그레이드 캘린더로 연간 업그레이드를 의무화했습니다. rails-upgrade
Gem으로 업그레이드 단계를 자동화하고, Solid Track
애플리케이션으로 앱 버전 추적 및 자동 PR 생성을 통해 개발자의 부담을 줄였습니다. 이 전략으로 Shopify는 대부분의 앱을 최신 버전으로 유지할 수 있었습니다.
Rails 애플리케이션을 지속적으로 최신 상태로 유지하는 것은 보안 및 신뢰성 확보, 미래 비용 절감, 그리고 개발자 경험 향상을 위한 핵심 전략입니다. 첫 업그레이드는 어려울 수 있으나, 꾸준히 시스템을 개선하여 기술 부채를 쌓지 않는 것이 성공적인 Rails 앱 운영의 핵심입니다. 이는 애플리케이션을 'TTC'와 같은 문제에 직면하지 않게 하는 가장 효과적인 방법입니다.