앱 MVP 블루투스 기능: 스캔·연결·필수 기기 범위를 나누는 5가지 기준
앱 MVP 블루투스 기능: 스캔·연결·필수 기기 범위를 나누는 5가지 기준
웨어러블, 센서, 출입 장치, 주변 기기를 연결하는 앱 MVP에서 “블루투스 권한을 넣는다”는 말은 너무 넓습니다. 기기를 찾는지, 이미 연결된 기기와 통신하는지, 내 기기를 다른 기기에 발견되게 하는지, 그리고 블루투스가 없어도 앱의 핵심 흐름이 가능한지를 나누지 않으면 권한 문구와 출시 대상이 한꺼번에 흔들립니다.
먼저 답하면, Android MVP에서는 기기 탐색·연결 통신·발견 가능 상태·위치 추론 여부·기기 필수성을 각기 다른 판단 칸으로 기록하는 편이 좋습니다. Android 12(API 31) 이상을 대상으로 할 때 Android는 탐색에 BLUETOOTH_SCAN, 이미 페어링된 기기와 통신하는 데 BLUETOOTH_CONNECT, 현재 기기를 발견 가능하게 하는 데 BLUETOOTH_ADVERTISE를 안내합니다.
이 글은 Android 구현·권한 허용·Google Play 등록·개인정보 적합성 또는 서비스 성과를 보장하지 않습니다. 실제 출시 전에는 target SDK, 사용 기기, BLE 스캔 결과의 쓰임, 매니페스트와 테스트 빌드를 최신 공식 문서와 함께 확인해야 합니다. 공식 원문 확인일: 2026년 9월 18일 · 작성: 유인어스(UINUS).
블루투스를 한 기능으로 묶지 말아야 하는 이유
사용자는 “근처 기기 연결”이라는 하나의 기능으로 볼 수 있지만, 제품팀이 검토할 동작은 다릅니다. 앱이 주변 기기를 검색하는 일, 사용자가 이미 페어링한 기기에 값을 보내는 일, 다른 기기에서 내 기기를 찾을 수 있게 만드는 일은 서로 같은 동작이 아닙니다. Android 문서도 Android 12 이상에서 이 세 경우를 각각 다른 권한과 연결합니다.
판단 칸 | 출시 전 질문 | 남길 기록 |
|---|---|---|
탐색 | 앱이 주변 BLE 또는 블루투스 기기를 직접 찾는가? | 스캔 시작 조건과 필요한 결과 |
연결 | 이미 페어링된 기기와 실제로 통신하는가? | 연결 대상과 실패 뒤 안내 |
발견 가능 | 현재 기기를 다른 블루투스 기기에 보이게 해야 하는가? | 노출 목적과 종료 조건 |
위치 | 스캔 결과로 물리적 위치를 도출하는가? | 위치 사용 여부와 근거 |
필수 기기 | 블루투스가 없는 기기에서도 핵심 기능을 쓸 수 있는가? | 필수/선택 결정과 대체 흐름 |
1. 먼저 ‘찾기’와 ‘연결’을 다른 사용자 흐름으로 적습니다
기기를 한 번도 연결하지 않은 사용자가 주변 센서를 찾는 화면과, 이미 등록한 기기에서 측정값을 읽는 화면은 같은 상태가 아닙니다. Android의 안내에 따르면 Android 12 이상에서 BLE 주변기기 등을 찾는 경우에는 BLUETOOTH_SCAN, 이미 페어링된 기기와 통신할 때는 BLUETOOTH_CONNECT를 선언합니다. 따라서 기획서에는 “블루투스 사용” 대신 어느 화면에서 무엇을 시작하는지 적는 편이 검수하기 쉽습니다.
여기서 검색 결과가 비어 있는 상태, 사용자가 취소한 상태, 기기를 찾았지만 연결하지 않은 상태, 연결이 끊긴 상태까지 분리하세요. 한 개의 ‘연결 실패’ 문구로 묶으면 QA 때 권한 문제인지, 기기 상태인지, 통신 문제인지 알기 어렵습니다. 네트워크 상태와 요청 결과를 나누는 방식은 앱 MVP 네트워크 오류 안내 기준도 함께 참고할 수 있습니다.
2. ‘다른 기기에 보이게 하기’는 별도 범위입니다
앱이 주변 기기를 찾기만 하는 것과, 현재 기기를 다른 블루투스 기기에 발견 가능하게 만드는 것은 다릅니다. Android는 현재 기기를 다른 블루투스 기기에 발견 가능하게 하는 경우 BLUETOOTH_ADVERTISE를 안내합니다. 이 기능이 실제 제품 흐름에 없다면 권한 목록에 관성적으로 넣지 말고, 반대로 필요한 경우에는 언제 시작하고 누가 중단할 수 있는지를 화면과 운영 기록에 남기세요.
특히 MVP에서는 “페어링이 된다”는 표현만으로 탐색·연결·발견 가능 상태를 모두 구현했다고 판단하지 않는 것이 좋습니다. 데모에서 쓰는 기기, 일반 사용자가 연결할 기기, 내부 QA에서만 쓰는 기기를 구분하면 처음 출시 범위를 줄이기 쉬워집니다.
우리 앱 MVP의 기기 연결 범위와 출시 흐름 점검하기
3. 스캔 결과를 위치에 쓰는지 확인합니다
Android 문서는 블루투스 스캔 결과로 물리적 위치를 도출하는 경우 위치 권한을 함께 다루도록 안내합니다. 반대로 위치를 도출하지 않는다고 강하게 확인할 수 있는 경우에는 BLUETOOTH_SCAN에 neverForLocation 플래그를 쓰는 방법과, 다른 목적의 위치 접근이 없다면 ACCESS_FINE_LOCATION 선언을 조정하는 방법을 설명합니다. 다만 이 플래그를 포함하면 일부 BLE 비콘이 스캔 결과에서 필터링될 수 있다고도 안내합니다.
중요한 것은 문구를 복사하는 일이 아니라, 팀이 실제로 스캔 결과를 어디에 쓰는지 확인하는 일입니다. ‘위치를 쓰지 않는다’는 표시를 하기 전에는 비콘 기반 동작, 서버 전송 항목, 분석 이벤트와 테스트 결과를 대조하세요. 위치 권한의 기능·정확도·백그라운드 범위를 별도로 보는 방법은 앱 MVP 위치 권한 범위 점검에서 이어서 확인할 수 있습니다.
4. 첫 연결 경험은 시스템 흐름과 맞춰 설계합니다
Android 문서는 Android 8.0(API 26) 이상에서 Companion Device Manager가 앱을 대신해 페어링 UI를 제공하는 방식을 소개하며, 이 방식은 위치 권한을 요구하지 않는다고 설명합니다. 더 큰 제어가 필요한 경우에는 문서의 블루투스 권한 흐름을 사용하도록 안내합니다. 이는 모든 제품에 하나의 방식을 권하는 뜻이 아니라, “직접 스캔 화면이 꼭 필요한가?”를 MVP 범위에서 먼저 물어볼 근거가 됩니다.
사용자가 연결하려는 기기와 핵심 사용자 가치를 한 문장으로 적습니다.
탐색·연결·발견 가능 중 실제로 필요한 동작만 표시합니다.
스캔 결과가 위치 추론에 쓰이는지 구현·분석 설정 기준으로 확인합니다.
최초 연결, 취소, 미발견, 연결 끊김을 실제 기기에서 각각 테스트합니다.
권한 요청 화면과 기능 제한 안내가 테스트 결과와 일치하는지 검수합니다.
5. 블루투스를 ‘필수 기능’으로 선언하기 전에 대체 흐름을 봅니다
Android는 블루투스가 앱에 꼭 필요한 경우 매니페스트의 기능 요구를 표시할 수 있고, 이를 필수로 설정하면 Google Play가 해당 기능이 없는 기기의 사용자에게 앱을 숨긴다고 설명합니다. 반대로 블루투스가 없어도 앱의 일부 기능을 제공할 수 있다면 기능을 선택으로 두고 런타임에 가용성을 확인하는 방법을 안내합니다.
그래서 제품팀은 하드웨어 연동이 없으면 서비스 전체가 무의미한지, 아니면 연결 기능만 비활성화해도 가입·조회·예약 같은 핵심 흐름이 가능한지를 먼저 정해야 합니다. 이는 설치 수나 성과를 예측하는 판단이 아니라, 어떤 사용자에게 어떤 화면을 보여 줄지 정하는 출시 범위의 문제입니다. 유인어스는 민간 사업 지원 서비스이며, 개별 앱의 심사·권한 허용·출시 결과를 보장하지 않습니다.
자주 묻는 질문
블루투스 권한 하나만 넣으면 기기 검색과 연결을 모두 할 수 있나요?
기능과 target SDK에 따라 다릅니다. Android 12 이상에서 Android는 주변 기기 탐색, 이미 페어링된 기기와의 통신, 현재 기기를 발견 가능하게 하는 일을 각각 다른 권한과 연결해 안내합니다. 실제 동작을 먼저 분리해 확인하세요.
BLE 스캔을 쓰면 항상 위치 권한이 필요한가요?
그렇게 단정할 수 없습니다. Android는 스캔 결과로 물리적 위치를 도출하는 경우를 별도로 다루며, 위치를 도출하지 않는다고 강하게 확인할 수 있는 경우의 설정 방법도 안내합니다. 실제 사용처와 일부 비콘 필터링 가능성을 함께 검토해야 합니다.
블루투스가 없는 기기에서는 앱을 설치하지 못하게 해야 하나요?
블루투스가 핵심 기능에 필수인지에 따라 다릅니다. Android는 필수 기능으로 선언하면 해당 기능이 없는 기기에서 Google Play 노출에 영향을 줄 수 있다고 안내합니다. 대체 흐름이 있다면 선택 기능과 런타임 확인을 검토하세요.
초기 MVP는 직접 스캔 화면부터 만들어야 하나요?
반드시 그렇지는 않습니다. Android는 Android 8.0 이상에서 Companion Device Manager의 페어링 UI 방식을 소개합니다. 필요한 제어 수준, 연결할 기기, 실제 사용자 흐름을 기준으로 정하고 테스트로 확인하세요.
공식 출처
Android Developers, Bluetooth permissions — 2026-09-18 확인