연관 관계 비활성화, 깔끔한 백트레이스, 그리고 더 스마트한 기본 설정

Deprecating Associations, Cleaner Backtraces, and Smarter Defaults

작성자
발행일
2025년 07월 04일

핵심 요약

  • 1 Rails는 더 이상 사용되지 않는 연관 관계를 표시하고 보고하는 기능을 도입하여 코드 유지보수를 개선합니다.
  • 2 백트레이스 처리 및 PostgreSQL DB 생성 옵션이 향상되었으며, `rails new` 시 브라우저 제한 적용 로직이 개선되었습니다.
  • 3 이번 주 Rails는 18명의 기여자가 참여하여 다양한 개선 사항과 버그 수정을 포함했습니다.

도입

이 문서는 2025년 7월 4일 금요일, Emmanuel Hayford가 게시한 'This Week in Rails' 업데이트를 요약합니다. 이번 주 주요 업데이트는 연관 관계 비활성화 기능, 백트레이스 처리 개선, 그리고 Rails 애플리케이션 생성 시 기본 설정의 스마트한 조정에 중점을 둡니다. 이는 Rails 개발의 효율성과 코드 관리 편의성을 높이는 데 기여합니다.

연관 관계 비활성화 (Deprecated Associations)

이제 has_many :posts, deprecated: true와 같이 연관 관계를 ‘deprecated’로 표시할 수 있습니다. 이는 해당 연관 관계가 사용될 때 보고하는 기능을 제공하며, :warn (기본값), :raise, :notify 세 가지 보고 모드를 지원합니다. 또한 백트레이스 활성화/비활성화 옵션도 제공하여 개발자가 더 이상 사용되지 않는 코드 경로를 쉽게 식별하고 관리할 수 있도록 돕습니다.

PostgreSQL 어댑터 DB 생성 로케일 옵션 추가

PostgreSQL 어댑터의 데이터베이스 생성 기능에 locale_providerlocale 옵션이 추가되어, 데이터베이스 생성 시 로케일 설정을 더욱 유연하게 제어할 수 있게 되었습니다. 이는 다국어 환경에서의 개발 편의성을 향상시킵니다.

update_all/delete_all에서 주석 전파 문제 수정

기존에는 annotate 주석이 update_all 또는 delete_all과 같은 대량 작업에는 전파되지 않는 문제가 있었으나, 이번 업데이트를 통해 이 문제가 해결되어 대량 업데이트/삭제 작업에서도 주석이 올바르게 적용됩니다.

Rails New: Importmap 사용 시에만 브라우저 제한 추가

새로운 Rails 애플리케이션을 생성할 때 기본적으로 이전 브라우저를 차단하는 동작이 있었는데, 이는 importmap-rails를 사용할 때는 유용하지만 jsbundling-rails와 같은 다른 번들링 방식을 사용할 때는 불필요했습니다. 이번 PR을 통해 이제 importmap을 사용할 경우에만 브라우저 제한이 추가되도록 변경되어, 개발자의 설정에 따라 더 합리적인 기본 동작을 제공합니다.

ActiveSupport::BacktraceCleaner#clean_locations 구현

ActiveSupport::BacktraceCleanerclean_locations라는 새로운 메서드가 추가되었습니다. 이 메서드는 Thread::Backtrace::Location 객체 배열을 정리할 수 있도록 하여, 백트레이스 정보를 더욱 깔끔하고 유용하게 처리할 수 있게 합니다. 필터 및 사일런서(silencers)는 여전히 문자열 표현을 받지만, 반환되는 배열은 Location 객체가 불변이므로 원래의 경로 속성을 유지합니다.

이번 주 Rails 코드베이스에는 총 18명의 기여자가 참여하여 다양한 기능 개선과 버그 수정에 기여했습니다.

결론

이번 'This Week in Rails' 업데이트는 Rails 프레임워크의 지속적인 개선 노력을 보여줍니다. 특히, 더 이상 사용되지 않는 연관 관계에 대한 명확한 관리 기능과 백트레이스 처리의 정교함은 개발자가 더욱 견고하고 유지보수하기 쉬운 애플리케이션을 구축하는 데 큰 도움이 될 것입니다. 또한, `rails new` 명령의 스마트한 기본값 설정과 PostgreSQL 어댑터의 로케일 옵션 추가는 개발 환경의 유연성과 편의성을 높입니다. 이러한 발전은 Rails 커뮤니티의 활발한 기여를 통해 이루어지고 있으며, 앞으로의 Rails 개발에 긍정적인 영향을 미칠 것으로 기대됩니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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