자주 묻는 질문
Unveily 도입을 검토하는 팀이 가장 많이 묻는 질문을 정리했습니다.
Unveily란 무엇이며, 웹앱을 어떻게 네이티브 앱으로 전환하나요?
- Unveily는 기존 웹앱을 코드 재작성 없이 네이티브 Android/iOS 앱으로 만드는 HybridApp SDK입니다. 웹 콘텐츠를 네이티브 앱 안에서 실행하면서, 카메라·푸시 알림·생체 인증 같은 네이티브 기능을 웹에서 window.unveilyBridge 하나의 JavaScript API로 호출할 수 있습니다. 결과물은 실제 네이티브 앱으로 App Store와 Google Play에 출시합니다.
코드를 다시 작성해야 하나요?
- 아니요. 기존 웹앱을 그대로 사용합니다. WebView가 로드할 URL을 자사 도메인으로 바꾸고 라이선스 키와 Firebase 설정만 넣으면 됩니다. 네이티브 기능이 필요할 때만 웹 코드에서 unveilyBridge 호출을 추가하면 됩니다.
iOS와 Android를 모두 지원하나요?
- 예. Android(7.0 / API 24 이상)와 iOS를 동일한 기능으로 지원합니다. Android는 Android Studio·Gradle로, iOS는 Xcode로 빌드하며, 같은 웹앱이 양쪽 플랫폼에서 동일하게 동작합니다.
어떤 네이티브 기능을 사용할 수 있나요?
- 카메라·갤러리, 푸시 알림, GPS 위치, 생체 인증(Face ID·지문), QR/바코드 스캔, 소셜 로그인(구글·애플·카카오·네이버·라인·메타), 인앱 결제, 오프라인 캐시, 보안 저장소, 딥링크, 접근성 패널(TTS/STT)을 제공합니다. 사용 가능한 기능 범위는 구독 플랜에 따라 달라집니다.
IAP(인앱 결제)란 무엇인가요?
- IAP(In-App Purchase, 인앱 결제)는 앱 안에서 디지털 상품이나 구독을 판매하는 스토어 결제 방식입니다. Android는 Google Play Billing, iOS는 StoreKit 2를 사용합니다. Unveily Pro 플랜의 SDK가 이 결제 흐름을 처리하며, 별도의 IAP API 상품은 구매 영수증을 서버에서 검증해 위조·변조된 결제를 걸러냅니다.
WebView 앱인데 App Store와 Google Play 심사를 통과하나요?
- 예, 통과할 수 있습니다. WebView 앱은 '웹사이트를 감싸기만 한 앱'으로 거절되기 쉽지만, Unveily는 네이티브 기능이 빌드 시점에 고정되며 이를 심사 노트에 명시하면 승인됩니다. 사용하는 네이티브 기능 목록과 config.json을 심사에 제출하는 구체적 요령을 문서의 '앱 심사 팁'에서 제공합니다.
플랜과 가격은 어떻게 되며, 플랜 간 차이는 무엇인가요?
- 월 기준 IAP API $49, Basic $69, Standard $119, Pro $199이며 연간 결제 시 약 20% 할인됩니다(앱 1개당 구독). Basic은 QR·푸시·카메라·위치 등 기본 기능, Standard는 생체 인증과 추가 소셜 로그인, Pro는 인앱 결제와 메타 로그인까지 포함합니다.
IAP API 상품은 SDK 플랜과 무엇이 다른가요?
- SDK 플랜(Basic·Standard·Pro)은 웹앱을 네이티브 앱으로 만드는 SDK입니다. IAP API는 SDK 없이, 서버에서 구글·애플 인앱 결제 영수증을 검증만 하는 독립 API입니다. 이미 앱이 있고 결제 검증만 필요하면 IAP API를, 웹앱을 앱으로 전환하려면 SDK를 선택하면 되며 둘은 서로 독립적으로 구독합니다.
라이선스와 보안은 어떻게 동작하나요?
- 라이선스 키는 HMAC으로 서명되어 서버에서 검증되며, 앱 실행 시 자동으로 확인되어 유효하지 않으면 앱이 실행되지 않습니다. SSL 인증서 피닝, 앱 무결성 검증(Play Integrity·App Attest), 루팅/탈옥 감지, 하드웨어 암호화 저장이 SDK 내부에서 자동 적용되어, 개발자가 별도의 보안 코드를 작성할 필요가 없습니다.
매년 iOS와 Android가 바뀌는데, 대응이 늦으면 우리 앱이 멈추거나 스토어에서 내려가지 않나요?
- Unveily는 WebView 하이브리드 구조라, 앱의 대부분을 차지하는 웹 콘텐츠는 OS 버전 변화에 영향을 받지 않습니다. OS 정책·권한 변화의 영향을 받는 것은 얇은 네이티브 브리지 층뿐이며, 이 부분은 Unveily가 중앙에서 대응해 전체 고객에게 배포합니다. 매월 OS·정책 변화 점검과 보안 검사를 정기적으로 수행하며, Google Play의 target API level 상향 데드라인도 상시 추적해 업데이트가 거부되지 않도록 유지합니다.
소스가 공개되지 않은 SDK인데, 나중에 종속되거나 다른 방식으로 옮기기 어렵지 않나요?
- 고객의 앱은 고객이 소유한 웹앱이며, Unveily는 그 웹앱을 네이티브로 감싸는 층입니다. 따라서 Unveily를 떠나더라도 앱을 처음부터 다시 만들 필요가 없고, 같은 웹앱을 다시 감싸기만 하면 됩니다. 보호되는 것은 핵심 브리지 바이너리 하나뿐이며, 메인 액티비티·설정·메뉴·추가 네이티브 모듈 등 셸 층은 고객이 직접 수정하고 확장합니다. 네이티브 기능은 문서로 공개된 window.unveilyBridge 표준 API로만 호출하므로 독자 포맷에 묶이지 않습니다.
Unveily는 Kotlin·Swift 같은 네이티브 언어 대신 JavaScript 자체 프레임워크를 쓰는 건가요?
- 아니요. Unveily는 네이티브 Android(Kotlin)·iOS(Swift) SDK입니다. 앱은 Android Studio와 Xcode로 빌드하며, 메인 액티비티를 비롯한 셸은 네이티브 코드로 되어 있고 고객이 직접 수정할 수 있습니다. JavaScript 브리지(window.unveilyBridge)는 네이티브 기능을 웹에서 쉽게 호출하도록 얹은 편의 계층일 뿐, 네이티브를 대체하는 자체 런타임이 아닙니다. 필요하면 Kotlin·Swift로 네이티브 모듈을 직접 추가해 확장할 수 있으므로, 특정 언어나 독자 런타임에 종속되지 않습니다.
설정부터 실제 출시까지 어떻게 진행하나요?
- ① 대시보드에서 SDK를 다운로드하고 ② WebView URL·라이선스·Firebase를 설정한 뒤 ③ 릴리즈 빌드(Android AAB / iOS Archive)를 만들고 ④ 개발자 계정·개인정보처리방침·스토어 등록정보를 준비해 스토어에 제출·심사하면 됩니다. 각 단계는 문서에 초보자도 따라올 수 있게 단계별로 안내되어 있습니다.