테스트 내 오류 보고서 캡처
Rails 7.1부터 capture_error_reports
헬퍼가 도입되어 테스트 코드 내에서 Rails.error.report
호출을 통해 발생하는 오류 보고서를 손쉽게 포착하고 검증할 수 있게 되었습니다. 이는 개발자가 애플리케이션의 오류 처리 로직을 보다 효과적으로 테스트하고, 특정 유형의 오류 메시지나 발생 횟수를 검증하는 데 매우 유용합니다. 예를 들어, IOError
와 같은 특정 오류가 보고되었을 때 해당 오류의 메시지가 기대하는 바와 일치하는지 assert_equal
을 통해 검증하는 예시 코드가 제시되어, 테스트의 정확성과 효율성을 높일 수 있음을 보여줍니다.
JSON 렌더링 성능 개선
Rails의 JSON 렌더러는 이제 기본적으로 HTML 엔티티나 유니코드 줄 구분 기호를 이스케이프하지 않습니다. 이는 application/json
타입의 JSON 문서를 반환할 때 대부분의 경우 이러한 이스케이프가 불필요하며, 이를 생략함으로써 렌더링 성능이 크게 향상되기 때문입니다. 만약 기존의 이스케이프 동작이 필요한 경우에는 escape: true
옵션을 렌더링 시 명시하거나, config.action_controller.escape_json_responses = true
설정을 통해 전역적으로 해당 동작을 복원할 수 있습니다. 이 변경은 개발자가 성능과 보안 요구사항 사이에서 유연하게 선택할 수 있도록 지원합니다.
PostgreSQL 및 SQLite의 UPDATE
쿼리 최적화
PostgreSQL 및 SQLite 데이터베이스에서 OUTER JOIN
이 UPDATE
대상 테이블을 ON
절에서 참조하는 복잡한 UPDATE
쿼리의 경우, 기존 구현 방식은 조인 조건을 WHERE
절로 이동할 수 없어 서브쿼리를 강제로 사용해야 하는 제약이 있었습니다. 새로운 접근 방식은 업데이트 대상 테이블을 FROM
절에 주 키(primary key)를 통한 자체 조인(self-join)으로 복제하여, 이러한 시나리오를 더 적극적으로 지원합니다. 이로 인해 복잡한 UPDATE
쿼리의 성능과 효율성이 개선되어 데이터베이스 연산의 최적화에 기여합니다. 이러한 개선은 Rails가 다양한 데이터베이스 환경에서 높은 성능을 유지하려는 지속적인 노력을 반영합니다.
이러한 변경 사항들은 Rails 프레임워크의 견고성, 성능 및 개발자 경험을 지속적으로 향상시키려는 노력의 일환이며, Rails 커뮤니티의 활발한 기여를 통해 이루어지고 있습니다.