스마트폰위치기반서비스 (LBS) 기술동향 정구민 국민대학교전자공학부부교수최완식 TTA LBS PG 305 의장, ETRI 위치정보기술연구팀책임연구원 1. 머리말 의하드웨어적인지원, LBS 를위한다양한기술및 API, DB 제공등을통해 LBS 활성화를위한토대를마련했 이동성과휴대성을특징으로하는휴대폰의특성때문에위치기반서비스 ( 이하 LBS) 는이동통신의시작과더불어항상킬러앱의하나로전망되어왔다. 이러한전망에비해스마트폰이전의피처폰 (feature phone) 에서는플랫폼상에서의기술지원부족, 애플리케이션개발을위한기술의개방성부족, LBS 를위한제반인프라지원부족등의여러이유로서비스의활성화를가져오지는못했으며언제나성공가능한서비스의하나로인식되어온것이사실이다. 그러나아이폰과더불어시작된스마트폰의폭발적인성장은 LBS 를 가능성을가진킬러앱 의하나가아닌 시장에서성공한킬러앱 의하나로시장의전면에등장하게했다 [1-3]. 2009 년 11 월 Gartner 사의 2012 년스마트폰애플리케이션예측 보고서에서는 LBS 를 2위로예상할정도로 LBS 는스마트폰의킬러앱으로확고히자리잡고있다 [4]. 스마트폰에서의 LBS 의성공은플랫폼단에서의 LBS 기술지원및기술의개방에힘입은바가크다. 아이폰과안드로이드에서는 LBS 를킬러앱으로정의하고 GPS, WLAN, 디지털컴퍼스 (Digital Compass) 등 다 [3]. 또한서비스적으로는이러한기술지원을기반으로 foursquare 를비롯한다양한 LBS 서비스가성공을거두고있고, 소셜네트워크서비스 (SNS: Social Network Service), 증강현실 (AR: Augmented Reality), 게임등다른킬러앱과연계해다양한서비스를제공하고있으며향후안전및사고예방등의공공적인측면에서도다양한애플리케이션이기대되고있다. 본고에서는스마트폰측면에서 LBS 를분석하고스마트폰에서의 LBS 를위한 HW적인지원기술, 스마트폰플랫폼지원기술동향에대해서알아보고자한다. 2. 스마트폰에서제공하는 LBS 관련기술스마트폰에서 LBS 의성공은 LBS 를위한 HW적인기술들의지원과플랫폼에서의 LBS 컴포넌트지원, LBS 관련인프라지원, 그리고그러한기술들의개방으로요약할수있다. 스마트폰에서는 [ 그림 1] 과같은종합적인 LBS 구성요소를제공함으로써다양한서비스가가능하게하고있다. 이장에서는스마트폰에서제공 TTA Journal No.130 75
Application Provide LBS Platform Location manager HW GPS Wi-Fi 3G Sensor Smart phone DataBase for LBS Server etc... 공받도록하고있으며안드로이드에서도동일하게이루어지고있다. 이러한위치측위방식은 GPS 기반위치측위로해결할수없는도심과실내측위에대해서 WLAN 기반측위의사용이가능하게하고있다. Skyhook 과같은사업자에의해서 WLAN AP의 DB화가이루어짐으로써현재스마트폰에서의 WLAN 기술은 3G/WLAN interworking 뿐만아니라위치측위에서도 [ 그림 1] 스마트폰에서 LBS 지원을위한구성요소 중요한요소가되고있다. 국내에서도 LBS 산업협의회및 ETRI 를중심으로 하는 LBS 관련기술들에대해알아보기로한다. WLAN 의 DB 화사업및위치측위사업이진행되고있 으며 2010 년말이동통신사수집 Wi-Fi DB 가기존의 2.1 HW 및기반기술 GPS, Wi-Fi, 기지국 ID 등을종합적으로제공하는 스마트폰의위치측위기술은정밀도의향상과더불어 LBS 정보 DB 시스템에통합될예정이다. 향후실내측 위및안전, 사고예방등을위해서많이활용될것으 로기대된다. LBS 의활성화에많은기여를했다 [1-3]. 또한디지털 컴퍼스와중력센서는증강현실과 LBS 를결합하면서 다양한앱의개발을가능하게했다. 2.1.2 센서관련기술 아이폰에적용된센서관련기술은이후의스마트폰 에많은영향을주었으며근접센서, 3 축가속센서, 디 2.1.1 위치측위관련기술아이폰에서는 [ 그림 2] 와같이위치측위를위한세가지방법중위치정보의오차범위에따라 GPS 위성신호, Wi-Fi AP, 3G 기지국 ID 순서로위치정보를제 지털컴퍼스등은거의모든스마트폰에서표준처럼쓰이고있다. 이러한센서기술들은증강현실등과결합해다양한 LBS 애플리케이션을개발하는데쓰이고있다. 국내에판매된삼성옴니아 2에서는디지털컴퍼 GPS Wi-Fi AP 스가지원되지않음으로써아쉬움이있었으나갤럭시 A, 갤럭시 S 등최근의스마트폰들은아이폰에적용되었던센서기술들이모두지원이되고있어서향후많은애플리케이션의개발이기대되고있다. 또한아이폰 4에서는 6축자이로스코프센서가지원됨으로써게임, 증강현실뿐만아니라 LBS 에서도새로운애플리케이션의개발이기대된다. 3G 2.2 스마트폰플랫폼제공기술 아이폰과안드로이드등의스마트폰플랫폼들은 [ 그림 2] 스마트폰위치측위방법 LBS 를킬러앱으로정의하고 LBS 를효과적으로개발하 76
기위한모듈을제공하고있다. 특히구글스트리트뷰등 LBS 사업에많은투자를하고있던구글은아이폰과안드로이드에구글맵스등을통해기존의지도 DB 등다양한 LBS 정보들을연동함으로써고기능앱의제공이가능하게하고있다. 간략하게각플랫폼에서제공하고있는기능들을살펴보기로한다. 2.2.1 아이폰애플은아이폰의출시와함께 LBS 와관련된다양한플랫폼기술들을내놓으며스마트폰 LBS 의활성화를가져왔다. 아이폰 LBS 의주요핵심으로는플랫폼단의 CoreLocation 프레임워크와구글맵스애플리케이션을들수있다. 이를통해위치정보를손쉽게제공받을수있도록하고위치정보를외부 DB 에연동할수있도록했다. ios 에서는기존위성 GPS 의취약지역에서도위치정보를제공하기위해위성정보를사용한위치정보뿐만아니라스카이훅와이어리스 (http://skyhookwireless. com) 에서제공하는 Wi-Fi Hotspot 정보, 구글맵스 (http://maps.google.com/) 에서제공하는셀기지국의위치정보 API 를통한위치정보를이용해사용자에게높은정확도의위치정보를제공한다. 이러한정보를바탕으로구글맵스애플리케이션을통해사용자의위치를지도에서보여주는기능을제공하고있다. 또한개발자는별도의라이브러리를통해구글맵스외에도야후지도, 네이버맵등의지도정보서비스가가능하다. 지도정보를제공하는회사의 open API 또는 URL 을이용해위치정보와외부데이터베이스를연동한 LBS 를손쉽게개발할수있다. 애플은이와는별도로 2009 년 7월에온라인맵회사인 Placebase 인수와함께최근 3D 맵회사인 Poly9 를인수해 ios 의구글에대한의존도를낮추고구글맵스에대응하는맵솔루션을계획중인것으로추정된다. 아이폰의 SW 플랫폼구조는 [ 그림 3] 과같다. ios 는 Cocoa Touch Foundation Address Book UI UIKit Media Video Core Animation Core Audio Quartz OpenGL ES OpenAL Core Service Core Foundation SQLite Address Book Core Location CFNetwork XMIL Core OS Core Location [ 그림 3] ios 계층구조 하단의 CoreOS 부터 Cocoa Touch 에이르기까지크게 4 개의 Layer 로구성된다. 주로 CoreOS Layer 에는 C언어형태의 API 가제공되며상위에는 Objectiv-C 의형태로제공하고있다. 개발시많이사용되는하위단의 API 들은상위단계에서의프레임워크로제공되어쉽고편하게사용이가능하다. LBS 와관련해서는 [ 그림 3] 과같이 Core Services 레이어에서 CoreLocation 프레임워크가지원되고 CoreLocation 으로부터 LBS 관련 API 들이제공된다. [ 그림 4] 는 Corelocation 프레임워크의구조도이다. CoreLocation 프레임워크에서는 CLLoccationManager, CLLocationManagerDelegate, CLLocation 클래스를제공하고있다. CLLoccationManager 는 CoreLocation 클래스에서위치추적을위해사용되는매니저클래스이다. 위치정보정확도, 알림기능, 뷰할당등의정보와함께로케이션매니저를생성한다. 위치정보를찾을때아이폰 OS는단계별로접근하는데 CLLoccationManager 에설정하는정확도레벨에근거해위성 GPS 기반위치정보, Wi-Fi 핫스팟기반위치정보, 셀기지국기반의위치정보순으로참조하게된다. CLLocationManagerDelegate 클래스는얻은 GPS 정보 TTA Journal No.130 77
를 CLLoccationManager 클래스에게전달하고, 상황에 따른이벤트처리를위하여생성한다. startupdatinglocation stopupdatinglocation desiredaccuracy distancefilter < 표 1> CLLoccationManager 관련메쏘드 LocationManager 시작 LocationManager 중단 위치정밀도를지정 정확도는미터단위까지지정가능 일정거리를이동했을때 Notification 할지를설정 < 표 2> CLLocationManagerDelegate 관련메쏘드 locationmanager:didupdate ToLocation:fromLocation locationmanager: didfailwitherror CLLocationDegrees latitude CLLocationDegrees longitude CLLocationDistance altitude horizontalaccuracy verticalaccuracy timestamp didupdatetolocation: 새위치 fromlocation: 이전위치 사용자가위치정보찾기를거부한경우등의상황에서호출 < 표 3> CLLocation 관련메쏘드 위도정보획득 경도정보획득 해발고도정보획득 위도 / 경도의정밀도를나타냄 발고도에대한정밀도를나타냄 측정시간 CLLocation 클래스는 CLLocationManager 클래스로부터생성된위치정보를표현하기위한클래스이다. 위도 / 경도, 위도 / 경도의정밀도, 해발, 해발의정밀도, 측정시간의정보가제공된다. 2.2.2 안드로이드구글은 2004 년 10월에 3D 위성사진 SW사인 keyhole 의인수합병을통해위치정보서비스를시작하였으며구글의위치정보서비스인 Google Earth, Google Maps, Google Maps for Mobile, Goole Local 을발표했다. 따라서스마트폰플랫폼에서는애플에비해서후발주자이지만 LBS 서비스에있어서는애플에비해많은준비를해왔다고볼수있으며안드로이드플랫폼에서는이러한장점을잘살려서한단계높은성능의 LBS 플랫폼을제공하려고했다. 안드로이드는아이폰의 Core Service 단의 CoreLocation 과상응하는 Application Framework 단의 Location Manager 를사용해위치정보에대한라이브러리를지원하고있으며구글맵스애플리케이션을기본탑재하고있다. 추가적으로안드로이드는아이폰에서는제공되지않았던 Google Maps External Library 를지원한다. < 표 4> 와같이내비게이션의강화등다양한기능과서비스를 Core Location delegate desiredaccuracy distancefilter CLLocationManager init alloc startupdatinglocation stopupdatinglocation locationmanager: didupdatetolocation: from Location CLLocationManagerDelegate locationmanager: didfailwitherror latitude(cllocationdegrees) coordinate longitude(cllocationdegrees) horizontalaccuracy CLLocation altitude(cllocationdistance) verticalaccuracy timestamp getdistanceform [ 그림 4] Core Location 프레임워크구조 78
추가해아이폰보다한차원높은 LBS 를이용할수있도록했다. 현재해외에서서비스중인모바일기반의구글맵스기능을정리하면 < 표 4> 와같다. [ 그림 5] 와같이안드로이드는하단의 Linux Kernel 에서 Applications 에이르기까지 5개의계층으로구성되어있다. 이들중라이브러리계층에서는시스템에서사용되는 C/C++ 라이브러리들을제공하고있다. 이러한라이브러리들은애플리케이션프레임워크를통해개발자에게제공되며 LBS 관련라이브러리들도포함하고있다. LBS 관련 API 들은애플리케이션프레임워크계층의 Location Manager 에서제공하고있다.[6] 안드로이드에서는 android.location 패키지를이용하여 GPS, Wi-Fi, 3G Network 를통해위치정보를제공받을수있으며부가적으로센서정보를활용할수있다. LocationProvier 클래스를기반으로 Wi-Fi, GPS, 3G Network 중하나를선택하여위치정보를얻어오게되며 GPS 를이용할경우에는 GpsSatellite, GpsStatus 클래스를이용한다. android.location 패키지의구조는 Feature Navigation < 표 4> 스마트폰별구글맵스기능비교 [5] Labs Android BlackBerry iphone Nokia Windows Search by voice My Location Business listings Business reviews Driving directions Transit and walking directions Biking directions Latitude Layers Street view Satellite view Traffic My Maps Starred Items Buzz Home Contacts APLLICATIONS Dialer SMS/MMS IM Browser Camera Alarm Calculator Voice Dial Email Calendar Media Player Albums Clock... Activity Manager Package Manager APPLICATION FRAMEWORK Window Manager Content Providers View System Notification Manager Telephony Manager Resource Manager Location Manager... LIBRARIES Surface Manager Media Framework SQLite Open GLIES Free Type WebKit ANDROID RUNTIME Core Libraries Dalvik Virtual Machine SGL SSL Libc Graphics HARDWARE ABSTRACTION LAYER Audio Camera Bluetooth GPS Radio(RIL) Wi-Fi... LINUX KERNEL Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder(IPC) Driver USB Driver Keypad Driver Wi-Fi Driver Audio Drivers Power Management [ 그림 5] Android Architecture TTA Journal No.130 79
android.location Address Criteria Geocoder GpsSatellite GpsStatus Location LocationListener LocationManager LocationProvider onlocationchanged() onproviderdisabled() onproviderenabled() onstatuschanged() getlatitude() getlongitude() getaccuracy() getaltitude() getprovider() Provider getproviders() requestlocationupdate() requirescell() requiresnetwork() requiressatellite() [ 그림 6] Android OS android.location 패키지구조 [ 그림 6] 과같다. android.location 패키지내의 Location Listener 인터 페이스는위치이동이나상태변화를감지하는콜백 < 표 5> LocationListener 인터페이스의메쏘드항목 Method onlocationchaned() onproviderdisabled() onproviderenabled() onstatuschanged() Address Criteria Class Geocoder GpsSatellite GpsStatus Location Location Manager LocationProvider Description 위치가바뀌었을때호출 사용자에의해 provider 가정지되었을때호출 사용자에의해 provider 가활성화되면호출 provider 의상태가변하면호출 < 표 6> android.location 패키지의클래스항목 주소정보를관리 Description 정확성, 전력사용량, 고도, 속도등의정보를제공 위치정보와주소정보를변환 GPS 위성의현재상태를나타냄 GPS 엔진의현재상태를나타냄 지리적위치를감지 시스템의위치서비스 (Location Service) 의접근을제공 장치의지리적위치를보고 함수이며 4개의메쏘드를포함하고있다 [6][7]. android.location 패키지는위치정보혹은프로바이더등을관리하기위해 < 표 6> 과같은클래스를제공하고있다. 또한안드로이드는추가로구글맵스외부라이브러리를제공하고있다. 구글맵스외부라이브러리 (Google Maps External Library) 는 com.google.android. maps 패키지를통해안드로이드에서맵기능을사용할수있도록지원하고있다. 즉, com.google.android. maps 패키지는 Google Maps Service 에접근하는인터페이스를제공하는패키지이다. 해당패키지는다양한디스플레이옵션과컨트롤등이함께내장되어있는 built-in 다운로딩, 렌더링, 그리고맵타일들의캐싱들을제공한다. 안드로이드는구글맵스외부라이브러리로 MapView 레이아웃과 Map Activity 를생성해 Google Maps 를사용할수있다 [5]. 2.3 기타스마트폰융합기술망의고속화와스마트폰의고기능화는다양한멀티미디어의처리를가능하게하고있다. 이를통해 LBS 80
는 AR, SNS, 게임등의다른서비스와의융합해다양한서비스를제공하고있으며비전 (Vision) 기반의 LBS 서비스도증강현실서비스와융합해제공되고있다. 또한최근발표된음성검색은 LBS 서비스를편리하게해줄수있는수단으로전망된다. 3. 맺음말한단계높은기술및기술의개방을토대로빠른속도로성장해온스마트폰시장에서 LBS 는킬러앱으로확실하게자리잡고있다. GPS, WLAN, Digital compass 등의 HW 기술과 iphone OS, Android 등플랫폼차원에서의지원그리고각종 DB 연동등을통해 LBS 개발및서비스를위한토대를마련했으며이를통해수많은 LBS 애플리케이션들이서비스되고있다. 또한 SNS, AR, GAME 등다른킬러앱과연계한다양한서비스뿐만아니라위치정보를활용한안전및사고예방등의공공적인측면에서도다양한애플리케이션이기대되고있다. LBS 진화를위한기술적인측면으로는복합측위를통한측위정밀도향상이필요하다. GPS, WLAN 뿐만아니라 RFID. WPAN, VLC 등실내측위의고도화를위한기술들이적용되어정밀도가더욱향상되면다양한서비스의지원이가능할것으로생각된다. 또한망의고속화와스마트폰의성능향상은증강현실, CCTV 를 기반으로한고성능비전기반 LBS 도활성화시킬것으로보인다. 한편스마트폰의 LBS 기술및서비스의폭발적인성장때문에전세계적으로 LBS 관련법적, 제도적인장치들이충분히뒷받침되지못하고있는것도사실이다. 개인정보의보호와개인의안전이라는상호모순적인이해관계에대한현명한해법이요구되는실정이다. 사용자연령이나사용목적등에따라정보보호레벨을다양하게설정할수있도록제도적인토대가마련될필요가있다. 스마트폰의고성능화와향후적용될기술들그리고제도적인토대는위치기반서비스에서또한번의도약을가져올수있을것으로기대된다. [ 참고문헌 ] [1] LBS 기술및시장동향연구보고서, 2010. 4, 한국정보통신산업협회 [2] 한규영, 최완식, 전주원, 안준배, LBS 측위기술현황및고도화이슈 TTA 저널 123 호, 2009. 5 [3] 정구민, 모바일프로그래밍입문, 2010. 4, T아카데미 [4] Gartner Identifies the Top 10 Consumer Mobile Applications for 2012, http://www.gartner.com/it/page. jsp?id=1230413 [5] Google mobile, http://www.google.com/mobile/ [6] Android developers, http://developer.android.com/ [7] Ed Burnette, Hello, Android, ITC TTA Journal No.130 81