빠른 업데이트
Capgo의 실시간 업데이트 시스템은 전체 JS 번들이 아닌 변경된 파일만 전송하여 더 빠르고 효율적으로 업데이트를 제공할 수 있습니다
이는 특히 다운로드해야 하는 데이터양을 최소화하므로 느리거나 데이터 요금제가 있는 네트워크 연결을 사용하는 사용자에게 유용합니다
두 번째 이점은 앱에 이미지나 비디오와 같이 거의 변경되지 않는 큰 에셋이 있을 때, 압축된 JS 파일과 비교하여 한 번만 다운로드된다는 점입니다
차등 업데이트 작동 방식
Capgo의 차등 업데이트는 앱에 설치된 Capgo 플러그인에 의해 처리됩니다. --partial
플래그를 사용하여 앱의 새 버전을 업로드하면 Capgo는 다음과 같이 처리합니다:
- 빌드의 각 파일이 개별적으로 업로드됩니다
- 각 파일에 대한 체크섬이 생성됩니다
- 모든 파일과 해당 체크섬을 나열하는 새로운 json 매니페스트가 생성됩니다
- 이 매니페스트는 Capgo 데이터베이스에 업로드됩니다
앱을 실행하는 기기가 업데이트를 확인할 때, Capgo 플러그인은 서버로부터 새 매니페스트를 받습니다. 이 매니페스트를 현재 가지고 있는 것과 비교하여 체크섬과 파일 경로를 기반으로 어떤 파일이 변경되었는지 식별합니다
그런 다음 플러그인은 전체 JS 번들이 아닌 변경된 파일만 다운로드합니다. 이 다운로드된 파일들과 이미 가지고 있는 변경되지 않은 파일들을 결합하여 앱의 새 버전을 재구성합니다
차등 업데이트 활성화
Capgo 앱에서 차등 업데이트를 활성화하려면 새 버전을 업로드할 때 간단히 --partial
플래그를 사용하면 됩니다:
차등 업데이트 강제 적용
모든 업로드가 차등 업데이트이며 실수로 전체 번들 업로드를 방지하고 싶다면 --partial-only
플래그를 사용할 수 있습니다:
npx @capgo/cli@latest upload --partial-only
--partial-only
가 사용되면 Capgo는 개별 파일만 업로드하고 매니페스트를 생성합니다. 부분 업데이트를 지원하지 않는 기기는 업데이트를 다운로드할 수 없습니다
다음과 같은 경우에 --partial-only
를 사용하고 싶을 수 있습니다:
- 항상 차등 업데이트를 사용하고 전체 번들 업로드를 절대 허용하지 않으려는 경우
- CI/CD 파이프라인을 설정하고 모든 자동화된 업로드가 차등적으로 이루어지도록 하려는 경우
- 앱이 크고 대역폭이 제한적이어서 업로드/다운로드 크기를 최소화해야 하는 경우
--partial-only
가 설정된 상태에서 전체 번들 업로드가 필요한 경우, 단순히 --partial-only
없이 업로드 명령을 실행하면 됩니다. 이는 해당 단일 업로드에 대해 설정을 재정의하여 필요할 때 완전한 번들을 푸시할 수 있게 합니다
문제 해결
차등 업데이트가 작동하지 않는 것 같다면 (즉, 작은 변경사항에도 기기가 항상 전체 JS 번들을 다운로드하는 경우), 다음 사항을 확인하세요:
- 새 버전을 업로드할 때마다
--partial
플래그를 사용하고 있는지 --partial-only
를 사용하는 경우, 실수로--partial
플래그를 생략하지 않았는지- 기기가 최신 버전의 Capgo 플러그인을 실행하고 있는지
- 기기가 안정적인 네트워크 연결을 가지고 있고 Capgo 서버에 접근할 수 있는지
Capgo 웹앱에서 마지막 업로드의 세부 정보를 확인할 수도 있습니다:
- 웹앱으로 이동
- 앱을 클릭
- 통계 바의 번들 수를 클릭
- 마지막 번들 선택
Partial
필드 확인
계속해서 문제가 있다면 Capgo 지원팀에 연락하여 추가 지원을 받으세요. 그들은 서버 로그를 확인하여 부분 업로드가 올바르게 처리되고 있는지, 기기가 업데이트된 매니페스트를 받고 있는지 확인할 수 있습니다
이게 전부입니다! --partial
플래그는 Capgo에게 차등 업데이트에 필요한 개별 파일 업로드와 매니페스트 생성을 수행하도록 지시합니다
차등 업데이트로 전달하려는 새 버전을 업로드할 때마다 --partial
을 사용해야 한다는 점에 유의하세요. 플래그를 생략하면 Capgo는 전체 JS 번들을 단일 파일로 업로드하고, 작은 부분만 변경되었더라도 기기는 전체 번들을 다운로드하게 됩니다