이번 주 Rails 업데이트: Postgresql 및 SQLite의 update_all JOIN 지원 및 기타 개선 사항

Support joins in update_all for PG and SQLite and more

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

핵심 요약

  • 1 Rails는 Postgresql 및 SQLite에서 `update_all` 쿼리의 JOIN 절 사용을 지원하여 데이터베이스 작업의 유연성을 높였습니다.
  • 2 인증 생성기에 비밀번호 재설정 속도 제한 기능이 추가되어 무단 접근 시도를 완화하는 데 기여합니다.
  • 3 연결 오류 시 쿼리 재시도 기능 및 다중 데이터베이스 마이그레이션 관련 버그가 수정되어 시스템 안정성이 향상되었습니다.

도입

2025년 2월 7일, Wojtek이 발표한 이번 주 Rails 코드베이스 업데이트는 중요한 기능 개선과 버그 수정을 포함합니다. 특히 Rails Foundation에 Clio가 새로운 기여 멤버로 합류하며 커뮤니티의 확장을 알렸습니다. 이번 업데이트는 데이터베이스 상호작용, 보안 및 시스템 안정성 향상에 중점을 둡니다.

가장 핵심적인 변화는 PostgreSQL 및 SQLite에서 update_all 쿼리에 JOIN 절을 사용하는 기능이 지원된다는 점입니다. 이전에는 Comment.joins(:post).update_all("title = posts.title")와 같이 JOIN 절을 포함하는 update 쿼리에서 JOIN된 테이블을 SET 절에서 참조하기 어려웠으나, 이제 LIMIT, ORDER, GROUP BY 절이 없는 한 가능해졌습니다. 이는 MySQL 어댑터에서 이미 지원되던 기능입니다.

보안 강화를 위해 인증 생성기에 비밀번호 재설정 속도 제한 기능이 추가되어, 공격자의 비밀번호 재설정 양식 악용을 완화합니다. 또한, 연결 오류 발생 시 idempotent 연관 쿼리가 자동으로 재시도되도록 statement-cached 쿼리 기능이 활성화되었습니다. 이는 sql.active_recordallow_retry 속성이 추가되어 가능해졌으며, 시스템의 견고성을 높입니다.

데이터베이스 마이그레이션 측면에서는 ActiveRecord::PendingMigration 액션을 사용하는 여러 데이터베이스 마이그레이션 문제가 수정되어 다중 DB 환경의 안정성이 개선되었습니다. 마지막으로, 기본 Dockerfile 템플릿에서 재귀적인 chown 명령을 제거하여 Docker 빌드 속도가 향상되었습니다.

결론

이번 주 Rails 업데이트는 `update_all` JOIN 지원, 보안 강화, 쿼리 재시도 기능 및 마이그레이션 문제 해결 등 다양한 개선을 통해 Rails 프레임워크의 유용성과 안정성을 높였습니다. 총 19명의 기여자가 참여하며 활발한 커뮤니티 활동을 보여주었으며, 이는 Ruby on Rails가 지속적으로 발전하는 강력한 웹 개발 프레임워크임을 다시 한번 입증합니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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