콘솔로 이동

Firebase 원격 구성 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: setConfigSettingsAsync()
맞춤 설정에 사용됩니다. 현재는 앱 개발자가 프로덕션 앱에 허용되는 것보다 빠르게 앱 데이터를 새로고침할 수 있도록 설정하고, 가져오기 시간 제한(SDK에서 취소하기 전까지 서버 응답을 기다리는 시간)을 설정하는 데 사용됩니다. 자세한 내용은 iOS 캐싱 및 Android의 제한을 참조하세요.
정보 메소드 및 속성:

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

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

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