ํ๋ก์ ํธ ์ด๊ธฐ์ ๋ฌ๋ ์ฝ์ค ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๊ณผ์ ์์ ๊ตฌ๊ธ ์ด์ค๋ฅผ ์ด์ฉํ๋ค. ํด๋น ๋ฐฉ๋ฒ์ ์ง์ ์ขํ๋ฅผ ์ฐ์ด๊ฐ๋ฉฐ, ํด๋น ์ขํ๋ค์ ๋ชจ์ kml ํ์ผ๋ก ์ถ์ถํ์ฌ ๋ฌ๋ ์ฝ์ค ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด์๋ค.

ํ์ง๋ง ํด๋น ๋ฐฉ์์ ๊ฒฝ๋ก๋ฅผ ๊ฐ ์ขํ๋ง๋ค ์ง์ ์ผ๋ก๋ง ์ด์ด์ฃผ์๊ธฐ ๋๋ฌธ์ ์ง์ ์ด ๋ง์ง ์์ ์ค์ ๋๋ก์์๋ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ ๋ค. ๋ํ, ๊ณก์ ์ ํํํ๊ธฐ ์ํด ๋ค์ฌ์ผ ํ๋ ์๋์ง๊ฐ ๋ง์ด ์๋ชจ๋๋ค.
๊ทธ๋์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์๊ณ , ์ด๋ ๋ค๋ฅธ ์ธ๋ถ ์๋น์ค (์คํธ๋ผ๋ฐ, ๊ฐ๋ฏผ ๋ฑ)์ ์ด์ฉํ๊ฑฐ๋ ๋ธ๋ก๊ทธ, ์ธ๋ถ ์ปค๋ฎค๋ํฐ๋ฅผ ์ฐพ์ผ๋ฉฐ ์ค์ ๋ฌ๋์ ๋ด ์ฌ๋๋ค์ ๊ธฐ๋ก์ gpx ํ์ผ๋ก ์ถ์ถํ์ฌ ์ฝ์
ํ๋ ๋ฐฉ๋ฒ์ด์๋ค.
์ด ๋ฐฉ๋ฒ์ ํตํด ๊ธฐ์กด kml ํ์ผ๋ณด๋ค ํ์ง์ด ์ข์ ๋ฌ๋ ์ฝ์ค ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์์๋ค. ํ์ง๋ง ํด๋น ๋ฐฉ์์ ์ธก์ ํ๋ ์ฌ๋์ ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ์ธก์ ์ฑ๋ฅ์ด ์ฐจ์ด๋๋ ์น๋ช
์ ์ธ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค. ์ด๋ฌํ ์ธก์ ๊ธฐ๊ธฐ ๊ฐ์ ๋ฌ๋ ์ฝ์ค ์ ํ๋๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ค.
๊ทธ๋์ ์ฒ์์๋ ํ์๋ค๊ณผ ๋ค ๊ฐ์ด '์๋'์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ๋ค. ์ด๋๋ฏผ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ์๊ณ , ๊ฐ ๋ฌ๋ ์ฝ์ค๋ค์ ํ๋ ์ขํ๋ค์ ๋ฆฌ์คํธ์
ํ๋ฉฐ ์ง์ ์์ ํ์๋ค.

ํ์ง๋ง, ๋ฌ๋ ์ฝ์ค๋ง๋ค ์ ์ด๋ ์ฝ 300๊ฐ ์ด์์ ์ขํ๊ฐ ์กด์ฌํ๊ณ , ๋ง์ผ๋ฉด 5๋ง ๊ฐ๊น์ง ์กด์ฌํ๋ค. ์ด๋ฌํ ๋ฌ๋ ์ฝ์ค ์ขํ๋ค์ ์ผ์ผ์ด ์์์
์ผ๋ก ์์ ํ๋ค๋ ๊ฒ ์ฌ์ด ์์
๋ ์๋๋ฟ๋๋ฌ ์๊ฐ, ์๋์ง ์๋ชจ๊ฐ ์ปธ๋ค. ๊ทธ๋์ ์ด๋ฌํ ์๊ณ ๋ฅผ ๋์ด์ผ ํ๋ค.
๋จผ์ ์ง๊ธ๊น์ง์ ๋ฌธ์ ๋ฅผ ์ ์ํด ๋ณด์๋ค.
- ๋ฌ๋ ์ฝ์ค ํ์ผ์ ์กด์ฌํ๋ ์ ํํ์ง ์์ ๊ฒฝ๋ก๋ฅผ ์์ ํด์ผ ํ๋ค.
- ์ ํํ์ง ์์ ๊ฒฝ๋ก์ ์์ ์ ์๋์ด ์๋ '์๋'์ผ๋ก ์ด๋ค๋ด์ผ ํ๋ค.
์ด ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฐฉ์์ด ์กด์ฌํ๋ค. ๊ทธ ๋ฐฉ์์ Map match API๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด๋ค. ํด๋น API๋ ์ขํ๋ค์ ๋๊ฒจ์ฃผ๋ฉด ์ง๋์ ๊ฐ๊น์ด ๋๋ก์ ์๋์ผ๋ก ๋งค์นญํด ์ค๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์๋น์ค๊ฐ ๋ช ๊ฐ์ง ์์๋๋ฐ ๊ฐ MapBox, OSRM, GraphHopper ๋ฑ์ด ์๋ค.
์ด ์ค ์ธ์ง๋์ ๋ฌธ์ํ ์์ค์ ๋๊ณ ๋ณด๋ฉด ์ ํฉํ ์๋น์ค๋ MapBox์ OSRM์ด ํ๋ณด๋ก ์ถ๋ ค์ง๋ค. ํ์ง๋ง, MapBox์ ๊ฒฝ์ฐ์๋ 10๋ง ๋ฒ ์ด์ ํธ์ถ ์ ๋น์ฉ์ด ๋ฐ์ํ๊ณ , ๊ธฐ์กด์ OSRM ์๋ฒ๋ฅผ ๊ตฌ์ฑํด ๋จ๊ธฐ์ OSRM์ ์ด์ฉํ๊ธฐ๋ก ํ๋ค.

OSRM์ ์ ํํ๊ณ , match API๋ฅผ ์ด์ฉํ๋ ์๋น์ค ์ฝ๋๋ฅผ ์์ฑํ๋ค. ํ์ง๋ง, match API๋ฅผ ์ด์ฉํด๋ ์ขํ๊ฐ ์ ๋๋ก ๋งค์นญ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.



์ ์ด์ ๋งค์นญ๋๋ ๊ฒฝ๋ก๊ฐ ์๋ค๋ ๊ฒ์ด๋ค. ํ์ง๋ง, ๋ฐ๋ก ์์ ๋๋ก๊ฐ ์กด์ฌํ๊ณ ์๊ธฐ์ ๋งค์นญ๋๋ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฑด ๋ง์ด ์ ๋๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ํด๋น ๋ฌธ์ ์ ๊ด๋ จํด์ ๊ณต์ ๋ฌธ์ ๋ฐ Github๋ฅผ ์ฐพ์๋ณด์๊ณ , match api์๋ ์ฃผ์ํ ํ๋ผ๋ฏธํฐ๊ฐ ๋ ๊ฐ ๋ ์กด์ฌํ๋ค๋ ๊ฒ์ ์์๋ค.
์ด๋ radiuses, timestamps ํ๋ผ๋ฏธํฐ์ด๋ค. ํด๋น ํ๋ผ๋ฏธํฐ๋ค์ ๊ฐ์ด ์ฃผ๊ฒ ๋๋ค๋ฉด ๋งค์นญ์ ์ ํ๋๊ฐ ๋ ๋์์ง๋ค๋ ๊ฒ์ด๋ค. radiuses ํ๋ผ๋ฏธํฐ๋ ํน์ ์ขํ๊ฐ ์ธ๊ทผ ๋๋ก ๊ตฌ๊ฐ์ ๋งค์นญ๋ ๋ ํ์ฉ๋๋ ์ต๋ ๊ฑฐ๋ฆฌ(๋ฏธํฐ ๋จ์)๋ฅผ ์ง์ ํ๋ค. timestamps์ ๊ฒฝ์ฐ์๋ ์ง๋ ๋งค์นญ ์๊ณ ๋ฆฌ์ฆ์ด ์ง์ ๊ฐ ์ด๋ ์๋์ ์๊ฐ์ ๊ณ ๋ คํ ์ ์๊ฒ ํด ์ค๋ค. ์ด๋ฅผ ํตํด ์ก์์ด ์๋ ๊ฒฝ๋ก์์ ๋งค์นญ ํ์ง์ ํฌ๊ฒ ํฅ์ํ๋ค.
ํ๋ผ๋ฏธํฐ ๋ ๊ฐ๋ฅผ ๋ฐ๋ก ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด, radiuses๋ 5m๋ก ์ง์ ๋๊ณ timestamps ๊ธฐ๋ณธ๊ฐ์ด ์๋ค. radiuses๋ ๊ฐ ์ขํ ๋ณ๋ก 15m๋ฅผ ์ง์ ํด ์ฃผ์๊ณ , timestamps๋ ๊ฐ ์ขํ ๊ฐ ์์ ์๊ฐ์ 5์ด๋ก ์ง์ ํด ์ฃผ์๋ค.
gpx ํ์ผ์ ์กด์ฌํ๋ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ข์๊ฒ ์ง๋ง, ์ด๋ฏธ ๋ง์ ๋ฐ์ดํฐ๋ค์ด ์ฝ์
๋ ์ํ๋ผ ์ถํ ๊ณ ๋ คํด ๋ณด๋ ๊ฒ ์ข์ ๊ฑฐ ๊ฐ๋ค.


์ด๊ฒ์ผ๋ก NoMatch ๋ฌธ์ ๊ฐ ํด์๋์๊ณ , ์ด์ ๋ณด๋ค ํจ์ฌ ๋์ ์ ํ๋๋ฅผ ๋ณด์ฌ์ฃผ์๋ค. ํ์ง๋ง, ๋ฌธ์ ๋ ์ฌ์ ํ '๋๋ก'์๋ง ๋งค์นญ๋๋ค๋ ๋ฌธ์ ๊ฐ ๋จ์์์๋ค.

๊ทธ๋์ ์ด๋ฌํ ๊ณต์๊ธธ์ ๋งค์นญ๋์ง ์๋ ๋ฌธ์ ์ ์์ธ์ ์ด์ฌํ ์ฐพ์๋ณด์๋ค. ํ์ง๋ง ์ด๋์๋ ์ด์ ๊ด๋ จํ ๋ ํผ๋ฐ์ค๊ฐ ์์ด์ ์์ธ์ ํ๋ฒ ์ถ์ธกํด ๋ดค๋ค.
OSRM ์๋ฒ๊ฐ OSM ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์ ํด๋น ๋งต ๋ฐ์ดํฐ์ ์ ๊ณต์๊ธธ ์์ฒด๊ฐ ์๋ค๋ ์ถ์ธก์ด์๋ค. ๊ทธ๋์ ์ด๋ฅผ ์ฆ๋ช
ํ๊ธฐ ์ํด์ OSM์ ์ ์ํด ํด๋น ๊ณต์๊ธธ์ ์ฐพ์๋ณด์๋๋ฐ, ๊ธธ์ด ์์ ์๋ ๊ฒ์ ์๋์๋ค.

์ ๊ทธ๋ฆผ์ฒ๋ผ footway๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ธธ์ด ์กด์ฌํ๊ธด ํ๋ค. ๊ทธ๋์ ์ด๋ฌํ ์ํฉ๊ณผ ํจ๊ป Claude ๋ฐ GPT์ ๋์์ ๋ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ ์์ธ์ ๋ํ์ ์ผ๋ก ๋ ๊ฐ์ง ์ ์ ์์๋ค.
- OSM ๋งต ๋ฐ์ดํฐ ์์ฒด์ ๋ฌธ์
ํ์ง๋ง, ์ด๋ ์ด๋ฏธ ์ฆ๋ช
๋์๋ค. ์ ์ด๋ ์ ๊ธธ์๋ ๋งค์นญ์ด ๋์ด์ผ ํ๋ค.
- OSRM profile์ด foot์ด ์๋ car๋ก ๋์ด์๋ ๋ฌธ์
์ด๊ฑด ์๋กญ๊ฒ ์ ์ฌ์ค์ธ๋ฐ, url์ `/match/v1/foot/~`์ผ๋ก ์ผ๋ค๊ณ ํด์ OSRM์์ foot์ผ๋ก ๋ฌด์กฐ๊ฑด ์ฒ๋ฆฌํ๋ ๊ฒ ์๋ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ด๋ OSRM ์๋ฒ ๊ตฌ์ฑ ์ค ์ด๋ค profile๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌ ํ๋๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค๊ณ ํ๋ค.
๊ทธ๋์ ๋น ๋ฅด๊ฒ ๋ก์ปฌ์์ OSRM์ foot.lua๋ก ์ ์ฒ๋ฆฌํ๋๋ก ํ ํ ํ
์คํธ๋ฅผ ์งํํ๋ค.


๊ทธ๋ฌ์ ์ด๋ ์ ๋ ๊ณต์๊ธธ์ ๋งค์นญ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค! ํ์ง๋ง, ์ด ๋ํ ์๋ฒฝํ๊ฒ ๋งค์นญ๋๋ ๊ฒ์ ์๋์๋ค. ๊ทธ๋ ๊ทธ๋ด ๊ฒ์ด OSM ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ฉด ์นด์นด์ค๋งต๊ณผ ๋ค๋ฅด๊ฒ ๊ณต์๊ธธ์ด ๊ตฌ์ฑ๋์ด ์๋ ๊ฒ์ ์ ์ ์๋ค. ๊ทธ๋์ ์๋ฒฝํ๊ฒ ์นด์นด์ค๋งต์ ๋ง๊ฒ ๋งค์นญํ์ง๋ ๋ชปํ ๊ฒ์ด๋ค..
๊ฒฐ๊ณผ์ ์ผ๋ก ํ์ฌ๋ ๊ณต์๊ธธ์ ๋ํด์๋ ์์์ ์ ํตํด์ผ ํ์ง๋ง, ์ ์ด๋ ๋๋ก์ ๋ํด์๋ API ํธ์ถ์ ํตํด ํด์ํ๋๋ก ํ๋ค.
์์ผ๋ก์ ๊ณํ
OSM ๋ฐ์ดํฐ๋ฅผ ์ปค์คํ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๊ฑฐ๋, ๋๋ OSRM์ ์ปค์คํฐ๋ง์ด์ง์ด ์์ ๋ก์ด ๋งํผ ์ด๋ฌํ ๋ถ๋ถ๋ค์ ๋ํด์ ๋ ๊ณต๋ถํด ๋ณด๊ณ ์ ์ฉํ๋ ๊ณผ์ ๋ค์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
'๊ฐ๋ฐ > ๋ฐ์ธ๊ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ธธ์ฐพ๊ธฐ, ๊ฒฝ๋ก ๋ณด์ ์ ํต์ฌ OSRM ํบ์๋ณด๊ธฐ (0) | 2025.12.08 |
|---|---|
| API ๋ฌธ์ ๊ฐ์ ๊ณผ ๋ฌธ์ํ ํด Stoplight๋ก ๋ณ๊ฒฝํ๊ธฐ (0) | 2025.12.07 |
| ํ๋ก์ ํธ์์ Batch Job ๋ก๊ทธ์ MDC๋ฅผ ์ ์ฉํ๋ค. (0) | 2025.10.26 |
| ๋๋ฉ์ธ ๊ฐ์ฒด ์์ฑ ๋ก์ง ๊ด๋ จ ๊ณ ๋ฏผ (0) | 2025.10.06 |
| ์๋ฒ์์ ์ง์์ ์ธ OutOfMemory๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ํด๊ฒฐ (3) | 2025.09.29 |