콘텐츠로 이동

EMM을 통한 배포

EMM(Enterprise Mobility Manager)은 Android 태블릿 여러 대를 중앙에서 관리하는 IT 플랫폼입니다 — Intune(Microsoft), Jamf Pro, Esper, Scalefusion, Samsung Knox가 대표적인 선택지입니다. Jonot 앱이 Managed Google Play를 통해 EMM에 등록되면, EMM은 각 기기에 관리형 구성(Managed Configurations) — 새 APK 빌드 없이도 앱이 시작 시점과 IT 관리자가 업데이트할 때마다 읽어오는 키/값 설정 — 을 푸시할 수 있습니다.

구성을 푸시하려면 먼저 Jonot 앱이 EMM의 앱 카탈로그에서 이용 가능해야 합니다.

  1. Google의 Google Play에서 앱 가져오기 가이드를 따라 Jonot KioskJonot Desk를 Managed Google Play 계정에 추가하세요.
  2. EMM에서 키오스크/창구 태블릿에 사용하는 기기 프로필에 두 앱을 모두 추가하세요.
  3. EMM은 각 앱의 관리형 구성 스키마(APK 내 app_restrictions.xml에 정의됨)를 자동으로 인식합니다. 수동으로 스키마를 가져올 필요는 없습니다.

두 앱은 URL 재정의 키를 제외하고 동일한 키를 공유합니다(키오스크는 kioskUrlOverride, 창구는 deskUrlOverride를 사용). 모든 키는 선택 사항이며 별도 명시가 없는 한 기본값은 비어 있습니다.

  • pairingCode(문자열) — 최초 실행 시 기기를 자동으로 페어링합니다. 앱이 코드를 SPA에 주입하므로 직원이 기기에서 7자리 페어링 코드를 직접 입력할 필요가 없습니다. 기기별로 설정하세요 — 태블릿마다 다른 값을 지정합니다.
  • managerPin(문자열) — 탈출 경로용 PIN을 중앙에서 설정합니다. 값을 설정하면 기기의 최초 실행 PIN 설정 대화상자가 건너뛰어집니다. 현장 직원이 직접 PIN을 설정하게 하려면 비워두세요. 새 값을 푸시하는 것은 기기를 직접 만지지 않고도 잊어버린 PIN을 복구하는 권장 방법이기도 합니다.
  • allowEscapeHatch(불리언, 기본값 true) — false로 설정하면 오른쪽 위 모서리를 다섯 번 탭하는 동작 전체를 비활성화합니다. 탈출 경로가 전혀 필요 없는 트래픽이 많은 공공 키오스크에 유용합니다.
  • kioskUrlOverride / deskUrlOverride(문자열) — 고급 설정, 스테이징/LAN 전용. 내장된 SPA URL(https://kiosk.jonot.io 또는 https://desk.jonot.io)을 재정의합니다. 프로덕션에서는 비워두세요.
  • apiOriginOverride(문자열) — 고급 설정, 스테이징/LAN 전용. 내장된 API 원본(https://api.jonot.io)을 재정의합니다. 프로덕션에서는 비워두세요.

정확한 UI는 EMM마다 다르지만, 일반적인 절차는 다음과 같습니다.

  1. EMM 콘솔에서 Jonot Kiosk 또는 Jonot Desk의 관리형 앱 구성을 엽니다.
  2. EMM이 스키마를 양식으로 렌더링합니다. 설정하고 싶은 키를 입력하고, 나머지는 기본값을 사용하도록 비워두세요.
  3. 구성을 기기 그룹이나 개별 기기에 할당합니다.
  4. 구성을 푸시합니다. 기기가 온라인 상태면 즉시 수신하며, 그렇지 않으면 다음 체크인 시점에 수신합니다.
  5. 앱이 구성을 다시 읽고 적용합니다. URL과 원본(origin) 변경은 WebView를 다시 로드합니다(사실상 앱 재생성입니다) — 진행 중이던 고객 흐름은 초기화됩니다.
  • pairingCode: 해당 기기에 대해 Jonot 관리자 대시보드에서 발급한 페어링 코드.
  • managerPin: 회사의 IT PIN 정책(또는 현장에서 설정하도록 비워둠).
  • allowEscapeHatch: 대부분의 배포에서는 true로 설정하고, 현장 관리 접근이 전혀 필요 없는 경우에만 false로 설정합니다.

표준 프로덕션 배포에는 URL 재정의 키가 필요하지 않습니다. 다음의 경우에만 설정하세요.

  • 스테이징 환경을 대상으로 테스트하는 경우.
  • 로컬 LAN에 온프레미스 오프라인 호스트 배포(apps/host)가 있는 경우.

URL 재정의를 설정한다면, 기기의 ALLOW_CLEARTEXT 빌드 구성이 HTTP를 허용하는지도 확인하세요(LAN URL의 경우). 이를 위해서는 사용자 지정 빌드가 필요합니다 — Play 스토어 빌드는 항상 cleartext를 기본적으로 false로 설정합니다.

  • 자동 페어링(pairingCode): 코드는 각 페이지 로드 후 window.__JONOT_MANAGED_PAIRING_CODE로 SPA에 주입됩니다. SPA는 부팅 시 이 값을 읽어 자동으로 페어링을 완료합니다. 이미 페어링된 기기에 동일한 코드를 다시 푸시하는 것은 아무 효과가 없습니다. 이전에 자동 페어링된 기기에 다른 코드를 푸시하면 페어링이 다시 실행됩니다.
  • 관리자 PIN(managerPin): 기기의 최초 실행 PIN 설정과 동일한 키 아래, 기기의 암호화된 SharedPreferences에 저장됩니다. 다음 탈출 경로 탭 시점부터 적용됩니다. 값이 설정되어 있으면 EMM에서 푸시한 PIN이 우선하며, 매 앱 시작 또는 구성 변경 시 기기의 PIN을 덮어씁니다.
  • 탈출 경로(allowEscapeHatch): 재시작 없이 구성 변경 즉시 적용됩니다.
  • URL/원본 재정의: 구성 변경 시 적용됩니다. 앱이 새 URL로 다시 로드되며 — 진행 중이던 고객 흐름은 초기화됩니다.