본문 바로가기

한 번 설정하면 끝

스스로 업데이트되는 사내 앱

MDM 또는 사내 스토어를 통해 네이티브 앱을 한 번만 설치하세요. 이후 Capgo가 백그라운드에서 새로운 웹 번들을 다운로드하고, 선택 시 적용하며, 시작에 실패한 번들을 롤백하고, 각 디바이스가 실행 중인 버전을 표시합니다.

채널 맵

Capgo 콘솔에서 프라이빗 앱의 릴리스를 관리하는 채널 목록
채널 맵
예시: production, site-eu, site-us
롤아웃 규칙
한 사이트 먼저, 그다음 모든 위치
업데이트 확인
앱 실행 시, 이후 10분마다
1회 설치
서명된 native 앱을 MDM, 엔터프라이즈 앱 스토어 또는 디바이스 프로비저닝 플로우를 통해 배포하세요.
백그라운드 업데이트
앱이 열릴 때와 열려 있는 동안 10분마다 새 bundle을 확인하고 백그라운드에서 다운로드합니다.
오프라인에서도 계속 작동
연결되지 않은 디바이스는 기존 bundle을 계속 실행하며, 온라인 상태가 되면 다시 확인합니다.

업데이트 버튼을 누를 사람이 없습니다

키오스크, 공용 태블릿, 현장용 디바이스는 하루 종일 하나의 앱만 실행하는 경우가 많습니다. 사용자가 업데이트를 위해 스토어를 열지도 않고, IT 팀도 웹 수정 사항마다 매번 새 패키지를 배포하고 싶어 하지 않습니다. Capgo는 웹 레이어를 자동으로 최신 상태로 유지하며, 실행에 실패한 bundle은 롤백하고 각 디바이스에서 어떤 bundle이 실행 중인지 알려줍니다.

Native 설치
MDM으로 1회
업데이트 확인
앱 실행 중 10분마다
Bundle 실행 실패
롤백

직접 관리할 수 없는 디바이스를 위한 설계

Capgo를 웹 에셋의 릴리스 레인으로 사용하세요. 네이티브 배포를 대체하는 용도가 아닙니다. 네이티브 바이너리는 여전히 기존 엔터프라이즈 패키징 플로우를 거칩니다.

오프라인 실행
앱은 마지막으로 다운로드한 bundle로 시작합니다. 연결이 끊긴 디바이스도 앱을 계속 실행하며, 다시 연결되면 업데이트를 확인합니다.
업데이트 동작 문서
사이트별 독립 운영
각 사이트나 팀에 자체 channel을 부여하세요. 한 사이트에서 bundle을 검증한 뒤, 동일한 bundle을 다른 channel에 연결할 수 있습니다.
Channels 문서
잘못된 bundle에서 복구
새로운 bundle이 10초 이내에 notifyAppReady()를 호출하지 않으면, 디바이스는 이를 실패로 간주하고 마지막으로 정상 작동하던 bundle로 롤백합니다. 현장 작업자가 별도로 조치할 필요가 없습니다.
notifyAppReady()와 자동 롤백
디바이스별 실행 중인 번들 표시
디바이스 로그에는 체크, 다운로드, 설치, 실패가 기록됩니다. setCustomId()로 커스텀 ID를 설정해 Capgo 디바이스를 에셋 목록과 매칭하세요.
디바이스 및 커스텀 ID

작동 방식

IT 팀이 Capgo로 관리형 디바이스를 최신 상태로 유지하는 방법

앱을 한 번 설정한 다음 CI에서 릴리스하고 콘솔에서 확인하세요. 아래의 모든 명령어와 설정은 Capgo 문서에서 가져온 것입니다.

  1. 기본 채널로 앱 한 번 설치하기

    defaultChannel은 이 빌드의 모든 디바이스를 알맞은 채널(예: 사이트당 하나)에 배치합니다. autoUpdate: 'always'는 다운로드되는 즉시 새 번들을 적용하므로, 백그라운드로 전환되지 않는 키오스크 앱에 적합합니다.

    // capacitor.config.ts
    plugins: {
      CapacitorUpdater: {
        defaultChannel: 'site-eu',
        autoUpdate: 'always',
        autoSplashscreen: true,
      },
    },
    업데이트 동작 문서
  2. 시작 시 notifyAppReady() 호출하기

    이 호출은 업데이터에 새 번들이 로드되었음을 알립니다. 번들이 끝내 로드되지 않으면 디바이스는 마지막으로 정상 작동한 번들로 자동 복구됩니다.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    // once your app has loaded
    CapacitorUpdater.notifyAppReady()
    notifyAppReady()와 자동 롤백
  3. CI에서 배포하고, 우선 한 사이트부터 시작하세요

    기기가 변경된 파일만 download하도록 --delta로 upload하세요. 첫 사이트가 정상이면 동일한 bundle을 다른 채널에도 연결하세요.

    npx @capgo/cli@latest bundle upload --channel site-eu --delta
    # after the first site checks out
    npx @capgo/cli@latest channel set site-us com.example.app \
      --bundle 1.4.2
    Channels 문서
  4. 한 곳에서 기기를 모니터링하고 롤백하세요

    기기 logs를 보면 각 체크, download, 설치, 실패 내역을 확인할 수 있습니다. Observe (beta)는 bundle 버전별 launch 및 WebView 타이밍을 비교합니다. 사이트를 롤백하려면 이전 bundle을 연결하세요.

    # roll site-eu back to the previous bundle
    npx @capgo/cli@latest channel set site-eu com.example.app \
      --bundle 1.4.1
    Observe

기능의 범위와 한계

  • MDM, Apple Business Manager, Android Enterprise 또는 사내 엔터프라이즈 스토어를 통한 기업용 프라이빗 배포에 활용하세요.
  • Capgo는 JavaScript, HTML, CSS 및 에셋을 업데이트합니다. Native plugin 변경 사항은 여전히 새로 서명된 네이티브 패키지가 필요합니다.
  • 오프라인 상태의 디바이스는 다시 연결되어 승인된 다음 업데이트를 가져올 때까지 마지막으로 성공한 bundle을 계속 실행합니다.
  • 이는 일반 소비자용 App Store 우회 방식이 아닙니다. 이미 자체 배포를 수행 중인 팀을 위한 프라이빗 앱 운영 모델입니다.

Capacitor로 빌드된 앱

계정 관리 앱에는 조용한 자동 유지보수가 필요합니다

통신 및 지원 앱의 결제, 요금제, 고객 지원, 디바이스 워크플로우는 작은 개선 사항마다 사용자에게 새 바이너리 설치를 요구하지 않고도 최신 상태를 유지해야 합니다.

My Swisscom 앱 아이콘 생산성

내 Swisscom

고객 지원, 요금제, 결제 변경 사항을 조용히 배포해야 하는 계정 앱.

Google Play 설치 수
180만
스토어 평점
4.4
My Vodafone 앱 아이콘 도구

My Vodafone

사용자가 사소한 업데이트까지 직접 관리할 필요가 없는 통신사 셀프 서비스 앱.

Google Play 설치 수
1,110만
스토어 평점
4.6
Técnico Virtual – Suporte Técn 앱 아이콘 도구

가상 기술 지원 – 기술 지원

배포 부담 없이 진단 및 도움말 플로우를 유지 관리해야 하는 고객 지원 앱.

Google Play 설치 수
1,030만
스토어 평점
4.3

고객 사례

Capgo로 배포하는 팀들의 이야기

5.0/5 개발 팀 평점 9,400+ 팀 리뷰 보기

no-tone @ Webincode

Webincode 개발자

“Device ID를 특정 그룹에 추가하고 변경 사항을 해당 그룹에만 푸시할 수 있다는 점이 정말 큰 도움이 됩니다.”

Sergiu S의 사진

Sergiu S

drivolino GmbH 리드 개발자

“Capgo Capacitor Updater 플러그인 덕분에 업데이트 배포 방식이 완전히 바뀌었습니다. 며칠씩 걸리던 작업이 이제는 단 몇 분 만에 끝납니다.”

카필

NuTriQ 창립자

“App Store의 전체 리뷰 주기를 기다리지 않고 프로덕션 OTA 업데이트를 즉시 푸시할 수 있다는 점은 운영상 엄청난 이점이었습니다.”

자주 묻는 질문

관리형 기기를 운영하는 팀들의 질문

수동 업데이트가 없는 키오스크, MDM, 내부 앱용입니다.

키오스크 앱은 백그라운드로 전환되지 않습니다. 그래도 업데이트되나요?

네, autoUpdate를 'always'로 설정하면 됩니다. 앱이 실행 중일 때 플러그인이 10분마다(최소 600초, periodCheckDelay) 확인하여 다운로드된 bundle을 즉시 적용합니다. 기본값인 'atBackground'의 경우 bundle은 앱이 백그라운드로 전환될 때까지 대기합니다. 즉시 적용을 사용하려면 autoSplashscreen이 켜진 @capacitor/splash-screen가 필요합니다.

업데이트 동작 문서

업데이트가 기기의 앱을 깨뜨리면 어떻게 되나요?

새 bundle이 10초 안에 notifyAppReady()를 호출하지 않으면, 기기는 이전 정상 작동하던 bundle으로 되돌아갑니다. 채널을 이전 bundle로 되돌리거나 내장 bundle을 강제할 수도 있으며, 기기는 다음 확인 시 이를 가져옵니다.

롤백 문서

다음 업데이트 확인 전에 수정 사항을 배포할 수 있나요?

Capgo Notifications가 설정되어 있으면, channel set --send-update-notification 명령은 채널의 bundle을 변경한 후 조용한 업데이트 확인 알림을 전송합니다. 전송은 최선을 다하는 방식이며 운영체제, 네트워크, 기기 상태에 따라 달라집니다. 오프라인이거나 강제 종료된 앱에는 도달할 수 없습니다.

백그라운드 업데이트 확인

여전히 MDM이나 내부 스토어가 필요한가요?

네, 네이티브 앱에는 여전히 필요합니다. Capgo는 JavaScript, HTML, CSS, 에셋을 업데이트합니다. 새 플러그인, 네이티브 code, Capacitor 설정 변경은 MDM이나 내부 스토어를 통해 서명된 새 패키지로 배포해야 합니다.

Native Build가 필요한 경우

업데이트 트래픽을 자체 인프라에 유지할 수 있나요?

Enterprise 플랜에서는 전용, 하이브리드, 라이선스형 self-hosted 구성을 제공합니다. 오픈소스 updater로 자체 업데이트 서버를 운영할 수도 있지만, 그 경우 채널이나 통계 같은 기능은 직접 구축해야 합니다.

셀프 호스팅 업데이터 문서

사내 앱에도 이 릴리스 모델을 도입하고 싶으신가요?

기기 등록 및 연결 방식을 알려주세요. 플릿에 맞는 채널, 업데이트 타이밍, 롤백을 함께 검토해 드리겠습니다.