더스윙 기술 블로그 · 2025. 10. 27.
R-tree를 사용한 가까운 마커 찾기 기능 구현과 개선기
AI 엔지니어링 브리핑
지도에서 마커를 움직일 때 가까운 마커를 빠르게 찾아 강조하기 위해, 단순한 전수 비교를 R-tree 기반 검색으로 개선한 과정을 설명한 글입니다.
문제 & 배경
문제 & 배경: 마커를 움직일 때마다 500m 안의 가장 가까운 마커를 찾아야 했지만, 모든 마커와 거리를 매번 비교하면 마커가 많아질수록 드래그 중 계산량과 화면 부담이 크게 늘어났습니다.
기술 & 해결책
기술 & 해결책: 처음에는 모든 마커와 거리를 비교한 뒤, RBush라는 R-tree 공간 인덱스로 500m 주변 후보만 추리고 rbush-knn으로 가까운 후보부터 탐색해 실제 거리 계산을 최소화했습니다.
교훈 & 주의점
교훈 & 주의점: 최적화 후 CPU 사용량이 평균 약 45%, 최대 약 51% 줄었으며, 먼저 기능을 동작하게 만든 뒤 실제 병목이 확인될 때 자료구조와 탐색 방식을 개선하는 것이 중요하고 거리 계산에서는 지구의 곡률에 따른 오차도 고려해야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.