Programming/ETC

CodePush란?

리버김 2023. 2. 24. 14:19
내가 유지보수를 책임지고 있는 서비스의 앱은 React Native로 구현되어 있는데, JS 코드만 변경되었을 경우 CodePush를 사용해 간편하게 배포를 하고 있다. 사수분이 미리 세팅을 해 놓으신 상태에서 로컬 터미널에서 appcenter에 로그인하고 명령어만 입력하면 android, ios 배포가 불과 몇 분만에 끝난다는 게 실제로 해보니 더 신기했다. 세팅을 CodePush의 원리에 대해 좀 더 알아봤다.

App Center 속 CodePush

CodePush는 Microsoft의 서비스로, Visual Studio App Center의 여러 기능 중 하나다. App Center는 애플리케이션을 빌드, 테스트, 배포할 수 있는 DevOps 클라우드 솔루션이다. 배포된 후 분석 및 진단 서비스도 이용할 수 있다.

 

CodePush란?

React Native 개발자가 모바일 앱 업데이트를 사용자의 디바이스에 직접 배포할 수 있도록 하는 App Center 클라우드 서비스다. 개발자가 업데이트를 게시할 수 있는 중앙 Repository의 역할을 한다. 앱은 제공된 클라이언트 SDK를 사용하여 업데이트를 요청할 수 있다. CodePush는 JavaScript 코드나 assets 영역에 한정해서 변화가 있을 때만 이용할 수 있고, Native 코드를 수정했을 경우에는 기존과 같이 스토어의 심사를 받고 배포해야 한다. 앱 배포를 진행해 본 적은 없어서 직접 비교는 어렵지만, ios는 이틀 이상은 무조건 소요된다는 걸 들어서 CodePush가 얼마나 편리한 지를 느낄 수 있었다.

 

세팅하기

1. App Center CLI 설치하기

CodePush는 App Center 아래에 있기 때문에 App Center CLI로 관리한다.

npm install -g appcenter-cli

 

2. CodePush-ify하기

앱에 CodePush 클라이언트 SDK를 추가하는 과정이다. iOS, Android 나누어서 배포 키를 추가하는 작업을 골자로 한다.

 

조금 번거롭기는 하지만 한 번만 해놓으면 다시 할 일은 없고, 이게 세팅의 마지막 과정이다.

https://learn.microsoft.com/ko-kr/appcenter/distribution/codepush/rn-get-started

 

React Native 클라이언트 SDK 시작 - Visual Studio App Center

React Native SDK & CodePush 시작

learn.microsoft.com

 

3. 내 앱 등록하기

CLI에 다음과 같이 앱을 Android, iOS 각각 나누어 등록해준다.

appcenter apps create -d Android-앱-이름 -o Android -p React-Native
appcenter apps create -d iOS-앱-이름 -o iOS -p React-Native

 

CodePush 과정

1. https://appcenter.ms/ 접속해 내 계정으로 로그인하기

 

2. main(master) 브랜치에 push하기 & 백도어가 있다면 수정해서 CodePush가 잘 되었는지 확인할 수 있도록 하기

 

3. (한 PC에서는 최초 1회만) 터미널에서 로그인하기

 

4. App Center 서버에 업데이트 된 내용을 게시하기

아래 코드를 터미널에 입력한다. ownerName에는 내 계정명을, MyApp에는 앞서 등록했던 앱 이름(Android, iOS 따로)을 입력한다. 이렇게 하면 staging 영역에 codepush된다. production 영역으로 promote하기 전의 임시 영역이라고 생각하면 된다.

 

중요한 것은 버전 범위 옵션을 지정하여 해당 업데이트가 스토어에 등록된 앱의 몇 번 버전에 적용되는지를 명시해주는 것이다. '-t "버전 ~ 버전"'과 같이 적용하고 싶은 모든 버전을 포함하는 범위로 지정하면 된다.

appcenter codepush release-react -a <ownerName>/Android-앱-이름 -t "버전 ~ 버전"
appcenter codepush release-react -a <ownerName>/iOS-앱-이름 -t "버전 ~ 버전"

 

5. staging 영역에서 production 영역으로 promote하기

App Center에서 각 앱의 대시보드에 들어간 후,아래와 같은 좌측 바에서 CodePush로 접속하면 된다.

 

그리고 우측 상단에서 staging 영역으로 접속된 것을 확인하고, 가장 최근의 CodePush를 클릭하고 promote 옵션을 지정한다.

 

이곳에서 '점진적 배포(사용자의 몇 퍼센트만 먼저 업데이트를 적용받는 것)'를 할 것인지 여부, codepush 한 후에 사용자가 앱을 실행하면 강제로 업데이트를 실행시킬 것인지 여부와 같은 옵션을 지정할 수 있다.

 

promote를 완료하면 production 영역으로 배포가 이루어지기 때문에, 실제 사용자들이 쓰고 있는 앱에 바로 적용되는 걸 확인할 수 있었다. 그래서 promote는 꼭 신중히 클릭해야 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고자료

아래의 공식문서에 친절하게 설명되어 있다.

https://learn.microsoft.com/ko-kr/appcenter/distribution/codepush/

 

CodePush를 사용하여 앱 라이브 업데이트 - Visual Studio App Center

버그 수정 및 콘텐츠 빠르게 추가

learn.microsoft.com

 

Unsplash&nbsp;switch_dtp_fotografie

반응형