실시간 원격 구성 이해


실시간 원격 구성을 사용하면 서버에 게시되는 즉시 업데이트된 매개변수 키와 값을 수신할 수 있습니다. 이렇게 하면 원격 구성 매개변수 값을 사용하여 제어되는 모든 유형의 앱 속성을 빠르게 업데이트할 수 있습니다. 실시간 원격 구성 업데이트를 통해 수행할 수 있는 작업은 다음과 같습니다.

  • 타겟팅된 사용자에게 기능을 점진적으로 출시하고 필요한 경우 긴급 롤백을 수행하여 위험을 줄입니다.
  • 사용자가 앱을 사용하는 동안 사용자 환경을 빠르게 맞춤설정하여 사용자 참여도를 높입니다. 예를 들어 특정 Google 애널리틱스 사용자 속성과 일치하는 사용자를 위해 배너를 업데이트하고 인센티브를 제공하거나 플레이어 집단에 맞게 게임 난이도를 동적으로 조정할 수 있습니다.
  • 빌드 종속 항목 감소 및 개발자 생산성 향상: 원격 구성 매개변수를 기능 플래그로 사용하여 개발 및 테스트팀에 기능을 노출하고 프로덕션의 사용자에게는 기능을 숨깁니다.

원격 구성을 사용하는 방법에 대한 자세한 내용은 원격 구성으로 수행할 수 있는 작업을 참조하세요.

이 가이드에서 다룰 내용은 다음과 같습니다.

  • 실시간 업데이트를 지원하는 클라이언트-서버 관계에 대해 자세히 알아보기
  • SDK 실시간 기능의 작동 방식 이해하기
  • 실시간 업데이트를 사용하여 앱 구성을 최신 상태로 유지하는 방법 알아보기

실시간 클라이언트-서버 연결

앱에 실시간 원격 구성을 구현할 때는 원격 구성 백엔드에 대한 HTTP 연결을 여는 실시간 리스너를 만듭니다. 요청에는 현재 기기에 캐시된 구성 버전이 포함됩니다. 실시간 원격 구성 서버는 최신 버전의 서버 측 구성을 가져와야 할 때 무효화 메시지를 사용하여 앱에 신호를 보냅니다.

최신 버전이 있는 서버는 즉시 무효화 신호를 전송합니다. 최신 버전이 없으면 연결을 열린 상태로 유지하고 최신 버전이 서버에 게시될 때까지 대기합니다. 클라이언트 SDK가 무효화 신호를 수신하면 이를 자동으로 가져온 후 리스너 연결을 열 때 등록된 리스너 콜백을 호출합니다. 이 가져오기는 SDK로 실행할 수 있는 가져오기 호출과 비슷하지만 모든 캐싱 또는 minimumFetchInterval 설정을 우회합니다. 앱이 포그라운드에 있는 동안 클라이언트-서버 연결이 유지됩니다.

실시간 원격 구성 클라이언트-서버 워크플로

클라이언트-서버 연결은 HTTP를 통해 이루어지므로 다른 라이브러리의 종속 항목은 필요하지 않습니다.

업데이트 리슨

실시간 업데이트는 원격 구성 fetch 호출을 보완합니다. 앱이 시작될 때(또는 앱의 수명 주기 동안) 가져오기를 호출하고 사용자 세션 중에 실시간 원격 구성 업데이트를 리슨하여 서버에 게시되는 즉시 최신 값을 확인하는 것이 좋습니다.

업데이트를 리슨하려면 앱에서 원격 구성 업데이트를 사용할 수 있을 때마다 호출되는 콜백을 구현하는 addOnConfigUpdateListener, 를 호출합니다. 이 호출은 백그라운드에서 원격 구성 서버의 업데이트 리슨을 시작합니다. 클라이언트-서버 관계에 대한 자세한 내용은 이전 섹션을 참조하세요.

콜백은 activate를 사용하여 업데이트된 구성 매개변수를 앱에 제공하는 데 적합한 경우가 많습니다. 실시간 원격 구성을 사용할 때 매개변수 값을 활성화하기 위한 추가 전략은 Firebase 원격 구성 로딩 전략을 참조하세요.

선택적으로 매개변수 값 활성화

addOnConfigUpdateListener, 를 호출할 때 변경사항을 기다렸다가 활성화할 수 있습니다.

를 반환합니다. 템플릿의 새 버전을 자동으로 가져왔을 때와 해당 새 버전이 앱에서 현재 활성화된 매개변수 값으로 변경되었을 때 모두 onUpdate 콜백이 호출됩니다.

이러한 콜백은 매개변수 configUpdate를 사용하여 호출됩니다. configUpdate에는 updatedKeys, 가 포함됩니다. 이는 실시간 업데이트를 시작했으며 다음을 포함하는 변경된 매개변수 키 집합입니다.

  • 추가 또는 삭제된 매개변수 키
  • 값이 변경된 매개변수 키
  • 메타데이터가 변경된 매개변수 키(예: 원격 구성 맞춤설정 정보)
  • 값 소스가 변경된 매개변수 키(예: 서버 측 값으로 업데이트하는 인앱 기본값)

앱 내 특정 뷰에서 실시간 리스너를 사용하는 경우 활성화하기 전에 해당 뷰와 관련된 매개변수가 변경되었는지 확인할 수 있습니다.

경우에 따라 가져오기(fetch 메서드를 호출할 때 또는 실시간 원격 구성에 의해 시작)가 클라이언트의 업데이트로 이어지지 않는 경우가 있습니다. 이 경우 onUpdate 메서드 또는 완료가 호출되지 않습니다.

리스너 추가 및 삭제

addOnConfigUpdateListener 는 실시간 원격 구성의 기본 진입점입니다. 앱의 수명 주기에서 이 리스너를 처음으로 호출하면 백엔드 연결이 열립니다. 이후의 호출은 동일한 연결을 재사용하여 실시간 클라이언트-서버 연결에 설명된 무효화 메시지를 다중화합니다.

호출은 remove.

리슨을 중지하려면 리스너 등록 참조를 저장하세요. 이 등록에서 리슨을 중지하려면 remove를 호출합니다. 유일하게 등록된 리스너인 경우 remove를 호출하면 서버와의 실시간 연결이 종료됩니다.

업데이트 리슨을 수동으로 중지할 수 있지만 필요하지 않은 경우가 많습니다. 실시간 원격 구성은 앱이 백그라운드로 전환될 때 업데이트 리슨을 자동으로 중지하고 앱이 포그라운드로 전환되면 다시 시작됩니다.

다음 단계

Firebase 원격 구성 시작하기를 참조하여 원격 구성을 구성하고 실시간으로 업데이트를 리슨하세요.