안드로이드(모바일) 환경에서의 강제 업데이트

Mgmix

·

2021. 8. 28. 23:52

네이티브로 개발된 앱은, 업데이트를 진행하고 나서 다시 되돌리거나 수정사항을 반영하기가 쉽지 않습니다.

다시 검수를 받고 업데이트를 진행해야하기 때문이죠. 그래서 문제가 있는 경우에는 강제적인 업데이트를 필요로 하는 상황이 존재하곤 합니다.

 

이 외에도 강제 업데이트를 해야하는 경우는 여러 가지가 있을 수 있습니다.

예를 들면 백엔드 서버의 API 변경으로 인한 문제, 이미 해결되어 업데이트가 된 이슈에 대해 사용자 기기에서 업데이트가 되지 않은 고객의 문의로 인한 CS 비용 증가, 이전 버전과의 호환성 문제 등이 있습니다.

 

특정 버전의 사용을 금지하도록 강제 하거나 업데이트를 유도할 수 있다면 이러한 고민점이 해결될 수 있습니다.

 

아래의 예시를 보면, 초기 버전 1.0의 경우 APIv1 을 사용하다가 신규 기능 업데이트나 변경 사항에 대해 APIv2 가 새로 쓰이게 될 경우 앱이나 서버의 변경 과도기에서 기존의 APIv1 과 APIv2 가 병행으로 사용되는 구간이  있을 수 있습니다.

그리고 APIv2 만을 사용하는 앱의 기능 변경이 온전히 이루어진 Version 2.0 과 같은 버전이 업데이트될 수 있습니다.

 

API 변경 예시

 

이런 상황에서, 기존의 APIv1 을 이제 더 이상 사용하지 않으니 제거를 하고 싶지만 앱 업데이트를 하지 않은 일부 소수의 사용자들이 존재하여 계획대로 진행되지 않을 수 있습니다.

 

그래서 앱의 초기 화면 (Splash Screen) 등에서, 최신 앱 버전을 확인하고 이에 적절한 팝업 또는 안내 문구 등으로 사용자를 업데이트할 수 있도록 유도해야 합니다.

 

사용자의 앱 버전이 최신 버전이 아닐 경우, 강제로 팝업을 띄우고 더 진행하지 못하도록 플레이스토어로 이동시킨 후 업데이트를 시키는 방법도 있지만 이 경우는 사용자의 기기 환경에 따라 플레이스토어의 캐시가 적절히 업데이트되지 않거나 기존 캐시가 남아있다면 업데이트 문구가 뜨지 않을 수 있습니다.

 

안드로이드에서는 이런 문제를 해결하고자 In-app updates 방식을 제공하고 권장합니다.

In-app updates를 사용하면 사용자 기기에서 업데이트가 가능한지 체크하여 진행을 해주기 때문에 좀 더 유연하게 강제 업데이트를 진행하는데 도움이 됩니다.

 

제 경우는 초기 화면에서 버전 체크와 동시에 In-app updates 방식을 모두 겸하여 사용하고 있습니다.