---
title: "Pike — 고속도로 출구 선택 딜레마를 해결한 사이드 프로젝트의 5번의 시행착오"
published: 2026-03-04T23:46:47.000Z
canonical: https://jeff.news/article/243
---
# Pike — 고속도로 출구 선택 딜레마를 해결한 사이드 프로젝트의 5번의 시행착오

로드트립 중 '여기서 내릴까, 다음 출구를 걸어볼까' 문제를 해결하는 앱 Pike의 개발기. Apple/Google Maps가 못 풀어주는 '우회 시간 기준 출구별 옵션 비교'를 구현하기 위해 5번의 아키텍처 변경을 거침. 최종적으로 OSRM을 활용해 미국 전역 모든 출구-POI 간 운전 시간을 사전 계산하는 방식으로 해결함.

## 기존 지도 앱이 못 푸는 문제

로드트립 중 고속도로 출구 선택은 의외로 해결 안 된 문제임. Apple/Google Maps의 "경유지 추가" 기능은 **직선 거리 기준**으로 옵션을 보여주기 때문에, 실제 우회 시간과 동떨어진 결과를 줌. 운전자가 원하는 건 "앞으로 5개 출구에서 1분 이내로 갈 수 있는 곳"인데, 기존 앱은 이걸 제공하지 못함.

## Pike의 접근

Pike는 고속도로의 파란색 안내 표지판을 앱으로 옮긴 느낌임. 출구별 카드를 스와이프하면서 **5분 운전 거리 이내**의 음식점·주유소·충전소·휴게소·숙소를 한눈에 확인 가능함.

## 5번의 시행착오

- **v1 — 방향 기반 POI 검색**: "내 진행 방향에 있는 식당 찾기" → 도로가 커브를 돌면 결과가 틀어짐. 실패.
- **v2 — 비방향 OSM 그래프 + Dijkstra**: OpenStreetMap 데이터로 그래프를 구성하고 다익스트라로 탐색 → 반대 방향 출구(예: 동행 중인데 서행 휴게소)를 추천하는 문제 발생.
- **v3 — 방향별 방향 그래프**: 양방향 각각 방향 그래프 생성 → OSM 데이터가 지저분해서 잘못된 노드에 걸리면 막다른 길에 빠짐. 엣지 케이스가 끝없이 나옴.
- **v4 — 사전 계산된 출구 시퀀스 (연결 리스트)**: 그래프를 실시간 탐색할 필요가 없다는 깨달음. 출구 순서를 미리 계산해서 정규화함 → 시퀀스 자체는 잘 작동했으나, 고속도로 간 분기점(실제로 내릴 수 없는 출구)에서 POI를 추천하는 문제 발생.
- **v5 — OSRM 기반 운전 시간 사전 계산**: 미국 전역의 모든 고속도로 출구에서 모든 POI까지의 운전 시간을 사전 계산함. AWS에서 **200GB+ RAM** 인스턴스를 올려서 처리 (월 **$1,000+**, 다행히 몇 시간만 사용). 이게 Pike의 정확도를 보장하는 핵심.

## 핵심 교훈

> "DO NOT USE HEURISTICS — YOU MUST FIX THE DATA"

지도 데이터 문제에서 휴리스틱으로 우회하려 하면 엣지 케이스가 끝없이 나옴. 데이터 자체를 정제하는 것이 정답이었음.

개발은 **Claude와 Codex**를 활용했으며, 특히 AWS 인스턴스 셋업과 대용량 연산 과정에서 Claude의 도움이 결정적이었다고 함. 개발자는 아내와 골든 리트리버 두 마리(Goose & Peanut)와 함께 6주간 로드트립을 앞두고 이 앱을 만들었음.

## 핵심 포인트

- Apple/Google Maps는 직선 거리 기준으로 경유지를 추천해 실제 우회 시간과 괴리가 큼
- v1~v4까지 방향 기반 POI, 비방향 그래프, 방향 그래프, 연결 리스트 순으로 시도 후 실패
- 최종 v5에서 OSRM으로 미국 전역 출구-POI 간 운전 시간을 사전 계산하여 해결
- AWS 200GB+ RAM 인스턴스로 대규모 연산 수행 (월 $1,000+, 수 시간만 사용)
- 핵심 교훈: 지도 데이터 문제에서 휴리스틱은 금물, 데이터 자체를 정제해야 함

## 인사이트

사이드 프로젝트의 전형적인 성장 과정을 잘 보여줌. 특히 '휴리스틱 대신 데이터를 고쳐라'는 교훈은 지도 영역 외에도 범용적으로 적용 가능함.
