적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

초보 iOS 개발자의 일상/개발 업무

[Swift iOS] 서버 점검 중 팝업 띄우기 Firebase Remote Config

hongssup_ 2022. 8. 26. 15:02
반응형

Remote Config 란? 

앱을 업데이트 하지 않아도, 앱의 동작이나 UI를 변경할 수 있도록 도와주는 클라우드 서비스이다. 

앱을 강제로 업데이트 시켜주어야 할 때, A/B 테스트를 할 때 등 여러가지 상황에서 유용하게 사용할 수 있다. 

참고 : Firebase 원격 구성

서버 점검중 팝업 띄우기

 

Firebase 설정

Firebase 콘솔 - Remote Config 로 들어간다. 

 

1. 매개변수 추가

매개변수의 이름() 설정해주고, 원하는 데이터 유형을 설정해준다. 

1-1. 매개변수 수정

Bool 형태의 값은 다음과 같이 설정해줄 수 있다. 

String 형식의 값은 다음과 같이 설정해줄 수 있는데, 개행을 하기 위해서는 아래 버튼을 눌러 문자열 편집기를 사용할 수 있다. 

2. 변경사항 게시

변경사항 게시 버튼을 눌러 적용한다. 

** 설정해둔 MinimumFetchInterval에 따라 반영되는 시간이 조금 다를 수 있다? 

 

3. 원상복구

서버 점검의 경우, 점검이 끝나면 다시 IS_SERVER_CHECK 변수를 false로 되돌려놓아야 한다. 

 

코드 설정

 

func serverCheck() {
    let remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 900
    remoteConfig.configSettings = settings
    remoteConfig.fetchAndActivate(completionHandler: { status, error in
        if status == .error{
            return
        }
        if self.remoteConfig!.configValue(forKey: "IS_SERVER_CHECK").boolValue {
            let alert = ServerCheckAlertVC()
            alert.serverCheckMessage = self.remoteConfig.configValue(forKey: "SERVER_CHECK_MESSAGE").stringValue
            alert.modalPresentationStyle = .overFullScreen
            self.present(alert, animated: false, completion: nil)
        }
    })
}

minimumFetchInterval 개념이 좀 어려웠다.

업데이트된 매개변수 값을 remote config 백엔드에서 가져오고, 가져온 값을 앱에 적용할 시점을 제어할 때 필요한 값이 minimumFetchInterval. 말그대로 값 가져오기(fetch) 간격 최솟값은 상대적으로 낮게 설정하는 것이 좋다고 한다.

그렇지만 앱에서 단기간에 가져오기를 너무 많이 수행하면 가져오기 호출이 제한되고 어쩌고저쩌고

 

아 몰라 너무 복잡하자나 도대체 무슨 말이야 ㅡㅡ

 

아무튼 이게 맞는지 모르겠지만 내가 이해한 바로는 60분 동안 가져오기 요청 수가 5회 정도로 제한되어 있다고 가정할 때, minimumFetchInterval을 15분으로 설정하기 위해 900으로 설정해 두었다. ?

 

 

728x90
반응형