상황인식 API 활용 앱 개발을 위해 넘어야할 3가지 문제들

꿈의 API, 상황인식 API (context awareness API)

상황인식(Context Awareness) 기능은 광고업계, 앱 개발사는 물론 사용자에게도 꿈의 기능 입니다. “비오는날 미리 우산 챙기라”고 집을 나설때 알려주는 앱 “자동차에 타면 자동으로 블루투스가 켜져 내가 좋아하는 노래를 들어주고, 네이게이션 앱을 실행시켜주는 스마트폰” 이런 똑똑한 비서와 같은 동작들은 우리가 언제나 미래사회의 모습으로 그려보는 기술 입니다. 이런 세상에 더 다가가기 위핸 안드로이드에서 Awareness(인식) API를 내놓았습니다.

지금까지 상황인식(context awareness) 처리가 힘들었던 이유 중에는 다양한 센서의 값을 읽어와서 상황을 판단하는 것이 너무 복잡하고 배터리가 많이들며 CPU자원을 많이 소모한다는 이유가 크게 작용했습니다. 이번에 구글 I/o 2016에서 발표되어 Google Play 서비스를 통해 사용할 수 있는 Awareness API는 이런 문제들을 해결해, 다양한 상황값들을 처리하기 쉽도록 편리한 API를 제공하고, 저전력으로 상황인식 애플리케이션을 만들 수 있도록 해줍니다. 그러면 이제 앞으로 상황인식을 하는 앱이 많아지게 될까요?

Awareness API 소개

“시스템 상태를 케어하면서 동시에 앱이 사용자의 컨텍스트를 인지할 수 있도록 도와주는 통합된 하나의 센싱 플랫폼”

이런 개발 뉴스를 더 만나보세요

구글이 새로 내놓은 Awareness API는 사용자로 하여금 간단한 코드로 배터리 효율성이 높은 방식을 통해 현재 상황(context)를 확인할 수 있게히며, 특정 조건에 맞춰 반응 할 수 있도록 조건을 만들 수 있도록해줌으로써 특정 상황에 필요한 동작을 쉽게 실행할 수 있습니다. 기본적으로 아래와 같은 7가지의 상황에 대한 인식을 할 수 있습니다.

  • 7가지 종류의 컨텍스트
    • 언제: 지역 시간
    • 어디: 특정 지역과 함께 어떤 카테고리의 장소인지 시멘틱 설명
    • 무엇: 사용자가 하고있는 행동
    • 근처: 비콘
    • 디바이스 상태: 헤드폰 연결 등
    • 주변 환경: 지역 날씨
  • Fence API Fence API 는 Geo fencing 에서 이름을 가져온 것으로, 특정 영역에 들어오는 것을 인지하는 것이 geofencing 이듯이 특정한 상황(context)에 들어오면 callback으로 알림을 받을 수 있도록 하는 API 입니다. 아래와 같이 여러개의 상황을 조합해서 하나의 fence를 만들 수 있습니다. Fence API는 기존에 할수없던 것을 하게 해주는 새로운 API라기 보다는 상황(context)에 관련 다양한 값을 쉽게 사용할 수 있도록 해주는 API라고 할 수 있습니다.

  • snapshot API 이는 polling 방식으로 원할 때 특정한 값을들 불러오는 API 입니다.

  • 요구되는 permission 이런 다양한 값들을 읽어오는 데에 하나하나 사용자가 동의를 해야 한다면 사용자들에게 많은 거부감을 줄 것입니다. 아래와 같이 단순화 시킨 permission 모델을 제공합니다.

  • 주의할 점 만약 Awareness API를 사용해 사용자 맥락에 대한 정보를 수집할 경우 여러분의 앱이 불쾌한 경험울 주지 않도록 아래 사항을 지켜주세요.
    • 사용자들의 정보가 어떻게 사용되는지 설명할 것
    • 앱 기능에 핵심적인 요소가 아니고 사용자가 이해하기에 명확한 것이 아니면 정보를 보내거나 저장하지 말 것
    • 사용자가 이해하기 쉬운 투명한 정책을 제공할 것
    • 사용자가 원할 경우 개인 디바이스는 물론 서버에서도 지울 수 있도록 할 것

Awareness API를 쓰기 위해 넘어야할 벽들

Awareness API는 실질적으로 개발자가 상황 인식 앱을 만드는데 필요했던 기술적인 장벽들을 많이 해소해 줍니다. 복잡한 코딩, 배터리 문제, 복잡한 권한 관리 등의 문제에 많은 해법을 제시합니다. 그러면 이제 상황인식을 위해 Awareness API를 사용하는 앱들이 빠르게 증가할까요? 그러기에는 아직은 남은 장벽이 많습니다. 실제로 기존에 상황인식 기반 앱이나 광고 플랫폼을 만들때 부딪히는 문제점은 Awareness API가 해결해주는 기술적인 문제들보다 더 골치아픈 문제들 입니다.

1. 값을 해석하는데 많은 경험이나 다른 API가 필요

사용자가 10km/h 로 이동하고 있습니다. 이 속도는 빠른 것인가요? 아니면 느린 것인가요? 지금 온도가 28도 네요. 더운가요? 안더운가요? 이를 판단하기 위해서는 다양한 경험이나 기술, 또는 경험이 필요합니다. 또한 실 상황에서 다양한 원인으로 인해서 부정확한 값이 들어오기 때문에 값을 보정도 해주어야 하고, 값을 수집하지 못하는 경우에 대한 처리도 해주어야 합니다. 커피샵에 들어갈때마다 “나의 카페인 섭취기록 앱”을 켜고 싶은데 Place API는 스타벅스, 이디야 와 같이 장소 이름만 알려주는 경우, 또는 지금 위치의 위도와 경도 값을 알고있지만 제게 필요한 정보는 지금 어떤 도시에 있냐는 정보인 경우 등과 같은 상황이 있습니다. 이런 문제를 해결하기 위해서는 외부의 써드파티 API를 제공하는 사업자들이 있어야 합니다. 이렇게 상황인식을 위한 값을 수집하는 것보다, 그 값을 이해하고 정말 필요한 정보를 뽑아내기위해서는 많은 장애물 들이 존재합니다.

2. 사용자들은 자신의 정보를 제공하는 것을 싫어한다

이제는 블루투스나 GPS를 사용하는 것이 예전처럼 배터리를 많이 먹지 않습니다. 또한 개인정보를 비식별화 하고 상황정보와 개인정보를 분리시켜 관리하는 등 개인정보 이슈도 해결할 수 있는 방법이 존재합니다. 하지만 스마트폰 사용자들은 블루투스나 GPS 정보를 통해 무언가 자신의 정보가 사업자들에게 전달되는 것을 꺼립니다. 블루투스나 GPS사용에 대한 배터리 문제, 개인정보 문제가 아무래 개선이 되더라도 사용자들은 실제로 확인하기 힘들기 때문에 아직도 많은 사용자들이 블루투스를 끄고다닙니다. 사용자들의 정보가 어떤것들이 수집되고 어떻게 관리하는지에 대해서 설명해도 그런 기술적인 내용을 대중 사용자가 정확하기 이해하기는 힘들고, 또 사용자가 하나하나 확인 및 검증 할 수 없기 때문에 믿기도 힘듭니다.

우리는 이런 상황을 이미 리타게팅 광고를 통해서 겪어 보았습니다. 아마존에서 여자친구에게 선물하기위해 헤드셋을 검색하면 회사에서 일을 하고있을 때에도 계속 그 광고가 따라다닙니다. 여자친구가 잠시 내 컴퓨터 화면에 뜬 타게팅 광고를 보고 자신의 선물을 미리 알아버릴 수도 있겠죠. 이렇게 자신을 잘 이해하고 타게팅하는 광고 등 서비스는 사람들을 섬뜩하게 하고 또 원치않는 결과를 가져오기도 합니다. 그래서 리타게팅 광고들은 자신의 정보를 지우는 방법, 트래킹 하지 않도록 설정하는 방법 들을 제공합니다. 앞으로 더 다양한 정보를 수집하게 되면 이런 개인정보 관리 문제들이 더 많이 생기게 될것입니다.

3. 대충 정확한 상황인식은 없는게 낫다

“집에 거의 도착” 했다는 이벤트를 80%정확도로 인지해서 집에 문자를 보내는 서비스가 있다고 해봅시다. 아마 사람들은 20%의 확율로 집에 문자를 보내지 않아서(false-negative 상황) 문제를 일으키는 서비스 보다는, 그냥 수동으로 메시지를 보내는 것을 선호할 겁니다. 집에 가지않고 근처에 있는 마트에 가고있는데 상황인식 API가 “집에 거의 도착”이라고 문자를 보내(false-positive 상황)는 상황도 있을 수 있겠죠. 실재로 상황인식 서비스가 널리 쓰이려면 정확도가 높아야 하는데 그러기에는 앞에서 말한 바와 같이 너무나 많은 문제들이 존재합니다. <사람은 센서값을 보고도 상황을 정확하게 판단하지만, 기계는 쉽지 않습니다>

정리

상황에 맞는 광고, 인공지능과 결합되어 나의 상황에 맞는 서비스를 제공해주는 서비스는 오랫동안 인터넷/앱 서비스 회사들의 매출증대를 위한 목표였습니다. 하지만 그런 서비스가 실제로 우리 실 생활에서 제공되기 위해서 풀어야할 과제는 디바이스 내에서 값을 받아오고 처리하는데에 대한 기술적인 제약사항이 아니라 개인정보관리와 같은 법적인 문제, 사용자들에 대한 거부감 해소, 상황(context)을 판단하기 위한 외부 생태계 활성화 등 짧은 시간내에 해결되기 힘든 문제들 입니다. 그렇기 때문에 개인정보 비식별화, 모바일 디바이스에서 처리되는 개인정보에 대한 사용자 인식개선, 다양한 써드파티 데이터제공 회사 증가등을 통해 사회적인 준비를 포함해 생태계가 더 발전했을 때 비로소 진정한 상황인식 서비스들이 나올 수 있을것 입니다.

참고자료

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


박민우

비지니스를 좋아하는 소프트웨어 개발자 @tebica / Realm을 아시아지역에 확산시키는 일을 합니다.

4 design patterns for a RESTless mobile integration »

close