웹 지도 서비스 구축
정유사가 고객에게 전국 주유소 위치와 주변 시설을 안내하는 웹 지도 서비스의 개발에 참여했습니다. 당시 웹 지도는 이미지를 밀어 옮기는 방식이 대부분이었고, 이 서비스는 브라우저 안에서 지도를 끌어 옮기고 확대하는 쪽을 택했습니다. 인터넷이 느리던 때라 지도가 늦게 열리거나 지도 그림이 어긋나 보이면 위치 안내 자체가 무너졌습니다. 지도 그림과 원본 지도 데이터를 화면 좌표에 맞추는 일, 데이터 전송량을 줄이는 일, 이동 · 확대 전환을 맡았습니다.
이미지를 밀던 웹 지도 대신, 브라우저 안에서 움직이는 지도
이 웹 지도 서비스는 고객이 전국 주유소 위치와 주변 시설을 브라우저에서 찾아보게 하는 서비스입니다. 당시 웹 지도는 이미지를 옆으로 밀어 옮기는 방식이 대부분이었습니다. 이 서비스는 지도를 끌어 옮기고 확대 · 축소하는 조작을 브라우저 안에서 바로 받는 쪽을 택했습니다. 지도 라이브러리와 원본 지도 데이터를 묶어 이 지도를 구현하는 개발에 참여했습니다.

지도 그림과 원본 데이터가 어긋나지 않는 정합
웹 지도는 잘게 나눈 지도 그림(타일)을 이어 붙여 보여 주고, 그 위에 원본 지도 데이터의 위치를 올립니다. 둘의 좌표가 조금만 어긋나도 주유소 표시가 엉뚱한 자리에 찍힙니다. 타일과 원본 지도 데이터를 화면 좌표에 맞게 옮기고, 서비스 화면에서 어긋나 보이는 곳을 찾아 지도 이미지를 고치는 일을 맡았습니다.

느린 인터넷에서도 지도가 열리게 줄인 전송량
웹 지도는 화면을 채울 지도 데이터를 매번 받아야 하는데, 그때의 인터넷은 그 양을 받는 데도 시간이 걸렸습니다. 지도 데이터의 전송량을 줄이고 표시 방식을 다듬어, 느린 회선에서도 지도가 열리게 했습니다. 서버와 주고받는 데이터도 태그로 감싸는 무거운 형식에서 더 짧게 적는 형식으로 바꿔 통신량을 덜었습니다.

끌고 확대할 때 위치를 놓치지 않는 화면 전환
지도를 끌어 옮기거나 확대 · 축소할 때 화면이 뚝 끊겨 바뀌면, 사용자는 지금 어디를 보고 있는지 놓칩니다. 이동과 확대 · 축소 사이에 자연스러운 전환 효과를 넣어, 축척이 바뀌는 동안에도 위치를 따라갈 수 있게 했습니다. 이 서비스에서 만든 지도 기술은 이후 주유소 위치 안내 서비스, 신도시 버스정보 지도, 해외 서비스로 옮겨 쓰였습니다.

이 작업의 포인트
브라우저 안에서 끌어 옮기고 확대하는 웹 지도
지도 그림과 원본 지도 데이터를 화면 좌표에 맞춘 정합
느린 인터넷에서도 지도가 열리게 줄인 데이터 전송량
인사이트
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



