내가 근무하고 있는 회사의 지원으로 네이버 데뷰 2015에 참가할 수 있었다. 매우 유익하고 즐거운 행사였다! 이런 행사에 참가할 수 있다니, 정말 서울에 와서 일하길 잘했다는 생각이 들었다. 몇가지 흥미로웠던 세션을 정리해 둔다.

2일차 세션 4. WIFI를 이용한 실내 장소 인식하기

발표자: 구자형(로플랫)

슬라이드: http://www.slideshare.net/deview/242-wifi

이 세션은 사용자(모바일 단말기)의 위치를 실내에서 인식하는 기술에 관한 것이었다. 와이파이로 어떻게 실내 장소를 구분하고 위치를 인식할 수 있을지, 제목만으로는 상상이 안 됐는데 발표를 듣고 보니 매우 복잡하거나 어려운 기술이 사용된 것은 아니었다. 연사 구자형 대표는 기초적인 내용부터 알기 쉽게 차근차근 설명해 줬다. 모든 행사가 끝난 후 있었던 약식 뒤풀이에서 구자형 대표의 설명을 좀 더 들을 수 있었다. 이 때 들은 내용도 포함했다.

실내 위치 인식 방법들

모바일 단말기를 이용해 실내에서 위치를 인식하는 방법은 여러 가지가 있다. 모바일 단말기에 달린 센서가 다양하기 때문이다. 스마트폰의 센서들 중 다음과 같은 소스를 실내 위치 인식에 사용할 수 있다고 한다.

  • 소리
  • 블루투스
  • 와이파이
  • 자기
  • 가속도

이 중 소리를 이용하는 방식은 스타벅스가 대표적이다. 스타벅스는 최근 매장마다 천장에 검은 박스를 하나씩 설치했다. 이 장치는 인간이 들을 수 없는 20KHz의 초음파를 수 초마다 방송한다고 한다. 스타벅스 이용자의 스마트폰에 설치된 스타벅스 앱이 이 초음파를 수신하여 고객의 매장내 위치 인식을 할 수 있는 것이다.

발표에서 다뤄지지는 않았지만 행사 뒤풀이 자리에서 구자형 대표가 말해준 바에 따르면, 이 방법은 사용자가 명시적으로 와이파이나 블루투스를 켜지 않아도 앱이 마이크 센서를 이용하는데 큰 권한이 필요없다는 점이 장점이라고 한다. 다른 한 한 뒤풀이 참석자는 스타벅스 앱을 켤 때마다 이어폰으로 듣고 있던 음악이 멈춰서 의아했는데, 알고보니 마이크를 동작시키면서 생기는 문제라는 걸 이제 알게됐다고 한다. 이 점은 부작용이라고 할 수 있겠다.

2.4GHz 블루투스를 이용하는 방법으로 대표적인 것은 애플사의 아이비콘(iBeacon)이 있다. 그런데 이 장치는 생각보다 위치 인식률이 좋지 못하고 특히 인파가 많은 곳에서는 간섭을 많이 받는다고 한다. 대중화되는 데도 성공하지 못한 듯하다.

와이파이는 2.4GHz와 5GHz 주파수 대역을 이용한다. 기존에 설치된 수많은 와이파이 AP를 이용할 수 있어 새로운 설치 비용을 줄일 수 있으며 신호도 비교적 강한 편이라는 장점이 있다. 위치 측정 오차도 5M 반경 수준으로 다른 기술에 비해 크지 않은 편이라고 한다.

자기장을 이용하는 방법은 오차범위가 2M 반경 수준으로 정확도가 가장 높은 기술이며, 많은 주목과 투자를 받고 있다고 한다. 그런데 지구의 자기장이 건축물에 영향을 받고 단말기의 위치 기울기 등에 따라 측정에 왜곡이 발생한다고 한다. 이 문제를 해결하기 위해 가속도 감지 기술 등을 이용해 적절한 보정을 해주어야 한다.

다양한 방법들 중 어떤 기술을 이용할 것인가? 성능, 구축비용, 확장성 등을 고려해 선택해야 한다고 한다. 과거에는 여러 기술들 중 어느 하나를 선택해야 하는 상호배타적인 문제로 접근했다면, 현재는 여러 가지 기술을 결합하는 상호보완적인 관점을 가진다고 한다.

와이파이를 이용한 실내 위치 인식 방법

구자형 대표는 실내 위치 인식에 왜 와이파이를 이용하기로 했을까?

도시에는 수많은 실내 장소가 존재한다. 이 많은 장소에 다 설치할 수 있는 장비는 무엇일까? 음파 기기, 아이비콘 등을 이 많은 곳에 설치하려면 매우 많은 비용이 필요할 것이다. 반면, 와이파이 AP 장비는 이미 매우 많은 곳에 설치되어 있다. 새로운 장비를 설치하기보다 이미 설치된 와이파이 인프라를 활용하는 것이 훨씬 경제적이다.

어떻게 하면 와이파이를 이용해 실내 위치 인식을 할 수 있을까? 주로 삼각측량법과 장소지문을 만들어 식별하는 방법(핑거트린팅)이 사용된다고 한다.

단말기로 와이파이 AP를 스캔하여 각 AP로부터 얻을 수 있는 정보는 다음과 같다.

정보 설명
BSSID MAC 주소 0a:30:0d:88:dd:f2
SSID 무선네트워크 식별명 olleh_starbucks
RSS 신호 수신강도 -48 dBm
주파수   2462

이 정보만으로도 위치를 식별할 수 있다. 신호 수신강도를 이용해 삼각측량을 할 수 있으며, 이 정보들을 모두 종합해 장소별로 고유한 장소지문을 만드는 것이 가능하다.

단말기를 기준으로 주변에 세 개의 AP가 있다고 하면 각각의 AP에서 떨어진 거리에 따라 신호의 수신강도가 다를 것이다. 이 세 신호의 측정값을 통해 삼각측량 계산을 하면 현재 위치를 알 수 있다고 한다. 하지만 와이파이 AP 기기들의 신호 출력이나 장애물 등 다양한 요소를 고려해야하므로 그렇게 간단한 일만은 아닐 듯하다.

어? 삼각측량이라고? 내 스마트폰은 동시에 하나의 AP에만 접속할 수 있는데… 어떻게 한번에 세 개의 AP에서 신호를 수신할까? 하는 생각이 들 수 있다. AP에 접속하지 않아도 주변의 AP를 스캔하는 것만으로도 위치 식별에 필요한 정보를 수집할 수 있다. 와이파이 무선 장비들은 (켜져 있다면) 항상 다른 장비들과 통신하기 위해 주변에 신호를 보낸다고 한다. 주변에 있는 와이파이 장치들을 스캔하는 건 동시에 몇 개의 기기라도 할 수 있는 일이다.

핑거프린팅은 미리 스캔을 통해 수집할 수 있는 주변 AP의 정보들을 이용해 장소별로 고유값을 만들어두고 사전에 저장해 둔 뒤, 나중에 단말기가 측정한 값과 비교해서 실내 위치를 식별하는 방법이다. 이 방법은 실내 위치(좌표)를 정밀하게 측정하는 방법이라기보다는 현재 있는 장소가 어디인지(A 카페, XY 병원 …)를 개념적으로 구분하는 방법에 가까운 듯하다.

실제 적용한 경험

로플랫은 와이파이를 이용한 실내 위치 식별을 적용해 도서관 이용에 도움을 주는 Mute.ly 앱을 만들었다고 한다. 이 앱은 장소를 식별해서 사용자가 도서관에서 나오면 매너모드를 자동으로 해제해 준다고 한다. 구자형 대표는 이 앱을 만들면서 얻은 여러 노하우를 발표했다.

상식적으로 와이파이를 이용해 위치 인식을 하려면 단말기에서 와이파이 기능을 켜 둬야 한다. 하지만 이는 큰 문제는 아닌 듯하다. 안드로이드 최근 버전에는 ‘네트워크 항상 검색’이라는 옵션이 있어서 이 옵션이 켜져 있으면 사용자가 와이파이를 꺼 두더라도 와이파이 스캔은 할 수 있다고 한다. 게다가 이 옵션이 아니더라도 앱이 관련 권한만 받아 두면 와이파이 스캔만 하는 것은 사용자의 명시적인 와이파이 조작 없이 처리할 수 있다고 한다.

LG G2 단말기는 2.4GHz 대역만 스캔되고 5GHz는 스캔되지 않는 현상이 있다고 한다.

기기에 관계없이 아예 와이파이가 켜지지 않는 문제가 생기기도 하는데, 이 오류를 방지하려면 와이파이를 켠 후 바로 스캔을 하지 말고 와이파이가 켜진 것을 확인한 후에 스캔해야 한다.

배터리를 아끼기 위해 스캔을 할 때만 와이파이를 켰다가 다시 꺼 두는 것은 좋은 방법이 아니라고 한다. 와이파이를 켜고 끄는 과정에서 더 많은 전력이 소모되기 때문이다.

주변 모든 와이파이 신호가 갑자기 약해지는 현상이 종종 나타났다고 하는데 알고보니 ‘데스그립’ 문제였던 모양이다. 데스그립이 발생하면 사용자가 해당 장소를 벗어난 것으로 오인될 수 있으므로 적절한 보정이 필요하다.

무선 AP들 중에는 수시로 변동되는 것들이 있다. 사람들이 휴대용 단말기를 AP로 사용하는 경우다. 이런 AP들의 SSID에는 대부분 ‘android’, ‘iphone’, ‘ollehegg’와 같은 접두사, 접미사가 포함돼 있어 어느 정도 구별이 가능하다고 한다. 이런 장치를 잘 구별하지 못하면 장소지문을 만들 때 어려움이 많을 것이다.

또 주의해야 할 점으로 BSSID(MAC 주소)를 고유값으로 착각하는 문제가 있다. BSSID는 고유값으로 지정되는 경우가 대부분이지만 반드시 고유값인 것은 아니다. 02:e0:83:54:70:9X의 경우 서울시내에 수많은 장치가 검색된다. 어떤 칩셋에 똑같은 BSSID가 찍혀서 대량으로 납품된 것이다.

조금 다른 관점

한편, 행사에 홍보부스를 차린 회사 중에 이 기술을 조금 다른 관점에서 적용하고 있는 회사도 있었다. 조이 코퍼레이션은 사용자의 단말기를 중심으로 위치를 인식하는 것이 아니라 매장에 설치된 AP장치를 기준으로 출입 고객의 정보를 수집하는 기술을 전시했다.

이 기술에는 한 가지 이슈가 있는 것 같다. 최근 아이폰은 스캔을 위한 와이파이 동작시 BSSID를 숨기는 기능을 도입했다. 이 기능은 안드로이드 스마트폰에도 점차 적용될 듯하다. 그렇게 되면 매장에 입장하는 고객 별 데이터는 누적하기가 어려워질 수 있다. 물론 BSSID를 수집하지 않는다 하더라도 여전히 의미있는 통계 자료를 수집할 수 있겠지만 매장 업주 입장에서는 좀 아쉬울 듯하다.

모든 사람이 단말기의 와이파이를 켜놓고 다니지는 않는다는 점도 문제가 될 수 있다. 하지만 스마트폰 사용자의 대략 절반 정도는 와이파이를 켜놓고 생활한다고 하며, 그렇다면 통계를 위한 자료로는 큰 하자는 아닐 듯하다.

전망

구자형 대표는 실내 위치 인식 기술을 플랫폼화할 계획이라고 한다. 현재 여러 곳의 장소지문들을 수집하는 작업을 하고 있으며 이것이 완성되면 이 플랫폼을 이용해 사용자가 어떤 공공장소, 매장에 진입했는지 식별하는 것이 가능하다. 한 장소에 같이 있는 사람이 누구인지도 더 정확하게 구별할 수 있게 될 것이다.

세션 제목만 봤을 때는 무척 어렵고 마술 같은 기술로 생각됐지만 발표를 듣고 보니 상식적인 수준에서 이해할 수 있는 기술인 것 같다. 사용자가 자택에 들어가고 나가는 정도의 간단한 식별은 충분히 구현할 수 있을 것 같다. 관심 있는 사람은 사물인터넷과 접목해보는 것도 재미있는 도전이 되지 않을까? 물론 발표에도 나왔듯 까다롭고 귀찮은 문제들이 많이 튀어나오기 때문에 완성도 있게 구현하는 것은 쉽지 않을 듯하다.