Rails 8.1 출시: 작업 연속성, 구조화된 이벤트, 로컬 CI 등 주요 기능 소개

Rails 8.1: Job continuations, structured events, local CI

작성자
HackerNews
발행일
2025년 10월 22일

핵심 요약

  • 1 Rails 8.1은 Active Job 연속성, 구조화된 이벤트 보고, 로컬 CI 등 개발 생산성과 배포 효율을 크게 향상시키는 다양한 신규 기능을 도입했습니다.
  • 2 Active Job 연속성을 통해 장기 실행 작업을 단계별로 나누어 관리하고 중단 시 마지막 완료 지점부터 재개할 수 있게 되어 배포 안정성이 강화되었습니다.
  • 3 새로운 로컬 CI 기능은 개발 머신에서 빠르고 효율적인 테스트 실행을 가능하게 하여 클라우드 CI 의존도를 낮추고 개발 워크플로우를 최적화합니다.

도입

2025년 10월 22일, Rails 8.1이 공식 출시되었습니다. 이번 릴리스는 지난 주요 버전 이후 500명 이상의 기여자들의 노력과 2500개 이상의 커밋을 통해 이루어졌으며, Shopify와 HEY와 같은 대규모 애플리케이션에서 이미 수개월간 프로덕션 환경에서 안정적으로 운영되며 그 견고함을 입증했습니다. Rails 8.1은 개발자 생산성과 애플리케이션 성능을 한층 더 끌어올릴 다양한 혁신적인 기능을 선보입니다.

Rails 8.1의 주요 개선 사항

1. Active Job 연속성 (Active Job Continuations)

장기 실행 작업을 개별 단계로 분할하여 재시작 시 마지막 완료된 단계부터 실행을 재개할 수 있습니다. 이는 Kamal을 사용한 배포 시 작업 컨테이너 종료 시간을 효과적으로 관리할 수 있도록 돕습니다.

ruby class ProcessImportJob < ApplicationJob include ActiveJob::Continuable def perform(import_id) @import = Import.find(import_id) step :initialize do @import.initialize end step :process do |step| @import.records.find_each(start: step.cursor) do |record| record.process step.advance! from: record.id end end step :finalize end private def finalize @import.finalize end end

2. 구조화된 이벤트 보고 (Structured Event Reporting)

Rails 애플리케이션 내에서 구조화된 이벤트를 생성하기 위한 통일된 인터페이스를 제공합니다. 기존 로거보다 후처리(post-processing)에 적합하며, 태그 및 컨텍스트 추가를 지원합니다.

ruby Rails.event.notify("user.signup", user_id: 123, email: "user@example.com") Rails.event.tagged("graphql") do Rails.event.notify("user.signup", user_id: 123, email: "user@example.com") end Rails.event.set_context(request_id: "abc123", shop_id: 456)

3. 로컬 CI (Local CI)

개발 머신에서 빠르고 효율적으로 테스트 스위트를 실행할 수 있는 기본 CI 선언 DSL이 추가되었습니다. config/ci.rb에 정의되며 bin/ci로 실행됩니다. 이는 클라우드 CI 의존도를 줄이고 개발 워크플로우를 가속화합니다.

ruby CI.run do step "Setup", "bin/setup --skip-server" step "Style: Ruby", "bin/rubocop" step "Security: Gem audit", "bin/bundler-audit" step "Tests: Rails", "bin/rails test" if success? step "Signoff: All systems go. Ready for merge and deploy.", "gh signoff" else failure "Signoff: CI failed. Do not merge or deploy.", "Fix the issues and try again." end end

4. 기타 주요 기능

  • Markdown 렌더링: render markdown: @object를 통해 마크다운 응답을 쉽게 처리할 수 있습니다.

  • 명령줄 자격 증명 가져오기: Kamal이 Rails 암호화된 자격 증명 저장소에서 비밀을 가져올 수 있습니다.

  • 사용 중단된 연관 관계: Active Record 연관 관계를 deprecated: true로 표시하여 사용 보고를 활성화할 수 있습니다.

  • 레지스트리 없는 Kamal 배포: Kamal 2.8부터 기본적으로 로컬 레지스트리를 사용하여 간단한 배포를 지원합니다.

결론

Rails 8.1은 Active Job 연속성을 통한 작업 관리 개선, 구조화된 이벤트 보고를 통한 시스템 가시성 증대, 그리고 로컬 CI를 통한 개발 주기 단축 등 핵심적인 영역에서 상당한 발전을 이루었습니다. 이 외에도 Markdown 렌더링, Kamal 배포 개선, 사용 중단 연관 관계 보고 등 2500개 이상의 커밋을 통해 수많은 개선 사항과 버그 수정이 포함되어 있습니다. 이번 릴리스는 Rails 애플리케이션의 안정성과 개발자 경험을 동시에 향상시키는 중요한 이정표가 될 것입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!