지도와 내 위치는 어떻게 표시될까? GPS,지오코딩,지도 API

4 분 소요

지도 앱을 켜면 내가 있는 곳이 파란 점으로 표시되고, 주소를 검색하면 그 위치에 핀이 꽂힙니다. 배달 앱은 내 근처 가게를 알아서 보여 줍니다. 너무 당연해 보이지만, 그 뒤에는 내 위치를 알아내고 주소와 지도를 잇는 여러 단계가 숨어 있습니다.

이번 글에서는 내 위치가 어떻게 파악되고, 주소와 지도가 어떻게 연결되며, 서비스가 지도를 어떻게 화면에 띄우는지를 코드 없이 풀어 보겠습니다.

내 위치는 여러 신호를 합쳐 알아냅니다 #

위치를 알아내는 가장 익숙한 방법은 GPS입니다. 하늘에 떠 있는 여러 위성이 보내는 신호를 받아, 내가 지구 어디쯤에 있는지를 계산합니다. 여러 위성과의 거리를 맞춰 보며 위치를 좁혀 가는 방식입니다.

하지만 GPS만으로는 부족할 때가 많습니다. 건물 안이나 지하에서는 위성 신호가 약해지기 때문입니다. 그래서 기기는 주변 와이파이나 휴대전화 기지국 정보까지 함께 활용합니다. 여러 단서를 합쳐 가장 그럴듯한 위치를 추정하는 것입니다. 실내에서도 대략의 위치가 잡히는 이유가 여기 있습니다.

주소와 좌표는 서로 번역됩니다 #

지도가 다루는 위치는 사실 위도와 경도라는 숫자 한 쌍입니다. 사람은 서울시 강남구 어디라는 주소로 위치를 말하지만, 지도는 숫자 좌표로 위치를 다룹니다. 그래서 둘 사이를 옮겨 주는 번역이 필요합니다.

주소를 좌표로 바꾸는 일을 지오코딩이라고 부릅니다. 주소를 검색하면 그 지점에 핀이 정확히 꽂히는 것은, 주소가 좌표로 번역됐기 때문입니다. 반대로 좌표를 주소로 되돌리는 번역도 있습니다. 지도에서 아무 곳이나 길게 누르면 그곳의 주소가 뜨는 것이 그 예입니다.

지도는 남이 만든 것을 가져다 씁니다 #

서비스가 지도를 직접 그리는 일은 거의 없습니다. 전 세계 길과 건물을 일일이 그려 넣고 최신으로 유지하는 것은 한 회사가 감당하기 어려운 일이기 때문입니다. 그래서 대부분은 구글 지도나 카카오 지도처럼 이미 잘 만들어진 지도를 가져다 씁니다.

이때 쓰는 통로가 지도 API입니다. 앞서 API가 서비스끼리 정해진 방식으로 기능을 주고받는 약속이라고 했습니다. 지도 API도 마찬가지여서, 이 좌표를 중심으로 지도를 보여 달라거나 여기에 핀을 찍어 달라는 요청을 지도 회사에 보내고 그 결과를 화면에 얹는 것입니다. 덕분에 작은 서비스도 세계 지도를 손쉽게 띄울 수 있습니다.

위치는 민감한 개인정보입니다 #

위치는 단순한 좌표를 넘어, 그 사람이 언제 어디에 있었는지를 드러내는 민감한 정보입니다. 위치 기록이 쌓이면 집과 직장, 자주 가는 곳, 생활 패턴까지 그려집니다. 그래서 앱이 위치를 쓰기 전에 사용자에게 권한을 묻고, 허락한 동안에만 쓰도록 되어 있습니다.

서비스를 만드는 쪽도 위치 데이터를 다룰 때 특히 조심해야 합니다. 앞서 데이터와 지표를 다룰 때처럼, 꼭 필요한 만큼만 모으고 목적에 맞게만 쓰는 원칙이 위치에서는 더욱 중요합니다. 한 번 새어 나가면 되돌리기 어려운 정보이기 때문입니다.

그래서 위치 기능을 쓸 때 #

위치를 쓰는 기능을 만들거나 기획할 때는 몇 가지를 함께 봐야 합니다. 먼저 사용자가 권한을 왜 허락해야 하는지 분명히 설명하는 것이 좋습니다. 또 위치에는 늘 오차가 있어, 실내나 도심에서는 수십 미터씩 어긋날 수 있다는 점도 감안해야 합니다.

비용도 빼놓을 수 없습니다. 지도 API는 일정 사용량을 넘으면 요금이 붙는 경우가 많습니다. 지도를 얼마나 자주 불러오는지가 곧 비용으로 이어지므로, 처음부터 사용량을 염두에 두는 편이 좋습니다.

왜 비개발자가 알면 일이 편해지는가 #

  • 권한 요청을 설명합니다. 앱이 위치 권한을 왜 묻는지, 거부하면 어떤 기능이 제한되는지 사용자에게 분명히 안내할 수 있습니다.
  • 정확도 한계를 압니다. 위치에 오차가 있다는 점을 알면, 내 위치가 살짝 어긋난다는 문의에 차분히 답할 수 있습니다.
  • 비용을 미리 봅니다. 지도 API에 요금이 따른다는 점을 알면, 지도를 많이 쓰는 기능을 기획할 때 비용까지 함께 가늠할 수 있습니다.

마무리 #

오늘은 내 위치가 GPS와 와이파이 같은 여러 신호로 파악되고, 주소와 좌표가 지오코딩으로 서로 번역되며, 서비스가 지도 API로 남이 만든 지도를 가져다 쓴다는 흐름을 살펴봤습니다. 위치가 민감한 개인정보라는 점도 잊지 않아야 할 부분입니다.

지도를 가져다 쓰는 통로인 API가 궁금하다면 API란 무엇인가를, 위치 같은 데이터를 어떻게 모으고 다루는지 궁금하다면 서비스 데이터와 로그는 어떻게 분석할까를 함께 읽어 보시길 권합니다.

X