Firebase 원격 구성 로딩 전략

Firebase Remote Config은 서버에서 새 값을 가져와 앱에서 활성화하는 방법과 시기를 원하는 대로 설정하는 기능을 제공하므로 구성을 시각적으로 변경하는 시기를 제어하여 우수한 최종 사용자 환경을 보장할 수 있습니다. fetchAndActivate()를 사용하여 애플리케이션 실행 시 새 값을 가져올 수 있으며, 실시간 Remote Config을 보완 메서드로 사용해서 Remote Config의 버전이 게시된 후 최신 파라미터 값을 자동으로 가져올 수 있습니다.

이 가이드에서는 몇 가지 로딩 전략을 살펴보고 앱에 가장 적합한 옵션을 선택하기 위해 주로 고려할 사항을 설명합니다.

전략 1: 로드 시 가져와 활성화

이 전략에서는 앱을 처음 시작할 때 fetchAndActivate()를 호출하여 Remote Config에서 새 값을 가져와 로드가 완료되는 즉시 활성화합니다. 이 간단한 방식은 UI 모양이 크게 변경되지 않는 구성 변경에 적합하지만, 사용자가 사용하는 동안 UI가 눈에 띄게 변경될 수 있는 상황에서는 사용하지 말아야 합니다.

앱이 fetchAndActivate()를 호출한 후 addOnConfigUpdateListener를 호출하여 실시간으로 매개변수 값 업데이트 리슨을 시작할 수 있습니다. 이 메서드는 매개변수 값에 대한 서버 측 업데이트 리슨을 시작하고 자동으로 가져온 후 리스너를 호출합니다. 간단한 전략으로 리스너에서 새 값을 활성화할 수 있습니다. 그러나 fetchAndActivate()에서 언급했듯이 민감한 UI의 경우 즉시 활성화하지 않는 것이 좋습니다.

전략 2: 로딩 화면 뒤에서 활성화

전략 1에서 발생할 수 있는 잠재적인 UI 문제를 해결하기 위해 로딩 화면을 사용할 수 있습니다. 앱을 즉시 시작하지 않고 로딩 화면을 표시하고 완료 핸들러에서 fetchAndActivate를 호출합니다. 그런 다음 즉시 콜백 또는 알림을 다시 사용하여 로딩 화면을 닫고 사용자가 앱과 상호작용을 시작할 수 있도록 합니다.

이 전략을 사용하는 경우 로딩 화면에 제한 시간을 추가하는 것이 좋습니다. 우수한 앱 시작 환경을 기대하는 사용자에게 원격 구성의 제한 시간 1분은 너무 길 수도 있습니다.

이 전략에서는 addOnConfigUpdateListener를 호출하여 실시간 Remote Config 업데이트를 리슨하는 것이 좋습니다. 로딩 화면이 표시될 때 리스너를 추가한 다음 Remote Config 값으로 인해 눈에 띄게 변경되지 않을 앱의 하나 이상의 지점에서 activate()를 사용합니다.

전략 3: 다음 시작 시 새 값 로드

효과적인 전략으로 새 구성 값을 로드하여 앱의 다음 시작 시 활성화하는 방법이 있습니다. 이 전략에서 앱은 시작 시 가져온 값을 활성화한 후 새 값을 가져오며 새 구성 값을 이미 가져왔더라도 아직 활성화하지 않았다고 가정하고 작동합니다. 이 전략의 작업 순서는 다음과 같습니다.

  1. 시작 시 이전에 가져온 값을 즉시 활성화합니다. 이전 세션에서 서버로부터 다운로드한 모든 값을 적용하며 이 과정이 거의 즉각적으로 이루어집니다.
  2. 사용자가 앱과 상호작용하는 동안 가져오기 간격 최솟값(기본값)에 따라 비동기 호출을 시작하여 새 값을 가져오고 실시간 구성 업데이트 리스너를 추가합니다. 실시간 리스너는 앱이 실행되는 동안 서버에 게시된 모든 값을 자동으로 가져옵니다. 실시간 업데이트는 가져오기 간격 최솟값 설정을 우회합니다.
  3. 가져오기 호출의 완료 핸들러 또는 콜백에서는 아무 작업도 하지 않습니다. 앱은 다운로드한 값을 다음에 앱을 시작하여 활성화할 때까지 그대로 유지합니다.

이 전략에서는 사용자 대기 시간이 크게 줄어들지만 앱 수명 주기에서 필요에 따라 가져오기 및 실시간 리스너 전략을 activate() 호출과 결합하면 사용자가 앱과 상호작용할 때 Remote Config의 최신 값을 사용할 수 있습니다.

피해야 할 로딩 전략

위에서 설명한 로딩 전략의 장단점에서 알 수 있듯이 피해야 할 몇 가지 사용 패턴이 있습니다.

  • 방금 종료한 프로모션과 관련된 옵션을 삭제하는 것과 같이 분명한 앱 또는 비즈니스 이유가 있는 경우 외에는 사용자가 UI를 보거나 상호작용하는 동안 UI 모양을 업데이트하거나 전환하지 마세요.
  • 동시 가져오기 요청을 대량으로 보내지 마세요. 서버에서 앱을 제한할 수 있습니다. 업데이트를 자주 가져와야 하는 경우 실시간 Remote Config을 사용하세요. 대부분의 프로덕션 시나리오에서는 제한이 발생할 위험이 적지만 개발 과정 중에는 문제가 될 수 있습니다. 실시간 Remote Config은 이러한 사용 사례에 맞게 설계되었습니다. 제한 안내를 확인하세요.
  • Remote Config 값을 가져올 때 네트워크 연결에 의존하지 마세요. 인앱 파라미터 기본값을 설정하여 앱이 항상 예상대로 동작하도록 합니다. 다운로드한 템플릿 기본값을 사용하여 주기적으로 앱 및 Remote Config 백엔드 기본값을 동기화할 수 있습니다.

다음 단계

이 3가지 기본 전략으로 구성 값을 로드하는 모든 방법을 나타낼 수는 없습니다. 필요에 따라 훨씬 정교한 전략을 고안할 수 있습니다.

구성 값을 가져오고 활성화하는 특정 호출에 대해 자세히 알아보려면 플랫폼별 API 참조를 확인하세요.