Firebase Remote Config API 개요

Firebase 원격 구성에는 사용자가 앱 업데이트를 다운로드하지 않아도 앱의 동작과 모양을 손쉽게 변경할 수 있는 API가 있습니다. 이 개요에서는 다음과 같은 내용을 설명합니다.

  • Remote Config API의 주요 기능
  • 원격 구성 라이브러리 및 API 아키텍처

원격 구성의 자세한 내용은 원격 구성 소개를 참조하세요.

Remote Config API의 주요 기능

Remote Config API는 다음과 같은 기능을 구현합니다.

  • 새 매개변수 값을 적용할 시점을 앱에서 제어. 매개변수 값의 변화는 앱의 동작과 모양에 영향을 주므로, API 설계에서는 백그라운드에서 값을 가져오고 캐시한 다음 앱에서 적절한 시점에 활성화할 수 있도록 하는 싱글톤 개체를 구현합니다.
  • 인앱 기본 매개변수 값. 개발자는 앱의 모든 원격 구성 매개변수에 대한 기본값을 설정합니다. 이러한 값은 기기가 연결되어 있지 않더라도 앱에서 즉시 사용할 수 있습니다. 서버에서 값을 가져오고 활성화하는 데 사용하는 메소드는 인앱 기본값을 가져올 때와 동일합니다.
  • 효율적인 값 가져오기 및 적용. 원격 구성 서비스에서 값을 가져오고 활성화하는 작업은 효율적이고 안전하며 반복이 가능합니다. 따라서 콜백을 수신 대기하거나 가져온 값을 활성화해도 안전한지 여부를 판단하는 로직을 앱에 추가할 필요가 없습니다. 사용자가 앱을 시작할 때마다, 또는 이보다 더 빈번하게 매개변수 값을 가져오는 요청을 전송하고 앞서 가져온 매개변수 값을 활성화하는 앱을 개발할 수 있습니다. 가져온 값이나 활성화된 값을 사용할 수 없으면 앱에서 인앱 기본값을 사용하며, 가져오기 요청이나 activate() 호출로 인한 성능 저하는 무시할 수 있는 수준입니다.

원격 구성 라이브러리

Remote Config API 아키텍처의 핵심은 원격 구성 라이브러리입니다. 원격 구성 라이브러리는 싱글톤 클래스(iOS의 경우 FIRRemoteConfig, Android의 경우 FirebaseRemoteConfig)를 구현합니다. 원격 구성 개체를 사용하여 다음을 수행할 수 있습니다.

  • 기본값 설정. 원격 구성 서비스에서 매개변수를 만들거나 관리하지 않아도 앱이 정상적으로 작동합니다. 필요에 따라 앱에 많은 수의 원격 구성 매개변수를 도입하고 인앱 기본값을 만들 수 있습니다. 이후에 원격 구성 서비스에서 매개변수를 만들어 앱의 매개변수 중 일부를 재정의할 수 있습니다.
  • 매개변수 값 가져오기, 저장, 관리. 원격 구성 객체에 포함된 3가지 매개변수 값 저장소는 기본 구성(인앱 기본값 저장), 활성 구성(get 메소드를 통해 앱에 제공된 값 저장), 가져온 구성(원격 구성 서버에서 가장 최근에 가져온 값 저장)입니다.
  • 가져온 구성을 활성화하여 활성 구성 업데이트. 가져온 구성을 활성화하면 가져온 구성의 매개변수 값이 활성 구성에 복사됩니다. 이를 통해 최근에 가져온 값을 앱에서 사용할 수 있습니다.

API 아키텍처

다음 다이어그램은 앱과 원격 구성의 상호작용 방법을 보여 줍니다.

다음 표에서는 앱과 원격 구성 라이브러리 간의 상호작용을 자세히 보여 줍니다.

메소드 및 속성 참고사항
원격 구성 가져오기 개체 메소드:

   iOS: remoteConfig
   Android: getInstance()

1단계: 앱에서 이러한 메소드를 호출하여 원격 구성 개체를 만들거나 영구 저장소에서 복구합니다. 개체가 새로 만들어진 경우 가져온 구성, 활성 구성 및 기본 구성은 처음부터 매개변수 값 없이 비워진 상태입니다.

참고: StrictMode를 사용하여 Android 앱을 테스트하는 경우 앱 생성 시 최초 getInstance() 호출에서는 로컬 파일을 읽습니다. StrictMode 디스크 읽기 오류를 방지하려면 UI 스레드에서 이 최초 호출이 수행되지 않아야 합니다. 이후의 모든 getInstance() 호출은 메모리에서만 읽으므로 UI 스레드에서 안전합니다. Google Play에 배포하는 애플리케이션에서는 StrictMode를 항상 해제해야 합니다.

기본 구성 설정 메소드:

   iOS: setDefaults():
   Android: setDefaultsAsync()
2단계: 앱에서 이러한 메소드를 호출하여 기본 구성의 값을 설정합니다. 앱에서 활성 구성에 아직 존재하지 않는 값을 새 원격 구성 개체로부터 가져오려고 하면 기본 구성의 값이 대신 제공됩니다.
가져오기 메소드:

   iOS:
   fetchWithCompletionHandler:,
   fetchWithExpirationDuration:completionHandler:
   Android: fetch()
앱에서 이러한 메소드를 사용하여 원격 구성 서버에 대한 호출을 시작하고 최신 매개변수 값을 획득합니다. 이 값은 가져온 구성에 저장됩니다.

참고: 가져오기 메소드는 앱의 동작이나 모양에 즉각적인 영향을 주지 않습니다.
활성화 메소드:

   iOS: activateFetched()
   Android: activate()
앱에서 가져온 구성을 활성화하여 여기에 저장된 값을 활성 구성으로 복사합니다.
Get<type> 메소드:

   iOS: configValueForKey:
   Android: getLong(), getString(), 등
앱에서 이러한 메소드를 호출하여 활성 구성에서 매개변수 값을 가져옵니다.
구성 설정 메소드:

   iOS: initWithDeveloperModeEnabled:
   Android: setConfigSettings()
맞춤 설정에 사용됩니다. 현재는 앱 개발자가 프로덕션 앱에 허용되는 것보다 빠르게 앱 데이터를 새로고침할 수 있도록 하는 설정에만 사용됩니다. 자세한 내용은 iOS 캐싱Android 캐싱을 참조하세요.
정보 메소드 및 속성:

   iOS: lastFetchStatus, allKeysWithPrefix:
   Android: getConfigSettings(), getLastFetchStatus(), getKeysByPrefix()
앱에서 이러한 메소드를 사용하여 원격 구성 개체의 정보를 가져옵니다. 앱 개발 중에 디버깅을 위해 이러한 메소드를 사용할 수 있습니다.

Remote Config API에 대한 자세한 내용은 다음을 참조하세요.

앱과 원격 구성을 통합하는 작업을 시작하려면 iOS에서 원격 구성 사용Android에서 원격 구성 사용을 참조하세요.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.