이번 주 Rails 업데이트는 다양한 영역에서 중요한 개선 사항들을 포함하고 있습니다.
주요 기능 및 보안 강화
-
RemoteIp 미들웨어 링크-로컬 IP 범위 신뢰:
RemoteIp미들웨어는 이제 IPv4의169.254.0.0/16및 IPv6의fe80::/10링크-로컬 주소를 신뢰할 수 있는 프록시로 포함합니다. 이는 특정 네트워크 환경에서RemoteIp의 동작을 개선하여 정확한 클라이언트 IP 식별을 돕습니다. -
X-Forwarded-For 헤더 포트 포함 IP 처리:
X-Forwarded-For헤더에 포트 정보가 포함된 IP 주소도 올바르게 처리하도록 수정되었습니다. 이는 프록시 환경에서 IP 주소 파싱 오류를 방지하고 정확한 IP 정보를 얻는 데 기여합니다. -
has_secure_password토큰 만료 시간 설정:has_secure_password에서 사용되는 비밀번호 재설정 토큰의 만료 시간을 이제expires_in옵션을 통해 설정할 수 있게 되었습니다. 기존 15분 고정에서reset_token: { expires_in: 1.hour }와 같이 유연하게 조정 가능하여 보안 정책에 맞게 활용할 수 있습니다.
개발자 경험 및 문서화 개선
-
request.variantAPI 및 가이드 문서 추가:Action Controller에request.variantAPI가 도입되었습니다. 이를 통해 플랫폼, 브라우저 또는 기타 임의의 조건에 따라 요청을 템플릿에 매칭하여 컨텍스트별 요청 처리가 가능해집니다. 관련 문서 및 가이드도 함께 업데이트되어 개발자들이 이 기능을 쉽게 활용할 수 있도록 돕습니다. -
템플릿 주석의 별도 라인 배치:
config.action_view.annotate_rendered_view_with_filenames설정이 활성화된 경우, 렌더링된 HTML 뷰에 파일 경로 주석이 별도의 줄에 추가되어 가독성이 향상됩니다. -
Rails 초기화 가이드 문서화 PR: Rails 부팅 과정, 내부 메서드 호출, 파일 로드 순서 및 초기화 프로세스에 연결하는 방법을 다루는 새로운 초기화 가이드 문서 PR이 커뮤니티 검토를 위해 공개되었습니다. 이는 Rails의 내부 동작을 이해하는 데 큰 도움이 될 것입니다.
기타 업데이트
-
jsonGem 명시적 의존성 추가:activesupportgemspec에jsonGem이 명시적 의존성으로 추가되었습니다. 이는 Ruby에 기본 포함되어 있더라도 Gem 버전을 명확히 관리하기 위함입니다. -
Devcontainer Ruby 버전 업데이트: 개발 컨테이너의 Ruby 버전이
3.4.6에서3.4.7로 업데이트되었습니다.