주요 변경 사항
-
Dependabot 업데이트 주기 조정: 신규 Rails 애플리케이션 생성 시 Dependabot 업데이트 빈도가 기존 매일에서 매주로 변경되어, 개발 초기 단계의 알림 과부하를 줄였습니다.
-
인증 보안 강화:
SessionsController#destroy
액션에Clear-Site-Data
헤더가 추가되어 로그아웃 시 브라우저 캐시를 지움으로써, ‘뒤로/앞으로 캐시’를 통한 잠재적 데이터 유출을 효과적으로 방지합니다. -
쿼리 메서드 일관성 개선:
update_all
메서드에distinct
또는 CTE(with
,with_recursive
) 사용 시 Rails 8.2부터 Deprecated 경고 및 오류를 발생시키도록 변경되어,delete_all
과의 일관성을 확보했습니다. -
exists?
쿼리 재시도 가능: 이전에는 재시도 불가능했던exists?
쿼리가 이제 재시도 가능하도록 개선되어 데이터베이스 연결 문제 발생 시 복원력을 높였습니다. -
캐싱 버그 수정:
ActiveSupport::Cache::Store#fetch
에서 만료된 캐시 항목을 가져올 때 발생하던 만료 시간 처리 오류가 수정되어 캐시의 정확성이 향상되었습니다. -
Action Text 콘텐츠 처리 개선: Action Text 콘텐츠를 일반 텍스트로 변환할 때
script
또는style
태그 내용이 포함되지 않도록 변경되어, 추가적인 sanitization 없이 렌더링될 경우 발생할 수 있는 보안 문제를 예방합니다. -
Flash 헬퍼 동작 복원:
Flash.add_flash_types
가 헬퍼를 private으로 정의하도록 하여, Rails 7.0 이전처럼 컨트롤러에서notice
및alert
액션을 정의할 수 있도록 복원되었습니다. -
모델 초기화 성능 최적화:
Model.respond_to?
호출 시 불필요한 메모리 할당을 제거하여, 모델 인스턴스화(Post.new
등) 및 기타 쿼리 작업의 성능을 향상시켰습니다. -
Active Storage 파일명 처리 유연성:
ActiveStorage::Filename
객체가 문자열 동등성(String#==
)을 지원하도록to_str
을to_s
로 위임하여 파일명 처리의 유연성을 높였습니다. -
Active Storage
analyzers
설정 유효성:config.active_storage.variant_processor = nil
설정 시 발생할 수 있던 문제를 방지하기 위해active_storage.analyzers
설정에nil
이 포함되지 않도록 보장합니다.