Ruby에서 Deprecation 경고를 처리하는 두 가지 주요 메커니즘이 있습니다.
ActiveSupport::Deprecation (Rails 환경)Rails는 ActiveSupport::Deprecation을 통해 유연한 경고 관리를 제공합니다.
- 사용법: Rails 7.1 이전에는
ActiveSupport::Deprecation.warn또는 커스텀 Deprecator를 사용했으나, 7.1부터는Rails.deprecator.warn또는Rails.deprecators[:my_gem].warn으로 간소화되었습니다. - 설정:
config.active_support.deprecation을 통해:raise,:stderr,:log,:notify,:report,:silence등 다양한 방식으로 경고를 처리할 수 있습니다. - 디버그:
Rails.application.deprecators.debug = true설정 시 스택 트레이스가 포함됩니다.
Kernel.warn (비-Rails Gem)Active Support에 의존하지 않는 Gem은 Kernel.warn을 사용할 수 있습니다. 이는 Deprecation, 실험적 기능, 성능 개선 경고 등에 활용됩니다.
- 사용법:
warn("메서드 제거 예정", category: :deprecated)* 주의사항: 문서화가 미흡하며,category: :deprecated경고는 기본적으로 비활성화되어 있습니다. - 활성화:
Warning[:deprecated] = true또는RUBYOPT="-W1:deprecated"환경 변수를 통해 활성화해야 합니다.RUBYOPTS="-W2"는 모든 경고 범주를 활성화합니다.