장소가 지도에 표시되는 원리
지도에 보이는 장소는 하나의 완벽한 목록에서 나오지 않습니다. 도로와 건물, 공개 장소 검색, 사용자의 개인 기록은 서로 다른 자료와 갱신 주기를 갖습니다. 개인의 지도는 이 자료를 한 화면에 합치되, 같은 장소의 중복을 줄이고 확대 수준에 맞춰 표시량을 조절합니다.
지도 화면은 여러 종류의 자료로 구성됩니다
기본 지도에는 도로, 건물 윤곽, 공원, 하천, 철도와 지하철 노선, 역 이름 같은 공간 정보가 포함됩니다. 이 자료는 사용자가 화면을 이동하거나 확대할 때 필요한 영역의 Vector Tile을 Browser가 받아 그립니다. 모든 지구 데이터를 한 번에 내려받는 방식이 아니므로 초기 Loading과 Network 사용량을 줄일 수 있습니다.
그 위에 음식점, 카페, 병원, 약국, 편의점과 같은 공개 장소가 회색 별로 표시됩니다. 일부 장소는 기본 지도 Tile의 POI에서 나오고, 일부는 Kakao Local API의 검색 결과와 이전 검색 결과를 저장한 Cache에서 옵니다. 사용자가 리뷰한 장소와 직접 등록한 장소는 별도의 개인 Layer에서 분홍색 별로 그립니다.
왜 모든 장소를 처음부터 전부 보여주지 않나요?
서울 도심처럼 작은 화면 안에 수천 개의 장소가 있는 지역에서 모든 별과 이름을 동시에 표시하면 지도 자체를 읽을 수 없게 됩니다. 별이 서로 겹치고, 장소 이름이 도로명과 건물명을 가리며, Browser의 Rendering 부담도 커집니다.
개인의 지도는 현재 확대 수준과 화면 Pixel 크기를 기준으로 공개 장소를 일정한 Grid에 나누고, 각 영역에서 우선순위가 높은 후보를 선택합니다. 멀리서 볼 때는 지하철역, 병원, 학교와 같은 주요 장소가 먼저 보이고, 동네 수준으로 확대하면 음식점·카페·상점이 늘어납니다. 골목 수준에서는 작은 시설과 이름 있는 건물까지 더 자세히 나타납니다.
이 표시 제한은 검색 Database에서 장소를 삭제하는 작업이 아닙니다. 화면에 보이지 않는 장소도 검색 결과로 찾거나, 더 가까이 확대했을 때 볼 수 있습니다. 개인 분홍색 별은 사용자의 기록을 놓치지 않도록 공개 장소 밀도 제한보다 높은 우선순위로 표시합니다.
같은 장소가 두 번 들어오면 어떻게 하나요?
서로 다른 제공자는 같은 장소를 약간 다른 이름과 좌표로 저장할 수 있습니다. 예를 들어 건물 전체 이름, 지점 이름, 영문 표기와 한글 표기가 각각 따로 존재할 수 있습니다. 개인의 지도는 공백과 기호를 정리한 이름, 제공자 ID와 좌표 간 거리를 비교해 가까운 중복 후보를 하나로 합치려 시도합니다.
개인 기록이 연결된 장소가 있다면 그 기록을 가장 우선합니다. Kakao의 장소 ID가 있는 장소와 기본 지도 POI가 겹치면 정보가 더 구체적인 쪽을 유지합니다. 다만 이름이 크게 다르거나 좌표가 멀리 떨어진 경우에는 서로 다른 장소로 판단할 수 있습니다. 대형 복합시설 안의 여러 점포처럼 실제로는 가까이 있지만 별개의 장소인 경우도 있으므로 지나치게 넓은 범위로 합치지 않습니다.
공개 장소 Cache가 필요한 이유
외부 장소 API를 사용자가 지도를 움직일 때마다 반복 호출하면 Loading이 느려지고 무료 요청 한도를 빠르게 소모할 수 있습니다. 개인의 지도는 어떤 지역과 Category를 언제 조회했는지 Supabase의 Coverage Cache에 저장합니다. 같은 지역을 다시 보는 사용자는 Cache된 결과를 먼저 받고, 갱신 기한이 지난 영역만 외부 제공자에서 새로 가져옵니다.
음식점·카페처럼 변화가 비교적 많은 Category는 주요 시설보다 짧은 주기로 갱신하도록 설계할 수 있습니다. Cache가 있다고 해서 영업 상태를 보증하는 것은 아닙니다. Cache는 검색 응답 속도와 API 사용량을 조절하는 기술이며, 실제 개업·폐업 확인은 장소 제공자의 최신 자료와 현장 정보를 함께 봐야 합니다.
Kakao Local API는 무엇을 보완하나요?
Kakao Local API는 국내 장소 검색에 강점이 있으며 음식점, 카페, 편의점, 학교, 병원, 약국, 숙박, 관광명소 등 정해진 Category Group과 Keyword Search를 제공합니다. 개인의 지도는 현재 지도 영역을 작은 Tile로 나누어 필요한 Category를 순차적으로 검색합니다. 한 Tile의 결과가 가득 차면 더 작은 영역으로 나누어 밀집 지역의 누락을 줄입니다.
그러나 공개 API는 카카오맵 내부 Database 전체를 한꺼번에 복사하는 Bulk Export 기능이 아닙니다. 검색 순위, Page 한도, API Quota와 제공 정책이 적용됩니다. 따라서 카카오맵에 보이는 모든 점포가 개인의 지도에도 반드시 동일한 시점과 형태로 표시된다고 약속할 수는 없습니다.
자세한 API 범위는 Kakao Developers Local API 안내에서 확인할 수 있습니다.
OpenStreetMap과 OpenFreeMap은 무엇을 담당하나요?
OpenStreetMap은 세계 여러 지역의 도로, 건물, 시설과 지리 정보를 공동으로 편집하는 공개 지리 Database입니다. OpenFreeMap은 OpenStreetMap 기반 Vector Tile과 Style을 제공해 Browser에서 기본 지도를 그릴 수 있게 합니다. 개인의 지도는 도로와 건물의 2D 윤곽, 철도·지하철, 역 이름, 공원과 일부 POI를 표시하는 데 이 자료를 사용합니다.
공동 편집 자료이기 때문에 지역별 완성도와 갱신 속도는 다릅니다. 어떤 지역은 건물 내부 점포까지 자세히 등록돼 있고, 다른 지역은 도로와 주요 시설만 있을 수 있습니다. 잘못된 정보를 발견했더라도 개인의 지도에서 작성한 비공개 장소는 원본 OpenStreetMap을 수정하지 않습니다.
자료의 성격과 License는 OpenStreetMap Copyright 안내와 OpenFreeMap에서 확인할 수 있습니다.
철도와 지하철 정보는 실시간 운행정보가 아닙니다
지도에 표시되는 철도, 지하철, 경전철, 트램과 역 이름은 기본 지도 자료의 노선 Geometry와 Label입니다. 실제 열차 도착 시간, 공사로 인한 운행 변경, 임시 폐쇄, 막차 시간과 혼잡도는 제공하지 않습니다. 최근 개통된 노선은 원본 지도 Data와 Tile Provider가 갱신된 뒤 표시됩니다.
따라서 이동 결정을 내릴 때는 운영기관의 공식 안내나 실시간 교통 서비스를 함께 확인해야 합니다. 개인의 지도에서 노선을 보는 목적은 장소의 위치와 주변 이동 구조를 이해하는 데 있습니다.
사용자가 직접 등록한 장소는 왜 공개되지 않나요?
개인 장소는 공개 Database의 누락을 신고하는 기능이 아니라 개인 기억을 저장하는 기능입니다. 이름, 설명과 좌표에는 사적인 정보가 포함될 수 있으므로 작성한 계정에만 보이도록 분리합니다. 다른 사용자의 검색 결과나 공개 지도 Layer에 자동 반영하지 않습니다.
공개 장소에 대한 정식 수정이 필요하다면 해당 원본 제공자의 수정 절차를 이용해야 합니다. 개인의 지도에 등록한 장소는 산책 중 발견한 지점이나 개인적인 약속 장소처럼 공개할 필요가 없는 위치에 적합합니다.
장소가 보이지 않을 때 확인할 것
- 지도를 한두 단계 더 확대해 세부 POI가 나타나는지 확인합니다.
- 상호명 일부, 지역명과 Category를 조합해 검색합니다.
- 한글·영문·약칭 등 다른 표기로 검색합니다.
- 검색 Provider가 일시적으로 느리면 잠시 후 다시 시도합니다.
- 위치를 알고 있다면 개인 장소로 직접 저장합니다.
장소 수를 무조건 늘리는 것과 읽기 쉬운 지도를 유지하는 것은 서로 충돌할 수 있습니다. 개인의 지도는 많은 후보를 수집하되, 화면에는 확대 수준에 맞는 수를 보여주고 검색을 통해 나머지 후보에 접근하는 방식을 사용합니다.
장소 정보는 참고 자료로 사용하세요
전화번호, 주소, Category와 장소명은 제공자가 수집한 시점의 정보입니다. 영업 여부, 메뉴, 가격, 출입 가능성, 의료기관의 진료 내용과 공공시설 운영시간처럼 중요한 사항은 방문 전에 공식 채널에서 확인해야 합니다. 개인의 지도는 장소를 기록하고 다시 찾는 도구이며, 모든 장소 정보의 법적·상업적 정확성을 보증하는 Directory가 아닙니다.
지도에서 실제 표시 방식을 확인해 보세요
넓은 지역에서 주요 장소를 보고, 확대하면서 세부 별과 이름이 단계적으로 추가되는지 확인할 수 있습니다.
개인의 지도 열기