Subflag-Rails는 Rails 애플리케이션 내에서 기능 플래그를 관리하는 데 필요한 모든 것을 제공합니다.
작동 방식
Subflag-Rails는 Rails 프로젝트에 쉽게 통합됩니다. Gemfile에 subflag-rails를 추가한 후, rails generate subflag:install --backend=active_record 명령어로 백엔드를 설정하고 데이터베이스 마이그레이션을 실행합니다. 마지막으로 config/routes.rb에 mount Subflag::Rails::Engine => "/subflag"를 추가하면 /subflag 경로에서 기능 플래그를 관리할 수 있는 웹 기반 관리자 UI가 활성화됩니다.
유연한 값 타입 지원
이 Gem의 핵심 강점은 단순한 불리언(true/false)을 넘어 다양한 데이터 타입을 지원한다는 점입니다. subflag_value 헬퍼를 사용하여 숫자(예: max_uploads: 10), 문자열(예: welcome_message: "Hello"), 또는 복잡한 JSON 객체(예: pricing_tiers: { free: 5, pro: 50 })를 기능 플래그 값으로 설정하고 가져올 수 있습니다. 물론, 전통적인 불리언 플래그(subflag_enabled?(:new_checkout))도 완벽하게 지원합니다.
고급 사용자 타겟팅
Subflag-Rails는 특정 사용자 그룹에 따라 다른 플래그 값을 제공하는 정교한 타겟팅 기능을 제공합니다. config/initializers/subflag.rb 파일에서 Subflag::Rails.configure 블록 내 config.user_context를 정의하여 현재 사용자의 id, plan, email 등 다양한 속성을 플래그 시스템에 전달할 수 있습니다. 이를 통해 관리 UI에서 “plan이 ‘pro’인 사용자에게는 max_uploads를 100으로 설정”과 같은 세분화된 규칙을 적용할 수 있으며, 다른 사용자에게는 기본값이 적용됩니다.