위도와 경도는 지구상의 모든 지점을 정의하는 두 숫자입니다. 위도는 얼마나 북쪽 또는 남쪽에 있는지, 경도는 얼마나 동쪽 또는 서쪽에 있는지를 알려줘요. 이 좌표 쌍은 지도, GPS 기기, 지오코딩 API, AI 어시스턴트 모두가 이해할 수 있는 공통 언어입니다.
대부분의 개발자는 버그가 생기기 전까지 좌표를 크게 신경 쓰지 않습니다. 이 가이드는 각각의 값이 실제로 무엇을 측정하는지, 실무에서 만나는 형식 규칙, 그리고 가장 많은 지도 버그를 유발하는 swap 실수를 설명합니다.
위도가 측정하는 것
위도는 지구 표면의 한 점과 적도면 사이의 각도(도 단위)입니다. 적도가 0도, 북극이 +90도, 남극이 -90도예요. 위선은 지구를 수평으로 감싸며 어디서나 같은 간격을 유지합니다.
위도 1도는 위치에 상관없이 항상 약 111km에 해당해요. 이 안정성 덕분에 위도는 항공 계획부터 기후 과학까지 다양한 분야에서 활용됩니다.
경도가 측정하는 것
경도는 특정 지점과 본초 자오선, 즉 런던 그리니치를 지나는 경도 0도 선 사이의 각도입니다. 경도는 -180도(서쪽)에서 +180도(동쪽)까지 이어지며, 두 값이 만나는 지점이 국제 날짜 변경선을 이루는 반대쪽 자오선입니다.
위도와 달리, 경도 1도가 커버하는 실제 거리는 위치에 따라 달라요. 적도에서 경도 1도는 약 111km지만, 헬싱키에서는 약 56km, 극점에서는 0으로 줄어듭니다. 모든 경선이 그곳에서 수렴하기 때문이에요.
이 수렴 현상이 평면 지도에서 장거리 또는 극지방 근처 경로의 거리 계산을 망가뜨리는 이유입니다. 정확한 거리 계산에는 지구의 곡률을 고려하는 haversine 공식이나 vincenty 공식이 필요합니다.
유명한 Swap 실수 (그리고 피하는 방법)
프로덕션 지오스패셜 코드에서 가장 흔한 실수는 위도와 경도를 바꾸는 것입니다. 형식마다 규칙이 다르기 때문이에요:
- 사람이 읽는 형식, 주소, GPS 앱: 위도 먼저.
48.8584, 2.2945는 위도 48.8584, 경도 2.2945를 의미합니다. - GeoJSON, WKT, 대부분의 지오스패셜 표준: 경도 먼저.
[2.2945, 48.8584]가 동일한 지점입니다. - MapAtlas Geocoding API 및 대부분의 "v1" REST API: JSON 키에서는 위도 먼저(
lat,lng)이지만, 엔드포인트 문서를 반드시 확인하세요.
GeoJSON에서 피처를 꺼내서 [lat, lng]를 기대하는 지도 라이브러리에 넘기면 swap이 필요합니다. 잊어버리면 포인트가 엉뚱한 반구에 찍히고, 왜 "파리"가 아프리카 해안 어딘가에 나타나는지 며칠 동안 디버깅하게 됩니다.
방어적인 규칙: 좌표를 받는 함수에서 매개변수 이름을 명시적으로 지정하세요. function distance(latA, lngA, latB, lngB)는 function distance(a, b) (여기서 a, b가 모호한 배열)보다 오용하기 어렵습니다.
십진수 도 vs DMS
코드에서 가장 자주 볼 형식은 십진수 도(DD): 48.8584, 2.2945입니다. 모든 현대 API와 라이브러리가 이 형식을 기대해요.
도-분-초(DMS) 형식도 가끔 만납니다: 48 deg 51' 30" N, 2 deg 17' 40" E. DMS는 옛날 항해 및 항공 전통에서 온 것이고, 공식 종이 지도나 일부 하드웨어 GPS 기기에서 여전히 사용됩니다. DMS를 DD로 변환하는 것은 간단합니다: DD = degrees + (minutes / 60) + (seconds / 3600), 남쪽 또는 서쪽은 음수 처리.
저장 용도로는 소수점 5~6자리 십진수 도면 모든 현실적인 사용 사례를 커버합니다. 6자리 이상은 실제 GPS 기기가 cm 정확도를 거의 보장하지 않기 때문에 정밀도 극장에 불과합니다.
정밀도는 몇 자리가 필요할까?
위도 또는 경도의 각 소수점 자리는 위치를 약 10배씩 정밀하게 합니다:
- 0자리 (
48): 약 111km, 국가 수준 - 1자리 (
48.8): 약 11km, 도시 수준 - 2자리 (
48.86): 약 1.1km, 동네 수준 - 3자리 (
48.858): 약 110m, 거리 수준 - 4자리 (
48.8584): 약 11m, 건물 수준 - 5자리 (
48.85844): 약 1m, 현관문 수준 - 6자리 (
48.858445): 약 11cm, GPS 한계 - 7자리 이상: 실제 GPS 정확도를 초과하는 허위 정밀도
하는 일에 맞는 정밀도를 선택하세요. "이 동네로 배달"이라는 사용 사례에 소수점 8자리를 저장하는 건 낭비이고, 사용자에게 잘못된 정확성 인상을 줍니다.
좌표와 지도 투영
좌표 값 자체는 지구 표면의 각도 측정값이지만, 화면은 평평합니다. 모든 지도 투영은 위도와 경도를 디스플레이용 픽셀 x,y로 변환하는 수학 함수입니다.
Web Mercator(EPSG:3857)는 Google Maps, OpenStreetMap, 거의 모든 인터랙티브 웹 지도에서 사용하는 투영입니다. 형태와 방향은 보존하지만 면적을 왜곡합니다. 그린란드가 아프리카만큼 크게 보이지만, 실제로는 14배 작아요. 프로덕션 지도에서 이 왜곡은 사용자가 장소를 인식할 수 있는 한 크게 문제가 안 됩니다. 하지만 면적을 비교하는 주제도(인구, 선거 결과, 기후)에서는 등면적 투영을 사용하세요.
저장하는 좌표값은 항상 WGS84 위도/경도입니다. 투영은 렌더링 시점에 적용됩니다. 데이터베이스에서 투영 공간 좌표와 WGS84 좌표를 혼용하는 것도 고전적인 버그 원인입니다.
좌표 저장 및 인덱싱
대부분의 데이터베이스에서 위도와 경도를 두 개의 숫자 컬럼(또는 PostGIS 사용 시 geometry(point, 4326))으로 저장하세요. 바운딩 박스 내 포인트 조회에는 각 컬럼에 B-tree 인덱스면 충분합니다. "최근접 이웃" 쿼리에는 공간 인덱스가 필요합니다: PostGIS GIST, MySQL SPATIAL, 또는 geohash 버킷.
문자열로 저장("48.8584,2.2945")하면 필터링, 정렬, 거리 계산이 필요한 순간 골치 아파집니다. 그렇게 하지 마세요.
AI 어시스턴트가 좌표를 활용하는 방법
ChatGPT, Perplexity, Gemini 같은 현대 AI 어시스턴트는 인간 애플리케이션과 동일한 방식으로 좌표를 통해 장소를 이해합니다. 사용자가 "근처 카페 찾아줘"라고 하면, 어시스턴트는 사용자 위치를 좌표로 변환하고, 장소 API를 조회한 뒤 haversine 거리로 결과를 정렬합니다. 구조화된 데이터(JSON-LD geo 속성, GeoCoordinates 스키마)에 좌표를 올바르게 태깅하면 AI 어시스턴트가 더 모호한 위치 데이터를 가진 경쟁자보다 여러분의 리스팅을 먼저 선택하도록 도울 수 있습니다.
여러 도시에 걸친 리스팅이라면, 좌표가 모호함을 해소하는 기준이 됩니다. "파리"는 프랑스와 텍사스 둘 다에 있지만, 좌표는 하나입니다.
MapAtlas를 사용하는 이유
MapAtlas는 AI 검색 시대를 위해 만들어진 유럽 매핑 플랫폼입니다. 모든 지오코드, 역지오코딩, 등시선, 라우팅 호출은 일관된 순서의 깔끔한 WGS84 좌표와 함께 GDPR 준수 및 EU 호스팅을 제공합니다. 좌표 조회 도구로 주소를 즉시 위도/경도로 변환해보거나, 지오코딩 API가 프로덕션에서 어떻게 작동하는지 깊이 이해하려면 지오코드란 무엇인가 가이드를 읽어보세요.
자주 묻는 질문
경도와 위도의 차이는 무엇인가요?
위도는 지구 표면에서 남북 위치를 나타내는 각도로, 남극이 -90도, 북극이 +90도입니다. 경도는 동서 위치를 나타내며 -180도에서 +180도 범위이고, 0도는 그리니치 자오선입니다. 위도선(위선)은 수평으로 평행하게 이어지고, 경도선(경선)은 수직으로 이어지며 극점에서 수렴합니다. 이 두 숫자의 조합으로 지구상의 모든 위치를 고유하게 특정할 수 있습니다.
경도와 위도 중 어느 것이 먼저 오나요?
형식에 따라 다릅니다. 사람이 읽는 형식(Google Maps, GPS 앱, 주소)에서는 위도가 먼저 옵니다: 48.8584, 2.2945는 위도 48.8584, 경도 2.2945를 의미합니다. GeoJSON 등 머신 친화적 형식에서는 경도가 먼저 옵니다: [2.2945, 48.8584]. 이 순서 차이가 프로덕션에서 가장 흔한 지도 버그의 원인입니다. 사용하는 형식의 규칙을 항상 확인하세요.
GPS 좌표는 얼마나 정확한가요?
소수점 6자리 정밀도(예: 48.858444)는 적도에서 약 11cm 정확도를 의미해요. 5자리(48.85844)는 약 1m, 4자리(48.8584)는 약 11m 정도로 거리 수준 지도에는 충분합니다. 대부분의 프로덕션 사용 사례에서 6자리는 과잉이고 5자리로 충분해요. 필요 이상의 정밀도는 저장 낭비이고 잘못된 신뢰감을 줄 수 있습니다.
왜 경도선은 극점에서 수렴하나요?
위선은 지구의 축을 기준으로 모두 평행합니다. 반면 경선은 북극과 남극을 모두 통과하는 대원(great circle)이에요. 극점으로 갈수록 두 경도값 사이의 동서 거리가 줄어들고, 적도에서 경도 1도는 약 111km이지만 극점에서는 0으로 수렴합니다. 이 때문에 평면 좌표로 단순 거리 계산을 하면 고위도에서 오류가 생기고, 정확한 거리 계산에는 haversine 공식이나 vincenty 공식이 필요합니다.

