건물 내부에서도 위치 기반 사용자 상호작용을 가능하게 하는 비콘의 활용 사례와 비즈니스 모델에 대한 논의가 활발히 진행되고 있습니다. 매장 내 광고 및 할인, 모바일 결제, 내비게이션, 대중교통, 공공건물 및 박물관 위치 기반 서비스, 홈 오토메이션 등은 빙산의 일각에 불과합니다. 그리고 물론, 언제 어디서나 데이터를 수집할 수 있는 기능도 있습니다. 이제 새롭게 도입된 기능이며 정확한 위치 정보를 제공합니다. iBeacon 기술에 대해 더 자세히 알아보기 전에, 본 기사에서는 iBeacon SDK에 대해서도 살펴보겠습니다.
Apple에서 Bluetooth Low Energy 기반으로 개발한 iBeacon 프로토콜은 다양한 기기에서 지원됩니다. 본 문서에서는 iBeacon과 Bluetooth Low Energy에 대해 설명하고, 위치 기반 쇼핑 목록용 Android 앱 개발 사례를 통해 iBeacon과 앱의 위치 기반 상호작용을 보여줍니다. 구현은 MOKOSmart iBeacon SDK를 기반으로 합니다.
iBeacon의 기본 기술은 블루투스입니다. 블루투스 스마트(Bluetooth Smart) 마케팅 라벨로도 불리는 블루투스 저에너지(BLE)는 블루투스 표준 4.0 버전에 포함되었습니다. BLE는 블루투스 클래식(Bluetooth Classic)이라고 불리는 이전 버전과 하위 호환되지 않습니다. 블루투스 4.0은 표준을 준수하는 기기가 저에너지 또는 클래식 중 하나 또는 두 가지 버전을 모두 구현해야 한다고 규정하고 있습니다.
BLE는 iPhone 4+ 및 Samsung Galaxy 3+와 같은 거의 모든 최신 스마트폰에 구현되어 있습니다. iPhone은 iBeacon 신호를 수신할 수 있을 뿐 아니라, 안드로이드와 달리 비콘 자체로도 작동할 수 있습니다. 안드로이드는 API 버전 18, 즉 안드로이드 4.3부터 BLE 드라이버를 포함하고 있습니다. 참고로, 최신 컴퓨터 또한 BLE를 지원합니다. 다만, 윈도우에서는 윈도우 8부터 드라이버가 내장되어 있으며, 애플 컴퓨터에서는 2011년 중반경부터 BLE를 사용할 수 있게 되었습니다.
BLE는 심박수 모니터, 장난감 헬리콥터, 온도계, 피트니스 장비, 칫솔 등 다양한 주변 장치를 계속 지원하고 있습니다. 물론 칫솔과 운동화도 포함됩니다.
텍사스 인스트루먼트(TI)의 태그는 iBeacon 기능 외에도 온도, 습도, 압력, 가속도 측정 기능을 제공합니다. 센서 태그에는 자이로스코프, 자력계, 그리고 두 개의 하드웨어 버튼이 포함되어 있습니다. 발표자의 손의 습도와 온도를 전송하고 표시하면서 프레젠테이션을 원격으로 제어하는 데 이상적인 장치입니다. 다음 모래밭 프로젝트는 스테이지 프라이트-오-매트(Stage Fright-o-Mat)가 될 것 같습니다. 자세한 장치 목록은 공식 블루투스 웹사이트에서 확인하실 수 있습니다.
장치가 데이터를 교환하는 데 사용하는 통신 모델을 GATT(Generic Attribute Profile)라고 합니다. GATT는 클라이언트와 서버의 역할을 정의합니다. 클라이언트는 서비스를 통해 서버에 데이터를 요청합니다. 서비스는 특성이라고 하는 여러 원자 키/값 쌍을 그룹화합니다. 서비스와 특성은 모두 UUID를 통해 식별되며, 추가 설명을 포함할 수도 있습니다. 서비스와 그 특성은 프로파일 형태로 카탈로그화됩니다. 이 사양은 의료, 스포츠 및 피트니스, 그리고 흥미로운 근접 센싱 분야에서 다양한 서비스를 정의합니다. 개별 프로파일과 서비스 및 특성은 Bluetooth 개발자 포털의 GATT 사양에서 확인할 수 있습니다.
그렇다면 iBeacon이란 무엇일까요? iBeacon은 위치 기반 애플리케이션 상호작용을 가능하게 하는 매우 간단한 기술(Apple의 상표)입니다. 비콘은 BLE 호환 기기에서 수신할 수 있는 신호를 전송하고, 비콘에 설치된 애플리케이션에서 이를 처리합니다. 신호에는 비콘의 식별 정보와 수신 강도가 포함됩니다. 따라서 iBeacon 자체는 – 언론의 부정확한 보도와는 달리 – 콘텐츠를 전달하거나 고객 행동을 추적할 수 없습니다. 이는 수신 애플리케이션과 개발자의 책임입니다.
독일에서 iBeacon을 대규모로 도입하는 데는 시간이 꽤 걸릴 것으로 예상되지만, 미국과 네덜란드의 사례도 있습니다. 예를 들어, 메이저리그 야구(MLB)는 28개 경기장에 iBeacon을 설치하여 MLB 앱 "At the Ballpark"에서 체크인하는 등 다양한 용도로 활용하고 있습니다.
앤트워프의 루벤스 하우스에서는 방문객을 대상으로 그림의 엑스레이와 지오캐싱 게임 등 배경 정보를 제공하는 쇼케이스가 시행되었습니다.
규모 측면에서 가장 대표적인 사례는 애플입니다. 250개가 넘는 애플 스토어에 iBeacon이 설치되어 있습니다. 애플 스토어 앱과 연동하여 매장 내 구매자에게 위치 기반 메시지가 전송됩니다. 하지만 현재 가능한 상호작용은 상당히 제한적인 것으로 보입니다. 첫 번째 리뷰는 두 가지 서로 다른 (그리고 매우 일반적인) 메시지만 제공합니다. 근처 개별 제품에 대한 특별 할인이나 구체적인 정보는 제공되지 않습니다.
iBeacon SDK는 별도의 BLE 프로파일을 사용하지 않고, 블루투스 기기를 검색하는 데 사용되는 블루투스 광고 패키지, 즉 브로드캐스트 패키지를 사용합니다. 패키지의 정확한 구조에 관심이 있으시면 Adam Warski의 블로그 등을 참고하시기 바랍니다.
이러한 패키지는 GATT를 통해 구성 가능한 정기적인 간격으로 전송됩니다. 여기에는 비콘의 UUID가 포함되어 있으며, 일반적으로 제조업체에서 미리 설정합니다. 따라서 모든 MOKOSmart 비콘은 동일한 UUID를 전송합니다. 각 비콘을 식별하는 데에는 주요 ID와 부 ID도 사용됩니다. 예를 들어 주요 ID는 프랜차이즈 체인점의 매장이나 레스토랑의 지점을 나타내고, 부 ID는 단일 진열대나 테이블을 나타낼 수 있습니다.
또한, 신호 강도는 광고 패키지에 포함되어 있어 수신기와 비콘 사이의 거리를 측정하는 데 사용할 수 있습니다. 하지만 가구나 사람과 같은 공간적 장애물에 의해 신호가 가려질 수 있으므로 높은 정확도를 기대할 수는 없습니다.
IBeacon SDK는 앱과 이 정보의 상호작용을 위해 거리 측정(Rangeing)과 지역 모니터링(Region Monitoring)이라는 두 가지 개념을 제공합니다. 거리 측정 시 비콘까지의 거리가 측정됩니다. 위에서 언급한 부정확성으로 인해 이 과정은 세 단계로만 진행됩니다. "즉시"는 몇 센티미터, "근거리"는 몇 미터, "원거리"는 10미터 이상의 거리입니다. 거리 측정은 수신 앱이 활성화된 경우에만 가능합니다.
지역 모니터링에는 이 기능이 필요하지 않습니다. 이 모드에서는 비활성 앱이 하나 이상의 비콘으로 정의된 지역에 진입하거나 지역을 벗어날 때 알림을 받을 수도 있습니다. 이 기술이 광고 및 소매업에 어떤 이점을 제공하는지 이제야 명확해지고 있습니다. 또한, 대부분의 비콘은 지역 상황에 따라 배터리 수명을 최적화하도록 전송 강도와 간격을 설정할 수 있습니다.
"대부분의 비콘"이라는 말은 시중에 여러 iBeacon 제조업체가 있다는 것을 의미합니다. 실제로 MOKOSmart, Kontakt.io, Gelo, Estimote, Gimbal 등 꽤 많은 iBeacon 제조업체가 있습니다. 이러한 제조업체는 하드웨어 외에도 iBeacon SDK 서비스와 비콘 관리를 위한 클라우드 솔루션을 제공합니다. 취미로 하는 사람들은 Raspberry Pi나 Arduino를 사용하여 비교적 손쉽게 iBeacon 송신기를 직접 설치할 수 있습니다.
구현 예시로 다음과 같은 상황을 가정해 보겠습니다. 개발자는 토요일 아침에 슈퍼마켓에 있습니다. 배고픈 아이들은 집에서 기다리고 있고, 오후에는 학교에서 베이킹 바자회가 열립니다. 그제서야 주말이 시작됩니다. 서둘러야 할 이유가 충분합니다. 하지만 안타깝게도 쇼핑 목록이 길고 슈퍼마켓 구조에 맞지 않습니다. 슈퍼마켓의 각 부서에 iBeacon이 설치되어 있다면, 쇼핑 목록 앱은 해당 항목을 강조 표시하여 (물론 완전히 가상의) 개발자의 스트레스를 크게 줄일 수 있을 것입니다.
앱이 블루투스와 통신해야 하므로, 먼저 안드로이드 매니페스트에 BLUETOOTH 및 BLUETOOTH_ADMIN 권한이 필요합니다. Estimote API가 제공하는 서비스를 사용하여 iBeacon과 상호작용하려면 해당 정보를 알리고 다운로드한 API를 libs/ 디렉터리에 저장해야 합니다.
프로토타입은 미리 채워진 간단한 목록과 미리 정의된 지역(예: 슈퍼마켓의 부서)으로 구성됩니다. 목록 항목은 자신이 할당된 지역을 알고 있습니다. 이 예시에서는 각 지역에 하나의 비콘만 할당합니다. 여러 비콘 목록을 하나의 지역으로 결합하는 것도 가능합니다. 주요 액티비티는 현재 지역을 인식하고 이 정보를 어댑터로 전달하며, 어댑터는 목록 항목을 강조 표시합니다. 또한, 추가 하드웨어 없이 UI를 테스트할 수 있도록 비콘 없이 활성 지역을 선택하는 옵션을 추가합니다.
액티비티의 onCreate 메서드에서 앱용 MOKOSmart 비콘 관리자를 인스턴스화합니다. 어댑터에 현재 지역을 알리고 비콘 스캔 간격을 정의하여 지역 모니터링 리스너를 사용합니다. 이 예시에서는 250초 스캔 후 XNUMXms 동안 대기하도록 정의합니다. 이러한 값은 테스트에서 빠른 결과를 얻기 위해 비교적 공격적으로 선택되었습니다. 실제로는 응답성과 배터리 수명 간의 균형을 맞추기가 어렵습니다. 이 프로토타입에서는 쇼핑 목록에 더미 값을 채웁니다. 메인 액티비티의 on() Start 또는 onStop() 메서드에서 모니터링을 시작하거나 중지합니다.
어댑터는 android.widget.Array Adapter의 파생 클래스로 구현되며, 각 줄이 표시될 때마다 호출되는 getView() 메서드를 재정의합니다. 항목 제목은 레이아웃에 정의된 리뷰의 첫 번째 줄에, 두 번째 줄에는 지정된 영역에 표시됩니다.
목록 1에서 볼 수 있듯이, 입력된 영역은 MonitoringListener의 onEnteredRegion() 콜백에서 어댑터로 전송되며, 이 콜백은 BeaconManager에 할당됩니다. item list Adapter.segregation(region). getView()를 호출하면 해당 줄의 항목 영역이 현재 영역과 일치하는지 확인합니다. 일치하는 경우 줄의 배경색이 지정됩니다. 또는 목록을 정렬하여 현재 영역의 항목을 맨 앞에 배치할 수도 있습니다.
애플리케이션 코드는 명확합니다. iBeacon 신호를 수신하고 앱에서 처리하는 데 많은 구현 노력이 필요하지 않습니다. iBeacon의 거리 측정 및 모니터링 개념은 MOKOSmart iBeacon SDK에 매핑되어 있어 직관적으로 사용할 수 있습니다. 앱의 전체 소스 코드는 GitHub에서 확인할 수 있습니다.
MOKOSmart iBeacon SDK를 사용하여 iBeacon과 상호작용하는 것이 쉽다는 것을 확인했습니다. 따라서 구현 기술 측면에서 큰 어려움은 없을 것으로 예상하지만, 비콘 배치 및 전송 전력 조정 측면에서는 큰 어려움이 없을 것으로 예상합니다. 이러한 매개변수는 위치 변경 시 애플리케이션의 응답성에 직접적인 영향을 미칩니다. 어떤 경우든 균형을 맞추는 것은 어려울 것입니다.
특히 흥미로운 사례로, 예를 들어 홈 오토메이션 분야에서는 위에서 언급한 Texas Instruments의 센서 태그처럼 iBeacon과 센서의 결합을 고려합니다. Estimote는 Estimote 스티커와 함께 동작 및 온도 센서가 장착된 모바일 비콘도 출시할 예정입니다. 첫 번째 개발자 프리뷰는 2014년 2014월 말에 제공될 예정이었지만, XNUMX년 말까지 키트는 출시되지 않았습니다.
이 기술을 사용하여 "실내 내비게이션" 적용 영역을 견고하게 매핑할 수 있을지는 아직 불확실합니다. 블루투스 신호는 간섭 요인에 민감하기 때문에 해당 지역의 iBeacon 신호를 강하게 비추고, 방 평면도를 이용한 삼각 측량을 통해 위치를 계산해야 합니다. MOKOSmart(실내 내비게이션 iBeacon SDK)와 LabWerk 등 여러 제조업체에서 적절한 솔루션을 제공하고 있지만, 저자는 실제 적용 사례에 대한 보고는 알지 못합니다.
iBeacon과 상호 작용하는 앱을 개발할 때는 보안 및 데이터 보호 측면도 고려해야 합니다. iBeacon은 신호가 단순하기 때문에 스푸핑에 취약하므로 개발 과정에서 이를 반드시 고려해야 합니다. 사용자 행동을 기반으로 수집되는 현재 위치 및 이동 프로필과 같은 데이터 또한 높은 수준의 보안이 필요합니다.
오늘날 현대 비즈니스 운영은 점점 더 역동적으로 변하고 있습니다. 특히 광범위한 지역에서 사업을 운영하는 기업의 경우…
고급 주얼리 업계에서는 정밀성, 보안성, 그리고 실시간 가시성이 무엇보다 중요합니다. 정확한 위치 파악은 필수적입니다.