지도 소프트웨어 개발사 글로부스가 자사 지도 엔진에 사용하던 폴리곤 삼각분할기를 이어스트립이라는 이름의 라이브러리로 공개했습니다. 이 프로젝트는 지난 10월 16일 블로그를 통해 발표되었으며 ISC 라이선스를 따릅니다. 단일 C++ 헤더 파일과 npm 기반의 WebAssembly 빌드로 제공되며 기존 표준인 이어컷과 동일한 API를 채택해 호환성을 확보했습니다.

핵심 성과는 처리 속도입니다. 실제 지도 데이터에서 추출한 374만 개의 폴리곤을 네이티브 C++ 환경에서 처리했을 때 489밀리초가 소요되었습니다. 이는 비교 대상인 이어컷.hpp의 557밀리초보다 약 14% 빠른 수치입니다.

브라우저 환경에서 WebAssembly로 실행할 경우에도 이어컷.js 대비 1.4배에서 2.1배까지 성능 향상을 기록했습니다.

성능 개선은 단순한 코드 최적화가 아닌 알고리즘 단계별 재구축을 통해 이루어졌습니다. 개발자는 귀 클리핑 기법을 하나씩 분해하며 각 단계의 효과를 측정했습니다. 오목 꼭짓점만 테스트하고 볼록 폴리곤은 생략하는 방식, 삼각형 스트립 작성, 함몰 부분 버킷팅, 조건 분기 없는 카운팅 등이 포함됩니다.

이러한 변경 사항들은 각각 커밋 단위로 기록되어 벤치마크 결과와 함께 제시되었습니다.

특히 복잡한 지형 처리 능력도 주목받습니다. 바르샤바 인근 마조브셰주 지역의 13단계 줌 레벨 데이터를 기준으로 할 때 구멍이 1만 1675개 포함된 폴리곤을 처리하는 데 이어스트립은 459밀리초가 걸렸습니다. 반면 이어컷.hpp는 같은 작업에 2892밀리초를 소모했습니다.

GPU 렌더링 과정에서 폴리곤을 삼각형으로 변환하는 과정은 필수적이므로 이러한 속도 차이는 지도 로딩 시간에 직접적인 영향을 미칩니다.

기술 커뮤니티의 반응은 긍정적입니다. 해커뉴스에는 관련 스레드가 올라와 171개의 점수와 34개의 댓글을 받았습니다. 이어컷의 원작자 에브겐도 해당 글을 칭찬하며 JavaScript 버전용 최적화 아이디어를 차용할지 검토 중이라고 밝혔습니다.

그는 번들 크기를 줄이기 위해 일부 최적화를 의도적으로 제외했던 과거 결정과 달리, Mapbox GL JS 등 실사용 환경에서는 이미 충분한 속도를 내고 있다는 점도 언급했습니다.

다만 모든 상황에서 이어스트립이 최선은 아닙니다. Mapbox는 현재 하이브리드 방식을 사용합니다. 작은 폴리곤은 이어컷.hpp로 처리하지만 크고 복잡한 폴리곤은 단조 분해 기반의 다른 알고리즘을 적용합니다.

이는 계산 복잡도의 상수가 높더라도 입력 크기가 커질수록 확장성이 더 좋기 때문입니다. 이어스트립의 WebAssembly 빌드 크기나 특정 하드웨어에서의 세부 성능 데이터는 추가 검증이 필요한 부분으로 남아 있습니다.