DOI QR코드

DOI QR Code

Implementation of a Location-Based SNS System Using AR

증강현실을 이용한 위치기반 SNS 시스템 구현

  • 김경섭 (한국산업기술대학교 컴퓨터공학부) ;
  • 박영철 (한국산업기술대학교 컴퓨터공학부) ;
  • 엄찬진 (한국산업기술대학교 컴퓨터공학부) ;
  • 이윤복 (한국산업기술대학교 컴퓨터공학부) ;
  • 이상호 (한국산업기술대학교 컴퓨터공학부)
  • Received : 2019.09.17
  • Accepted : 2019.12.06
  • Published : 2019.12.31

Abstract

Recently, SNS is one of the most prominent areas and AR is a technology in the spotlight. In this paper, AR technology is applied to SNS to provide community functions and we develop the related technologies. The system developed in this paper provides differentiated communication among users by providing community functions applying location information and AR such as displaying AR message and finding a path using AR in current location. In addition, this paper presents a method of using the existing map APIs considering their characteristics as a method to obtain map information essential for the implementation of location-based AR.

현대 사회에서 급부상한 분야의 대표적인 하나가 SNS이고, 최근 각광을 받고 있는 기술이 AR 기술이다. 본 논문에서는 SNS에 AR기술을 접목하여, 새로운 형태의 커뮤니티 기능을 제공하고 관련 기술을 개발하고자 한다. 본 논문에서 개발한 시스템은 현재 위치에서 AR 메시지 띄우기, AR을 이용한 길 찾기 등 위치정보와 AR을 응용한 커뮤니티 기능들을 제공하여 사용자들간의 차별화된 소통을 제공한다. 뿐만 아니라, 본 논문은 위치 정보 기반 증강현실 구현을 위해 필수적인 지도정보를 얻기 위한 방법으로 기존 지도 API의 특성을 고려하여 기존 지도 API 활용 방법을 제시한다.

Keywords

Ⅰ. 서론

최근 글로벌 ICT(정보통신기술) 산업의 성장둔화에 맞서 산업의 위기를 극복하고, 지속적인 성장을 위한 키워드로 전 세계가 AR 산업에 주목하고 있다[1]. 증강현실(Augmented Reality; AR)[10] 기술은 향후 ICT 시장을 혁신할 수 있는 핵심 기술 분야로 기존 ICT 시장을 크게 변화시키고 신규시장을 창출할 수 있는 파괴적 기술[1]로서 인식되고 있다. 이러한 AR 관련 기술 및 서비스, 콘텐츠 시연 등의 관심이 높아짐에 주목하여 본 논문에서는 AR기능을 활용한 SNS 시스템을 구현하고자 한다.

최근 화제가 된 ‘포켓몬고’라는 게임이 인기를 끌 수 있었던 이유 또한 가상의 콘텐츠인 몬스터를 현실에서 만날 수 있다는 AR 기술의 적용에서 비롯된 것이라고 할 수 있다. ‘포켓몬고’ 출시 이후 인기가 많아진 AR 기술들은 지속적으로 많은 프로그램들의 출시를 야기했다[2,11]. 이에 맞춰 구글, 애플 등의 글로벌 기업에서는 증강현실과 관련된 플랫폼을 앞 다투어 개발하여 내놓고 있는 상황이다. 본 논문에서는 구글이 개발자들로 하여금 안드로이드 스마트폰에서 이용할 수 있도록 제공하는 개발도구인 AR 코어를 활용하여 AR기술을 접목한 위치기반 SNS를 개발하고자 한다.

본 논문에서 개발할 시스템은 사용자들 간의 소통, 공감 등과 같이 기존 SNS의 기본적인 서비스를 제공할 뿐 아니라 위치에 기반 한 소통 환경을 제공하여 온/오프라인 소통을 보다 쉽게 할 수 있도록 한다. 또한, AR을 통해 사용자에게 좀 더 직관적인 소통이 가능하도록 한다.

본 논문의 구성은 다음과 같다. 2장에서 기존 위치기반 SNS와 AR길 안내 애플리케이션 현황과 위치기반 기술, 서버 관련 기술과 AR 관련 기술에 관하여 기술하고, 3장에서 논문에서 개발할 앱과 서버의 시스템 설계에 관하여 논한다. 4장에서는 개발할 앱과 서버의 구현에 관련된 사항에 관해 기술하고, 마지막으로 5장에서 결론을 맺는다. 

Ⅱ. 관련 연구

본 장에서는 AR을 이용한 기존 시스템과 위치기반 SNS 시스템에 관해서 논하고, 본 논문에서 활용할 서버 관련 기술인 파이어베이스(Firebase)와 AR 관련 기술인 AR 코어에 관해 기술한다.

1. AR을 이용한 기존 길안내 시스템

본 논문에서 개발하고자 하는 AR을 이용한 길안내 시스템과 유사한 시스템으로 트레리티[3], AR city[4]가 있다. 이들은 기존 길안내 시스템들과는 다르게 AR을 이용하여 사용자에게 길안내 정보를 제공한다는 점에서 차이가 있다. 기존 길안내 시스템은 평면지도에 사용자의 위치를 표시해주기 때문에 사용자가 직접 지도를 참고해가면서 자신의 위치를 파악하고 길을 찾아야 하는 부담이 있었다. 하지만 트레리티와 AR city는 전적으로 사용자 시점에서 길안내가 이루어지기 때문에 사용자는 보다 쉬운 길안내 서비스를 제공받을 수 있다. 사용자가 사용하는 디바이스 카메라 화면에 목적지까지의 경로를 표시해주므로 사용자는 단지 카메라 화면을 보면서 목적지까지 향할 수 있다. 또한 AR city는 우측 하단에 평면지도를 포함하고 있어 사용자가 좀 더 정확한 정보를 참고할 수 있게 했다.

2. 위치기반 SNS

위치기반 SNS[3]는 위성항법장치(이하 GPS)를 통해 이용자의 위치를 다른 이용자에게 알려주고 관련 정보를 공유할 수 있도록 해주는 서비스이다. 기존 SNS가 온라인을 통해 인맥을 만들고 정보를 공유하는 SNS라고 한다면, 위치기반 SNS는 이용자가 다른 이용자에게 자신의 위치를 공개하고 소통한다는 데서 차이가 있다고 할 수 있다.

대부분의 위치기반 SNS는 ‘체크인’이라는 기능을 사용한다. 한 이용자가 다른 이용자에게 자신의 위치를 알리는, 즉 특정 위치에 방문했다는 기록을 남기는 것을 체크인이라고 하는데, 체크인이 되면 화면에 이용자의 위치가 표시된다. 본 논문에서는 위치기반 SNS의 체크인 기능을 채택하고 그것에 AR기능을 접목시켜 사용자로 하여금 흥미를 유발시키고 색다른 소통의 재미를 제공하고자 해당 기술을 도입하게 되었다.

3. 파이어베이스(Firebase)

파이어베이스(Firebase)[5]는 2011년 Firebase (Firebase, Inc)사가 개발하고 2014년 구글에 인수된 모바일 및 웹 애플리케이션 개발 플랫폼이다. 

파이어베이스는 모바일 서버 개발에 필요한 인증, 데이터베이스, 스토리지, 푸시 알람, 원격 구성, 애드워즈(광고), 클라우드 기능을 제공한다. 과거에는 개발에 필요한 각 기능들을 모두 다른 환경에서 구현하여야 했기에 반복적인 작업에 따른 개발의 효율이 매우 떨어졌으나 파이어베이스는 모든 플랫폼을 프로젝트 구축 시 자동적으로 만들어주기 때문에 개발자의 부담을 줄여 준다. 본 논문에서는 서버 플랫폼으로 파이어베이스를 채택하여 보다 효율적인 앱 개발을 진행하였다.

4. AR 코어

본 논문에서 AR기능을 구현하기 위하여 유니티(Unity) 환경에서 구글이 제공하는 ARCore SDK for Unity[6]를 채택했다. ARCore SDK는 모션 추적, 환경 이해 및 광 추적과 같은 필수 AR 기능에 대한 기본 API를 개발자들에게 제공한다. 따라서 본 논문에서는 AR로 표현하고자 하는 기능들을 ARCore SDK의 API를 이용하여 구현했다.

5. 지도 API

구글의 지도 API에서 제공하는 POI (Position Of Interesting; 관심지역정보) 정보와 길 안내 정보는 국가에서 제공하는 지도 정보에 제한이 있어 정확하지 않다는 문제점이 있다. 따라서 본 논문에서는 보다 정확한 정보를 채택하기 위해 POI정보는 Naver map API를 사용하였고 길 안내 정보는 T map API를 사용하였다.

Ⅲ. 시스템 설계

본 논문에서 구현한 시스템은 그림1과 같이 클라이언트(사용자), 서버 그리고 데이터베이스로 구성되어 있다. 서버와 데이터베이스는 파이어베이스를 사용함으로써 통합된 상태로 운영한다.

OTNBBE_2019_v19n6_133_f0001.png 이미지

그림 1. 시스템 구성도

Fig. 1. System Architecture

서버는 저장된 정보를 간단한 질의어를 사용하여 클라이언트로부터의 계정 정보, 게시된 사진, 채팅기록, AR 메시지 리스트, 현재 및 목적지 위치좌표 등 많은 요청을 처리한다. 

이를 위해 서버는 파이어베이스의 Cloud DB와 Realtime DB를 사용한다. Cloud DB는 서버에 정보를 저장하고 저장한 것을 활용하는데 최적화된 데이터베이스이다. Cloud DB는 지원하는 질의어가 많고 직관적이기 때문에 SNS 서비스를 제공하는데 적합하다고 판단하였다. Realtime DB는 클라이언트/서버 간의 실시간 상호작용 환경에 최적화된 데이터베이스이다. 따라서 채팅 모듈이 실시간 상태에서 동기화가 필수적이기 때문에 지연 시간이 짧은 Realtime DB를 채택하였다.

클라이언트는 서버에 저장된 SNS모듈 그리고 채팅 모듈의 데이터를 수신하여 사용자에게 증강현실 기능을 통해 정보를 제공한다.

증강현실은 유니티를 이용해 개발하며 데이터베이스의 데이터들을 이용하여 사용자들에게 시각적으로 다양한 정보들을 제공한다. 증강현실에서는 사용자가 현 위치에 AR 메시지를 남길 수 있고 실시간으로 다른 사람이 남기고 간 메시지를 확인할 수 있으며 원하는 내용으로 AR 메시지를 직접 작성할 수 있다. AR 메시지가 정확하게 위치하도록 하기 위해 위도와 경도 데이터를 이용한다. 메시지들은 사용자의 현재 위도 경도와 메시지의 위도 경도 사이의 거리를 계산한 결과값을 이용하여 위치하게 된다.

본 논문에서는 증강현실을 내비게이션에도 적용한 AR 내비게이션을 제공한다. AR 내비게이션을 위해서는 해당 위칭에서의 주변정보와 길안내 정보가 필요하다. 본 논문에서는 그림 2와 같이 길안내 정보는 T map[7]을 사용하였고, 주변정보는 Naver map[8]을 사용하였다.

OTNBBE_2019_v19n6_133_f0002.png 이미지

그림 2. Map API와 AR core 관계도

Fig. 2. Relationship between Map API and AR core

Naver map에서는 보행자용 길안내 API를 공식적으로 지원하지 않고 Google map에서 제공하는  길안내 정보는 해외에 비해 정확성이 떨어지기 때문에[9] 본 논문에서는 길안내 정보를 T map에서 제공하는 보행자용 길안내 API를 이용하여 설계하였다.

보행자용 경로안내 정보를 받기 위해 출발지와 도착지를 WGS-84 좌표계 형식으로 요청을 전송하도록 설계하였다. T map측에서는 출발지에서 도착지로 이동하는데 경유하는 모든 지점의 좌표로 응답한다. 응답받은 좌표를 유니티의 AR 모듈에 전달하여 AR 모듈이 좌표에 게임 오브젝트를 띄우고 Line Renderer 기술로 게임 오브젝트를 연결함으로써 길안내가 가능하도록 설계하였다. 

본 논문에서는 제공되는 주변정보의 양, 정확도 등을 고려하여 Naver map API를 채택하였다. 다른 API들은 보유하는 정보의 양과 정확도가 떨어지거나 지원하지 않는 기능 등의 제약이 있기 때문이다.

Naver map API에서는 Resource URI 요청 파라미터로 현재 사용자의 위치에 관한 WGS-84 좌표계 정보와 요청한 좌표의 반경을 사용하였다. 그러면 해당 반경 안에 속해 있는 주변정보를 응답받을 수 있다. 응답받는 정보는 해당 시설의 좌표계, 상호명(혹은 명칭), 거리, 전화번호 등이 있으며 본 논문에서는 상호명과 좌표계, 거리 정보를 사용하였다.

클라이언트가 AR 기능을 지원하기 위해서는 모바일 디바이스에 ARCore가 설치되어야만 하고,  만약 설치되어 있지 않다면 AR 기능을 사용하기 전에 사용자에게 ARCore를 설치할 것을 요청하는 모듈을 시스템에 추가하였다.

Ⅳ. 시스템 구현

서버와 데이터베이스는 파이어베이스의 원격 클라우드 서버를 활용하여 구축하였고, 클라이언트는 서버가 제공하는 데이터를 기반으로 SNS의 주요 기능을 편리한 사용자 인터페이스로 제공한다.  

클라이언트의 메인 화면은 그림3과 같으며, 그림에서 보는 바와 같이 사용자가 자신과 팔로우된 사람들이 작성한 게시글을 실시간으로 확인할 수 있으며, 댓글과 좋아요 버튼을 클릭함으로써 자신의 팔로워들과 커뮤니케이션을 할 수 있다. 또한 사용자는 메인화면에서 원하는 기능을 클릭해 다양한 서비스를 제공 받을 수 있다. 그리고 사용자의 활동정보는 그림3과 같이 사용자가 게시한 게시물, 팔로워, 팔로잉수를 보여준다.

OTNBBE_2019_v19n6_133_f0003.png 이미지

그림 3. 앱 메인 화면과 계정 정보 화면

Fig. 3. App’s main screen and account information screen

그림4과 같이 채팅을 통해서 팔로워들과 실시간으로 의사소통이 가능하다. 1:1로 채팅이 가능할 뿐만 아니라, 두 명 이상의 친구들을 채팅방에 초대해 단체 채팅이 가능하다. 

OTNBBE_2019_v19n6_133_f0004.png 이미지

그림 4. 채팅 화면

Fig. 4. Chat screen

채팅에서는 단순한 대화뿐만 아니라, 목적지로의 길안내를 받을 수 있다. 길안내는 그림5와 같이 위치정보를 수신한 사용자가 화살표 버튼을 클릭하면 그림에서와 같은 AR 내비게이션 혹은 일반 내비게이션을 통해 사용자에게 제공된다. AR 내비게이션은 그림과 같이 파란색 라인과 AR 메시지를 통해 실시간으로 길안내를 하여 사용자가 쉽게 도착지에 도착할 수 있도록 한다.

OTNBBE_2019_v19n6_133_f0005.png 이미지

그림 5. 채팅과 길안내 화면

Fig. 5. Chatting and Directions screen

본 논문에서 개발한 시스템은 AR 메시지의 작성과 검색을 지원한다. 작성된 AR 메시지는 메시지의 텍스트, 사용자 식별 정보(UID), 현재 위치 그리고 좋아요 수로 구성되며 서버에 전송되어 저장된다.

AR 메시지의 검색은 특정 영역에서 발생한 AR 메시지를 검색하는 기능을 제공한다. 그림6과 같이 사용자가 직접 선택한 범위 내의 AR 메시지들의 정보인 내용, 지도상의 위치, 거리, 좋아요 수를 확인할 수 있다. 그리고 사용자는 자신이 관심이 있는 메시지를 선택하여 메시지 내용과 증강현실 내비게이션을 통해 길 안내를 받을 수 있다.

OTNBBE_2019_v19n6_133_f0006.png 이미지

그림 6. AR 메시지 화면

Fig. 6. AR message screen

사용자는 그림 7과 같이 자신의 주변 정보를 증강현실을 통해 시각적으로 확인할 수 있다. 본 논문은 Naver map API를 통해 제공 받은 주변 정보를 AR 모듈에 전달하여 좌표마다 게임 오브젝트를 생성함으로써 주변정보 안내 기능을 구현하였다. 사용자는 게임 오브젝트를 통해 시설의 이름, 위치, 그리고 현재 위치와의 거리에 관한 정보를 직관적으로 확인할 수 있다. 시스템에서 제공하는 주변 시설은 카페, 버스 정류장, 음식점, 편의점, 은행, 병원, 약국 및 숙박시설 등이며, 이는 그림의 메뉴 버튼을 클릭하여 선택할 수 있다.

OTNBBE_2019_v19n6_133_f0007.png 이미지

그림 7. AR 주변 정보 확인 화면

Fig. 7. AR peripheral information check screen

Ⅴ. 결론

SNS는 이미 우리 일상 속에서 빼놓을 수 없는 것들 중 하나이고, 증강현실(Augmented Reality; AR) 기술은 향후 ICT 시장을 혁신할 수 있는 4차 산업혁명 시대의 핵심 기술 분야로 기존 ICT 시장을 크게 변화시키고 신규시장을 창출할 수 있는 파괴적 기술[1]로서 인식되고 있다. 본 논문은 이 두 가지를 융합하여 별도의 하드웨어 없이도 사용자에게 흥미와 참신함을 줄 수 있는 SNS를 만들기 위하여 본 연구를 진행하였다.

본 논문은 증강현실과 위치 정보를 이용한 SNS 기능으로 이용자들의 흥미를 유발할 수 있도록 하였다. 또한 증강현실을 이용한 길안내 기능으로 일반 지도 길안내의 어려움을 해결하였고, 증강현실을 이용하여 보다 손쉽게 주변 정보 확인을 할 수 있도록 하였다. 

뿐만 아니라, 본 논문은 위치 정보 기반 증강현실 구현하기 위해 필수적인 지도정보를 얻기 위한 기존 map API 활용 방법을 제시하였다. Google map, Naver map, T map 등에서 제공하는 API의 특성을 고려하여 최적의 활용법을 제시하였다.

Acknowledgement

Supported by : 한국산업기술대학교

본 연구는 교신저자의 한국산업기술대학교 연구년 기간 동안 수행한 결과물임

References

  1. Hae-seok Kim, "Status and Prospects of VR/AR Industry," National IT Industry promotion Agency Fourth Industrial Revolution and Soft Power Issue Report, No. 2018-44, pp. 1-13, 2018.
  2. Myeong-Soo Jang, Woo-Beom Lee, "Implementation of Hand-Gesture Interface to manipulate a 3D Object of Augmented Reality," The Journal of The Institute of Internet, Broadcasting and Communication(JIIBC), Vol. 16, No. 4, pp. 117-123, 2016. DOI: https://doi.org/10.7236/jiibc.2016.16.4.117
  3. AR Pedestrian Service - Trelity URL: https://connect.unity.com/p/mwu-korea-2019-ar-bohaengjayong-gilannae-seobiseu-teureriti/
  4. AR City: Paving the Way for Augmented Reality Navigation URL: https://www.nextnature.net/2018/01/ar-city-augmented-reality-navigation/
  5. Google, Filebase API Documentation URL: https://firebase.google.com/docs/reference/android/
  6. Unity API Reference for ARCore URL: https://developers.google.com/ar/reference/unity/
  7. T map API for Android URL: http://tmapapi.sktelecom.com/main.html#android/guide/androidGui de.sample1
  8. NAVER map API Documentation URL: https://navermaps.github.io/maps.js/docs/
  9. Jae-seok Sim, "Korea can not work Google map, How can do overseas travelers use that?," Byline Network, 2016, URL:https://byline.network/2016/05/1-160/
  10. Jin-Young Lee and Jongho Kim, "Evaluation of Marker Images based on Analysis of Feature Points for Effective Augmented Reality," Journal of the Korea Academia-Industrial cooperation Socity, Vol. 20, Issue 9, pp. 49-55, 2019. DOI: https://doi.org/10.5762/KAIS.2019.20.9.49
  11. Ki-Hwan Ko,, "A Study on the Graphic Production Technology for AR Augmented Reality Game," The Journal of the Korean Institute of Information Technology, Vol. 16, No. 11, pp. 123-132, 2018. DOI: https://doi.org/10.14801/jkiit.2018.16.11.123