Rails 주간 소식 (2025년 2월 28일)

Ignoring indexes in MySQL has never been so easy...

작성자
Ruby on Rails 소식지
발행일
2025년 02월 28일

핵심 요약

  • 1 Rails World CFP(발표 제안 요청)가 3월 11일에 시작되며, 개발자들은 새로운 기능과 개선사항을 확인할 수 있습니다.
  • 2 Rails는 Podman 지원, 새로운 인증 도우미, 오류 보고 기능 강화 등 다양한 업데이트를 통해 개발 편의성을 높였습니다.
  • 3 MySQL/MariaDB 인덱스 지원 및 SQLite3 컬럼 타입 정보 추가 등 데이터베이스 관련 개선과 여러 버그 수정이 이루어졌습니다.

도입

2025년 2월 28일에 게시된 이번 Rails 주간 소식은 지난주 짧았던 휴식 이후의 주요 업데이트와 개선 사항들을 상세히 다루고 있습니다. 본 아티클은 Ruby on Rails 프레임워크의 최신 동향을 파악하고, 개발자들이 주목해야 할 기능 추가, 버그 수정, 그리고 커뮤니티 소식을 아우르며, 프레임워크의 지속적인 발전을 명확하게 보여줍니다. 특히, Rails World CFP의 개시와 더불어 개발 환경, 인증, 오류 처리, 데이터베이스 상호작용 등 여러 핵심 영역에서의 진보를 강조하고 있습니다.

이번 주 Rails 업데이트의 주요 내용은 다음과 같습니다.

1. Rails World CFP 개시

Rails World 컨퍼런스의 CFP(Call for Papers)가 3월 11일에 시작될 예정입니다. 2025년 랜딩 페이지는 현재 구축 중이며, 발표를 계획하고 있는 개발자들은 rubyonrails.org/world/ 페이지를 주시해야 합니다.

2. 개발 환경 개선

  • Podman 지원 추가: 개발 컨테이너 사용 시 Docker에 의존할 필요 없이 Podman을 사용할 수 있도록 지침이 추가되었습니다. 이는 CI 환경에서 rails new 흐름을 테스트하는 데도 Podman이 사용되고 있음을 시사합니다.

3. 인증 및 오류 처리 강화

  • login_as(user) 테스트 헬퍼 추가: 인증 제너레이터를 사용할 때 sign_in_as(user)sign_out 테스트 헬퍼 메서드가 제공되어 테스트 작성이 더욱 용이해졌습니다.
  • ActiveSupport::ErrorReport#add_middleware 도입: ErrorReporter에 미들웨어 스택 개념이 도입되었습니다. 이 미들웨어는 보고되는 오류의 컨텍스트를 추가하거나 변경하는 데 사용되며, add_middleware를 통해 추가할 수 있습니다.
  • ActiveJob::Base#retry_on#discard_onreport 옵션 추가: Active Job 사용 시, 작업 재시도 또는 폐기 시 발생하는 오류를 ErrorReporter에 보고하도록 지정할 수 있게 되었습니다.

4. 데이터베이스 상호작용 개선

  • MySQL v8+ 및 MariaDB v10.6+ 인덱스 비활성화 지원: MySQL 및 MariaDB의 최신 버전에서 ‘invisible’ 또는 ‘ignored’ 인덱스를 활용할 수 있게 되었으며, 이는 마이그레이션을 통해 관리할 수 있습니다. 이를 통해 인덱스 관리가 더욱 유연해졌습니다.
  • SQLite3용 ActiveRecord::Result에 컬럼 타입 추가: SQLite3 어댑터를 사용할 때, 쿼리에서 column_types를 사용하여 컬럼 타입 정보를 얻을 수 있게 되었습니다.
  • 읽기 전용 역할로 비관적 잠금 시 ActiveRecord::ReadOnlyError 발생: current_preventing_writes가 활성화된 상태에서 lock!을 호출할 경우 오류를 발생시켜 시나리오의 유용성을 개선했습니다.
  • reverse_orderimplicit_order_column 존중: reverse_order가 순서를 뒤집을 때 모델의 implicit_order_column을 고려하도록 수정되었습니다.

5. 기타 중요한 개선 및 버그 수정

  • SafeBuffer의 MessagePack 직렬화 가능 타입 추가: MessagePack을 사용하여 쿠키를 직렬화할 때, SafeBuffer 타입 객체를 쿠키에 유지하려 할 때 발생하는 문제가 해결되었습니다.
  • LocalStore#read_multi_entries 수정: LocalStore 캐시 사용 시, 키에 대한 읽기 또는 exists? 확인이 의도치 않게 연속적인 fetch_multi 호출에서 nil 값을 반환하는 버그가 해결되었습니다.
  • Timezone America/Asuncion 추가: 작년에 일광 절약 시간제를 중단함에 따라 새로운 IANA 시간대가 추가되었습니다.
  • MessageEncryptorsMessageVerifiersprepend 메서드 추가: ActiveSupport::MessageEncryptorsActiveSupport::MessageVerifiers#prepend 메서드가 추가되었습니다. 이 메서드는 #rotate와 유사하게 동작하지만, 목록의 끝이 아닌 시작 부분에 추가되어 Rails.application.message_verifiers와 같이 미리 구성된 인스턴스에 대해 메시지가 생성되는 방식을 오버라이드할 수 있습니다.

이번 주에는 총 34명의 기여자가 Rails 코드베이스에 참여하여 활발한 개발이 이루어졌습니다.

결론

이번 주 Rails 업데이트는 프레임워크의 꾸준한 개선과 커뮤니티의 활발한 참여를 여실히 보여줍니다. Rails World CFP 개시와 같은 중요한 커뮤니티 소식부터 개발 환경의 유연성을 높이는 Podman 지원, 개발 편의성을 향상시키는 인증 헬퍼, 그리고 오류 처리 및 데이터베이스 상호작용의 견고함을 더하는 다양한 기능 추가 및 버그 수정에 이르기까지, Rails는 지속적으로 발전하고 있습니다. 이러한 업데이트들은 개발자들이 더욱 효율적이고 안정적으로 애플리케이션을 구축할 수 있도록 지원하며, Rails 생태계의 건강한 성장을 촉진합니다. 다음 주 업데이트까지 이러한 변화에 대한 지속적인 관심이 필요합니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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