발표는 보시는 바와 같은 순서로 진행하도록 하고, 마지막으로 Q&A 시간을 갖도록 하겠습니다.
이미 GPS 기술을 사용한 서비스는 일상생활이 되었습니다. 하지만 위성통신을 이용한
GPS 기술은 야외에서만 가능하다는 단점을 가지고 있습니다.
그래서 저희는 최근에 개발된 Bluetooth 4.0 Beacon 모듈과 Fingerprint라는 알고리즘을
이용하여 실내에서도 위치정보를 알려줄 수 있는 서비스를 제공하고자 기획하였습니다.
이러한 단점을 보완해서 실내에서도 위치정보를 제공할 수 있다면 사람들의
삶의 질을 더 향상 시킬 수 있을 것이라고 생각했습니다.
또한 인식된 실내 위치정보를 활용하여 실시간 위치표시, 시간별 위치 타임라인, 공간 점유율, 히트맵,
네비게이션등 다양한 방식으로 보여줄 수 있는 서비스를 개발할 계획입니다.
다음은 어떻게 Beacon을 사용하여 실내위치를 알아낼 수 있는지 알고리즘에 대해 설명 드리겠습니다.
저희가 사용할 알고리즘은 Fingerprint 알고리즘입니다.
먼저 앞에 보시면 두가지 단계로 나뉩니다.
첫번째는 Training 단계로써 먼저 실내위치를 서비스할 공간을 좌표에 따른 신호세기로 매핑을 하게됩니다.
그 다음은 Positioning 단계로써 실제로 안드로이드 클라이언트가 매핑된 좌표를 지나가게 되면
그 시점의 신호세기를 매핑된 신호세기와 유클리디안 거리법을 통해 비교해서
그 값이 작게 나올 수록 해당 지점으로 유추할 수 있다는 알고리즘입니다.
이해를 돕기 위해 실제로 멤버십 6층을 24 by 14로 분할 하고 Beacon 모듈을 설치한
건물 단면도 입니다.
다시 설명드리면 먼저 각 좌표별로 신호세기를 측정하고 데이터베이스에 스키마로 짜서 수집해놓습니다
그후 클라이언트가 지나갈때 분석된 신호세기를 기존에 매핑된 신호세기와 유클리디안 거리법으로
확인하는 방식이며
여기서 더 정확도를 높이기 위해 주변 좌표가 멀리있는 좌표보다 가중치를 더 높이는 알고리즘을
추가할 생각입니다.
이해를 돕기 위해 실제로 멤버십 6층을 24 by 14로 분할 하고 Beacon 모듈을 설치한
건물 단면도 입니다.
다시 설명드리면 먼저 각 좌표별로 신호세기를 측정하고 데이터베이스에 스키마로 짜서 수집해놓습니다
그후 클라이언트가 지나갈때 분석된 신호세기를 기존에 매핑된 신호세기와 유클리디안 거리법으로
확인하는 방식이며
여기서 더 정확도를 높이기 위해 주변 좌표가 멀리있는 좌표보다 가중치를 더 높이는 알고리즘을
추가할 생각입니다.
이해를 돕기 위해 실제로 멤버십 6층을 24 by 14로 분할 하고 Beacon 모듈을 설치한
건물 단면도 입니다.
다시 설명드리면 먼저 각 좌표별로 신호세기를 측정하고 데이터베이스에 스키마로 짜서 수집해놓습니다
그후 클라이언트가 지나갈때 분석된 신호세기를 기존에 매핑된 신호세기와 유클리디안 거리법으로
확인하는 방식이며
여기서 더 정확도를 높이기 위해 주변 좌표가 멀리있는 좌표보다 가중치를 더 높이는 알고리즘을
추가할 생각입니다.
다음은 시스템 설계구조에 대해 말씀드리겠습니다. 먼저 저희 프로젝트를 설계하면서
가장 주안점으로 두었던 점이 있습니다. 그것은 바로 서버의 과부하입니다.
단순 계산을 해보니 저희 서비스는 특성상 클라이언트가 초단위로 현재위치의 RSSI신호를
서버로 보내고 이것을 연산해서 웹서비스에서 시각화하여 보여주는데 많은 트래픽이 소요되었습니다.
더군다나 이용자 1000명, 10000명이 넘어가면 기하급수적으로 트래픽이 증가되는 것을 예상할 수
있습니다.
그래서 서버의 과부하를 최소화 시켜줘야 했기에 두가지 방법으로 서비스를 안정화시킬 수 있도록 설계하였습니다.
첫번쨰는 3계층 구조로 중간에 중계 서버를 두어 알고리즘을 통한 연산을 이곳에서 하여
웹서비스로는 클라이언트 맥주소와 좌표값만 Json형식으로 넘겨줍니다 이방식을 통해
연산을 줄일 수 있게 도와줍니다.
두번째는 그래도 근본적인 트래픽 발생을 처리할 수 없기에
저희는 웹서버를 Amazon Web Service를 사용할 생각입니다.
Amazon Web Service를 간단히 설명하면 일반적인 웹 호스팅 업체와 비슷합니다.
웹서버로 사용할 수 있는 PC를 대여해주는 업체입니다 다만 차이점이 있다면 우리가 일반적으로
PC 1대를 웹서버로 사용하면 트래픽이 발생하고 그에 대응되는 CPU와 메모리를 할당하게 됩니다
그런데 트래빅이 많이 발생하여 초과하게 된다면 웹서버는 터지고 응답없음의 에러 메시지를 Response하게 될겁니다.
하지만 AWS는 클라우드 방식으로 가상서버를 생성하고 소멸 시킬 수 있습니다 이 방식을 통해
설계도를 보시면 EC2가 한대의 PC라고 생각하시면 됩니다. 트래픽이 작게 발생했을때는 EC2한대로
S3, RDS와 같은 자원을 사용하다가 과다한 트래픽이 발생하면 앞에 보이시는 ELB Cloud Watcher가 웹서버의 상태를 확인하고 자동으로 Auto Scaling해줌으로써 서버가 터지지않고 트래픽을 처리할 수 있게 도와줍니다.
실제로 현재 프리티어 계정은 1년간 무료이므로 EC2 웹서버를 구축해놓은 상태입니다.
Amazon Web Service를 간단히 설명하면 일반적인 웹 호스팅 업체와 비슷합니다.
웹서버로 사용할 수 있는 PC를 대여해주는 업체입니다 다만 차이점이 있다면 우리가 일반적으로
PC 1대를 웹서버로 사용하면 트래픽이 발생하고 그에 대응되는 CPU와 메모리를 할당하게 됩니다
그런데 트래빅이 많이 발생하여 초과하게 된다면 웹서버는 터지고 응답없음의 에러 메시지를 Response하게 될겁니다.
하지만 AWS는 클라우드 방식으로 가상서버를 생성하고 소멸 시킬 수 있습니다 이 방식을 통해
설계도를 보시면 EC2가 한대의 PC라고 생각하시면 됩니다. 트래픽이 작게 발생했을때는 EC2한대로
S3, RDS와 같은 자원을 사용하다가 과다한 트래픽이 발생하면 앞에 보이시는 ELB Cloud Watcher가 웹서버의 상태를 확인하고 자동으로 Auto Scaling해줌으로써 서버가 터지지않고 트래픽을 처리할 수 있게 도와줍니다.
실제로 현재 프리티어 계정은 1년간 무료이므로 EC2 웹서버를 구축해놓은 상태입니다.
Amazon Web Service를 간단히 설명하면 일반적인 웹 호스팅 업체와 비슷합니다.
웹서버로 사용할 수 있는 PC를 대여해주는 업체입니다 다만 차이점이 있다면 우리가 일반적으로
PC 1대를 웹서버로 사용하면 트래픽이 발생하고 그에 대응되는 CPU와 메모리를 할당하게 됩니다
그런데 트래빅이 많이 발생하여 초과하게 된다면 웹서버는 터지고 응답없음의 에러 메시지를 Response하게 될겁니다.
하지만 AWS는 클라우드 방식으로 가상서버를 생성하고 소멸 시킬 수 있습니다 이 방식을 통해
설계도를 보시면 EC2가 한대의 PC라고 생각하시면 됩니다. 트래픽이 작게 발생했을때는 EC2한대로
S3, RDS와 같은 자원을 사용하다가 과다한 트래픽이 발생하면 앞에 보이시는 ELB Cloud Watcher가 웹서버의 상태를 확인하고 자동으로 Auto Scaling해줌으로써 서버가 터지지않고 트래픽을 처리할 수 있게 도와줍니다.
실제로 현재 프리티어 계정은 1년간 무료이므로 EC2 웹서버를 구축해놓은 상태입니다.
다음 웹서비스 시나리오입니다.
기본적으로 회원가입과 로그인이 있으며 좌측 사이드에 탭을 위치시킬 생각입니다.
실시간 GPS에서는 실제로 실내 지도안에서 이동중인 사람을 실시간으로 위치를 확인할 수 있도록
할 생각입니다.
안드로이드 시나리오는 오른쪽 UI와 같이 상단에 길찾기 서비스,
중간에 실내위치 지도를 표시할 생각입니다.
다음은 스케쥴 표입니다. 프로젝트가 진행될 2달 동안
저는 전체적인 시스템 설계와 웹서비스 구축을 맡고, 김원열 회원은 맵 매핑과 실내 위치 알고리즘을
맡을 예정이고 천민재 회원을 중계 API Nodejs 서버를 설계 구축할 생각입니다
이상헌 회원은 안드로이드 클라이언트 어플을 개발할 것입니다.
다음은 스케쥴 표입니다. 프로젝트가 진행될 2달 동안
저는 전체적인 시스템 설계와 웹서비스 구축을 맡고, 김원열 회원은 맵 매핑과 실내 위치 알고리즘을
맡을 예정이고 천민재 회원을 중계 API Nodejs 서버를 설계 구축할 생각입니다
이상헌 회원은 안드로이드 클라이언트 어플을 개발할 것입니다.