notepad by Oxix
RemoteConfig 본문
RemoteConfig?
사용자가 앱 업데이트를 다운로드 하지 않고도 앱의 동작과 모양을 변경할 수 있는 클라우드 서비스
작동 방법
매개변수 값 가져오기 및 캐싱과 같은 중요한 작업을 처리하는 클라이언트 라이브러리가 포함되어 있으며 새 값이 활성화 되어 사용자 경험에 영향을 미치는 시기를 제어할 수 있다.
참고 사항
- 사용자가 승인해야 하는 앱 업데이트는 원격 구성을 사용하지 않아야 한다 -> 무단 업데이트는 신뢰성을 해칠 수 있다.
- 원격 구성 매개 변수에 기밀 데이터를 저장하지 않아야 한다. -> 원격 구성 설정에 저장된 값은 제 3자가 해독할 수 있다.
- 원격 구성을 사용하여 앱의 타겟 플랫폼에서 요구하는 조건을 우회하려고 시도하면 안된다. -> 앱 심사중에는 RemoteConfig 사용을 중지했다가 심사를 마치고 사용하는 경우
가능한 작업
비율 출시 메커니즘
사용자들이 새 기능을 어떻게 받아들일지 확신을 할 수 없는 경우 해당 기능을 모든 앱 사용자에게 출시하지 않고 일정 비율만 배포하여 사용자를 새 기능에 천천히 노출시키는 방법
앱의 플랫폼 및 언어별 프로모션 배너 정의
사용자 이용하고 있는 기기 및 언어에 맞춤설정 하려고 하는 서비스 이다. 이러한 사용자의 특성을 조건으로 하나의 매개변수에 다양한 값을 동적으로 지정할 수있다.
제한된 테스트 그룹에서의 새 기능 테스트
일반적으로 제한된 테스트 그룹에서 새 기능을 테스트 할 때 Google Play를 사용한다. 하지만 일반 개발 주기와 상관없이 더 빠르게 테스트하고 쉽게 사용 설정하거나 중지해야 하는 경우 RemoteConfig가 유용한 도구가 된다.
사용자 속성을 추적하는 조건을 만든 다음 RemoteConfig에서 사용자 속성을 타겟팅하고 해당 사용자에게만 새 기능을 사용할 수 있도록 설정할 수 있다.
RemoteConfig 구성 방법
1. 로드 시 가져와 활성화
앱을 처음 시작할 때 fetchAndActivate()를 호출하여 새 값을 가져와 로드가 완료되는 즉시 활성화 한다. UI 모양이 크게 변경되지 않는 변경에 적합하며 사용자가 사용하는 동안 UI가 눈에 띄게 변경될 수 있는 상황에서는 사용을 지양한다.
2. 로딩 화면 뒤에서 활성화
앱을 즉시 시작하지않고 로딩 화면을 표시하고 완료 핸들러에서 fetchAndActivate를 호출한다. 전략 1번에서 발생할 수 있는 문제를 해결할 수 있다. 하지만 해당 전략을 사용하는 경우 로딩 화면에 제한 시간을 추가하는 것이 좋다. 이용자가 기다림이 길다 생각할 수 있다.
3. 다음 시작 시 새 값 로드
이 전략은 앱 시작 시 가져온 값을 활성화한 후 새 값을 가져오며 새 구성 값을 이미 가져왔더라도 아직 활성화 하지 않았다고 가정하고 작동한다. 작업 순서는 다음과 같다.
- 시작 시 이전에 가져온 값을 즉시 활성화한다. 이전 세션에서 다운로드 한 모든 값을 적용하며 이 과정이
거의 즉각적으로 이루어진다. - 사용자가 앱과 상호작용하는 동안 가져오기 간격 기본값에 따라 비동기 호출을 시작하여 새 값을 가져온다.
- 가져오기 호출의 완료 핸들러 또는 콜백에서는 아무 작업도 하지않는다. 앱을 다운로드 한 값을 다음에 앱을 시작하여 활성화 하기 전까지 그대로 유지한
해당 전략은 사용자 대기 시간이 크게 줄어들지만 사용자가 앱을 다시 실행해야 최신 구성을 볼 수 있다. 따라서 비즈니스 및 앱 로직과 해당 고려사항 사이에 균형을 맞춰야 한다.
참고 사항
- 종료된 프로모션 및 옵션, 삭제 등과 같은 분명한 이유가 있는 로직 외에는 사용자가 UI와 상호작용하는 동안 UI 모양을 업데이트하거나 전환하면 안된다.
- 대량의 다운로드 요청을 하지 말아야 한다. 서버에서 앱을 제한할 수 있다. 발생할 위험이 적지만 개발 진행 중에는 문제가 될 수 있다. 자세한 사항은 Android 제한 안내를 확인
'Android' 카테고리의 다른 글
FCM 메시지 처리 (0) | 2022.12.22 |
---|---|
FCM Android 설정 (0) | 2022.12.21 |
FCM 유형 (0) | 2022.12.21 |
좋은아키텍처를 위해 - 복잡성 제거 (0) | 2022.12.08 |