Rails View :variants의 이해와 활용
Rails의 :variants
는 render variants: [:mobile, :desktop]
와 같이 사용되어 index.html+mobile.erb
형태의 변형 템플릿을 찾습니다. 이 기능은 기기 유형을 넘어 디자인 재설계에도 유용하며, 컨트롤러에서 request.variant = :redesign
을 설정하면 +redesign
이 붙은 템플릿이 렌더링됩니다. :variants
는 레이아웃, 파셜, 메일러, ViewComponent 등 Rails의 모든 렌더링 기능에 걸쳐 지원되어, 조건문 없이 구버전과 신버전 디자인을 깔끔하게 분리하고 일관되게 적용할 수 있습니다.
재설계 병렬 운영 및 통합 전략
재설계 버전을 토글하는 데 쿠키 대신 URL 파라미터 ?redesign=true
를 활용하면, QA나 개발팀이 여러 브라우저 탭에서 구버전과 신버전 디자인을 동시에 비교하며 작업 효율을 높일 수 있습니다. Rails는 default_url_options
메서드 오버라이드를 통해 요청에 redesign
파라미터가 있을 경우 모든 내부 링크에 이를 자동으로 추가합니다.
이러한 :variants
전환 및 URL 옵션 로직은 Concern
으로 추출하여 중앙 집중화하는 것이 가장 효과적입니다. Redesign
Concern을 생성하여 before_action
으로 request.variant
를 설정하고 default_url_options
를 정의한 후, 필요한 컨트롤러에 include Redesign
로 추가합니다. 이 방식은 코드 유지보수를 용이하게 하며, 기능 플래그나 사용자별 롤아웃과 같은 고급 기능 통합에도 유연성을 제공합니다.