Rails 8.1 Beta 1 주요 기능 요약
Rails 8.1 Beta 1은 개발 생산성과 애플리케이션 관리 효율성을 크게 향상시키는 여러 주요 기능을 도입합니다.
- Active Job 연속성 (Active Job Continuations)
- 장기 실행 작업을 개별 단계로 분할하여 재시작 시 마지막 완료된 단계부터 실행을 재개할 수 있습니다.
- 특히 Kamal과 같은 배포 도구 사용 시 작업 컨테이너 종료 시간 제약(기본 30초) 내에서 유연한 작업 처리를 가능하게 합니다.
include ActiveJob::Continuable
모듈을 사용하며,step
메서드를 통해 작업을 정의합니다.
- 구조화된 이벤트 보고 (Structured Event Reporting)
- Rails 애플리케이션 내에서 구조화된 이벤트를 생성하기 위한 통합 인터페이스를 제공합니다.
Rails.event.notify
를 사용하여 이벤트를 발행하고,Rails.event.tagged
로 태그를 추가하며,Rails.event.set_context
로 전역 컨텍스트를 설정할 수 있습니다.- 구독자(subscriber)를 통해 이벤트 직렬화 및 방출 방식을 제어하여, 사람이 읽기 쉬운 로그 외에 기계가 처리하기 용이한 데이터를 생성합니다.
- 로컬 CI (Local CI)
config/ci.rb
에 정의되고bin/ci
로 실행되는 기본 CI 선언 DSL을 도입합니다.- 최신 개발 머신의 강력한 성능을 활용하여 로컬에서 대규모 테스트 스위트를 빠르고 효율적으로 실행할 수 있게 합니다.
- 클라우드 기반 CI/CD 설정의 필요성을 줄여 중소규모 애플리케이션에 비용 효율적인 대안을 제공합니다.
gh
CLI와의 통합을 통해 CI 통과 여부에 따라 PR 병합 가능 여부를 결정할 수 있습니다.
- 마크다운 렌더링 (Markdown Rendering)
- 컨트롤러에서
.md
포맷 요청에 응답하여 마크다운 콘텐츠를 직접 렌더링할 수 있는 기능을 추가합니다. render markdown: @page
와 같이 간결하게 마크다운 출력을 처리할 수 있습니다.
- 컨트롤러에서
- 명령줄 자격 증명 가져오기 (Command-line Credentials Fetching)
- Kamal과 같은 배포 도구가 암호화된 Rails 자격 증명 저장소에서 비밀 정보를 쉽게 가져올 수 있도록 지원합니다.
- 외부 비밀 관리 도구 없이 마스터 키만으로 보안 자격 증명에 접근할 수 있습니다.
- 사용 중단된 연관 관계 (Deprecated Associations)
- Active Record 연관 관계에
deprecated: true
옵션을 추가하여 사용 중단될 연관 관계를 표시할 수 있습니다. warn
,raise
,notify
세 가지 보고 모드를 지원하며, 해당 연관 관계 사용 시 경고 또는 오류를 발생시켜 점진적인 코드 리팩토링을 돕습니다.
- Active Record 연관 관계에