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: 다음 시작 시 새 값 로드
효과적인 전략으로 새 구성 값을 로드하여 앱의 다음 시작 시 활성화하는 방법이 있습니다. 이 전략에서 앱은 시작 시 가져온 값을 활성화한 후 새 값을 가져오며 새 구성 값을 이미 가져왔더라도 아직 활성화하지 않았다고 가정하고 작동합니다. 이 전략의 작업 순서는 다음과 같습니다.
- 시작 시 이전에 가져온 값을 즉시 활성화합니다. 이전 세션에서 서버로부터 다운로드한 모든 값을 적용하며 이 과정이 거의 즉각적으로 이루어집니다.
- 사용자가 앱과 상호작용하는 동안 가져오기 간격 최솟값(기본값)에 따라 비동기 호출을 시작하여 새 값을 가져오고 실시간 구성 업데이트 리스너를 추가합니다. 실시간 리스너는 앱이 실행되는 동안 서버에 게시된 모든 값을 자동으로 가져옵니다. 실시간 업데이트는 가져오기 간격 최솟값 설정을 우회합니다.
- 가져오기 호출의 완료 핸들러 또는 콜백에서는 아무 작업도 하지 않습니다. 앱은 다운로드한 값을 다음에 앱을 시작하여 활성화할 때까지 그대로 유지합니다.
이 전략에서는 사용자 대기 시간이 크게 줄어들지만 앱 수명 주기에서 필요에 따라 가져오기 및 실시간 리스너 전략을 activate()
호출과 결합하면 사용자가 앱과 상호작용할 때 Remote Config의 최신 값을 사용할 수 있습니다.
피해야 할 로딩 전략
위에서 설명한 로딩 전략의 장단점에서 알 수 있듯이 피해야 할 몇 가지 사용 패턴이 있습니다.
- 방금 종료한 프로모션과 관련된 옵션을 삭제하는 것과 같이 분명한 앱 또는 비즈니스 이유가 있는 경우 외에는 사용자가 UI를 보거나 상호작용하는 동안 UI 모양을 업데이트하거나 전환하지 마세요.
- 동시 가져오기 요청을 대량으로 보내지 마세요. 서버에서 앱을 제한할 수 있습니다. 업데이트를 자주 가져와야 하는 경우 실시간 Remote Config을 사용하세요. 대부분의 프로덕션 시나리오에서는 제한이 발생할 위험이 적지만 개발 과정 중에는 문제가 될 수 있습니다. 실시간 Remote Config은 이러한 사용 사례에 맞게 설계되었습니다. 제한 안내를 확인하세요.
- Remote Config 값을 가져올 때 네트워크 연결에 의존하지 마세요. 인앱 파라미터 기본값을 설정하여 앱이 항상 예상대로 동작하도록 합니다. 다운로드한 템플릿 기본값을 사용하여 주기적으로 앱 및 Remote Config 백엔드 기본값을 동기화할 수 있습니다.
다음 단계
이 3가지 기본 전략으로 구성 값을 로드하는 모든 방법을 나타낼 수는 없습니다. 필요에 따라 훨씬 정교한 전략을 고안할 수 있습니다.
구성 값을 가져오고 활성화하는 특정 호출에 대해 자세히 알아보려면 플랫폼별 API 참조를 확인하세요.