Local Wikipedia를 열어 위치를 런던 세인트 제임스 구(SW1A)로 설정하면 페이지 상단에 한 줄의 문구가 뜹니다: “500 articles within 0.4 miles”. 0.4마일은 약 640미터, 640미터 안에 500개의 위키백과 항목이 들어찬 상태이며, 이 500개가 바로 웹사이트가 설정한 최대치입니다.

그림: 런던 SW1A(세인트 제임스 구)를 위치로 설정한 후의 페이지 상단에 ‘500 articles within 0.4 miles’가 표시되며, 항목 수가 500의 최대치에 도달했습니다. 출처: 본지 실제 캡처
이것은 개발자 Ed Jefferson가 자신의 도메인 아래에 둔 개인 프로젝트이며, 페이지에는 명시적으로 “본 웹사이트는 정식 위키백과와 어떠한 관련도 없습니다”라고 선언되어 있습니다. 자기소개는 한 문장뿐입니다: “Wikipedia, but only for things a half hour walk from you” — 당신이 30분 안에 걸을 수 있는 것들만 보여주는 위키백과. 이 프로젝트는 Hacker News 당일 1위에 오르며, 이 프로젝트가 하는 일을 정식 위키백과는 이미 한 번 해봤습니다.
정식 위키백과에도 ‘주변 항목’ 기능이 있었는데, 이 프론트엔드가 1위를 차지한 이유
위키백과의 ‘주변 항목’ 기능은 이미 수년간 존재해왔습니다: 위도와 경도에 따른 직선 거리를 기준으로 주변에 좌표가 있는 항목을 나열합니다. 이 기능이 질문에 답할 때 사용하는 언어는 GIS의 언어입니다 — 당신을 중심으로 반경 몇 킬로미터 내.
Local Wikipedia는 이 반경의 단위를 시간으로 바꿨습니다. 일반적인 시속 45킬로미터의 보행 속도를 기준으로, 30분 보행 시 22.5킬로미터를 커버하며, 정식 기능의 일반적인 검색 범위와 상당 부분 겹칩니다. 하지만 두 가지 질문은 인간의 뇌에서 두 가지 다른 모습으로 자라납니다. 킬로미터는 엔진이 계산하는 단위이고, 반 시간은 인간이 경험하는 단위입니다.
같은 좌표 데이터로 ‘반경 2킬로미터 내에 무엇이 있는가’라고 묻으면 기능 목록을 얻고, ‘30분 걸으면 무엇을 만날 수 있는가’라고 묻으면 산책 코스 후보 목록을 얻습니다. 검색 반경이 공학적 단위에서 생활 언어로 옮겨가자 데이터의 해석 방식도 따라 바뀌었습니다.

그림: 웹사이트 슬로건 “Wikipedia, but only for things a half hour walk from you” — 킬로미터 수 대신 반 시간을 사용합니다. 출처: edjefferson.com
좌표만 필터링, 나머지 항목은 모두 보이지 않음
구현 자체는 매우 간단합니다: 위키백과에 지리 좌표가 있는 페이지만 가져와 거리순으로 표시하며, 좌표가 없는 항목은 전혀 나타나지 않습니다. 두 숫자가 극단적인 상황을 양쪽에서 잡아냅니다 — 주변 항목이 25개 미만이면 검색 반경이 약 6마일(약 10킬로미터)로 줄어들어 가장 가까운 25개를 가져오고, 항목이 500개를 넘으면 가장 가까운 500개만 표시합니다.
25와 500는 마치 두 개의 쐐기 같습니다. 한쪽은 런던 시내 640미터에 500개의 항목이 빽빽하게 들어찜밀도이고, 다른 쪽은 25개도 모을 수 없어 반경을 10킬로미터까지 확장해야 하는 황야입니다. 같은 기능이지만, 두 개의 다른 세계입니다.
개인정보 처리는 별도로 살펴볼 가치가 있습니다: 위치 데이터는 브라우저에만 남아 있으며, 공유되는 링크에는 위치 정보가 포함되지 않습니다. ‘당신의 위치’에 의존해 작동하는 제품이 ‘주변 보기’와 ‘위치 공유’를 두 가지 다른 일로 분리했습니다.
기술 스택 역시 간단합니다: 검색은 Photon(photon.komoot.io)의 지리 인코딩 서비스에 맡기고, 기본 지도는 OpenStreetMap에서 가져왔습니다. 전체 시스템은 자체 데이터 소스가 하나도 없으며, 모두 공개 서비스를 조합한 개인 프로젝트 수준입니다.
0.4마일에 500개 항목, 황야에서 3시간 걸어도 1개 항목도 없음
같은 웹사이트이지만, 실제 테스트 결과는 10배 이상의 차이를 보입니다. 런던 세인트 제임스 구 주변에서는 0.4마일에 500개 항목이 바로 최대치에 도달했고, 토론 게시판에는 사용자 한 명이 자신에게 가장 가까운 위키 항목이 3시간 15분 보행 거리에 있다고 말했습니다 — 시속 5킬로미터로 계산하면 15킬로미터 밖입니다.
그에게 주변에 아무것도 없는 걸까요? 그의 말에 따르면 그렇지 않습니다: 적절한 곡선의 쓰러진 나무, 교활한 늑대에게 4분의 3이 먹힌 사슴 시체, 완벽한 화살촉을 줍던 그 장소. 그의 결론은 아마도 이런 장소들을 마음속에 남겨두어야 한다는 것이었습니다.
한쪽은 640미터 안에 500개의 항목도 담을 수 없고, 다른 쪽은 3시간 이상 보아도 항목이 하나도 없습니다. 위키백과의 커버리지 밀도는 역사를 기록한 퇴적물입니다: 어디에 지방지가 쓰였고, 전쟁이 벌어졌고, 비석이 세워졌고, 사람들이 살았던 곳이면 어디든 밀집되어 있습니다. Local Wikipedia는 이 분포를 바꿀 수 없으며, 그저 이 분포를 있는 그대로 당신의 눈앞에 펼쳐줄 뿐입니다.
관광객은 주거지구만 있다며 불만, 논쟁은 ‘마일’과 ‘미터’까지 이어져
비판의 목소리는 구체적입니다: 누군가 실제 테스트 후 만족스럽지 않다고 말했으며, 아이디어는 훌륭하지만 관광객에게는 친숙하지 않다고 지적했습니다. 눈앞에 분명 흥미로운 장소가 많음에도 페이지에 나타나는 대부분은 주거지구와 도로였습니다.
반대 의견 역시 타당합니다: 이 도구는 ‘흥미로운 장소’를 판단하려는 것이 아니라, 위키백과에 무엇이 쓰였는지 있는 그대로 전달할 뿐입니다. 주거지구와 도로가 자주 나타나는 이유는 바로 그곳에 좌표가 있고 실로 항목으로 쓰였기 때문입니다. 분포의 불균등성은 위키백과 자체의 속성이며, 좌표로 데이터를 필터링하는 어떤 도구를 사용해도 결과는 같습니다.
토론 게시판에서는 왜 Grokipedia를 사용하지 않는지 묻는 질문도 있었습니다. 대답은 간결했습니다: 대형 모델로 순수하게 생성되고 조작되기 쉬우며 환각을 자주 일으키는 백과사전은 ‘어디가 기록 가치가 있는가’라는 질문을 감당할 수 없습니다. 이 프로젝트의 모든 가치는 ‘각 항목이 사람에 의해 쓰여진다’는 전제에 걸려 있습니다 — 각 좌표 뒤에는 누군가 특정 시점에 이 장소가 기록 가치가 있다고 판단한 구체적인 사람이 있습니다. 생성 콘텐츠로 바꾸면 밀도 분포는 더 이상 측정 대상이 되지 않습니다.
남은 논쟁은 가장 가볍지만 가장 현실적입니다: 그 0.4마일을 정확히 마일로 표시해야 하는지 미터로 표시해야 하는지. 거리가 일상 시나리오에 들어서자 단위조차 논쟁거리가 됩니다.
당신 집 근처에 얼마나 많은 백과사전 항목이 있는지는 걷는 거리와 상관없습니다
이 프로젝트가 하는 일은 위키백과에 이미 존재하는 지리 좌표를 도보 시간에 따라 재배열하는 것입니다. 바로 이 한 번의 재배열이 같은 데이터를 두 가지로 해석하게 만들었습니다: 런던에서는 ‘오후에 산책할 장소’ 후보 목록이고, 황야에서는 어떤 곳의 역사가 기록되었고 어떤 곳은 기록되지 않았는지 비추는 거울입니다.
당신 집 근처에 얼마나 많은 것이 백과사전에 실릴 가치가 있는지는 당신이 얼마나 멀리 걷을 의사가 있는지와 상관없습니다. 이 숫자는 각 위키 항목이 최종 확정된 그날 이미 정해졌습니다. Local Wikipedia가 하는 일은 길을 걷는 모든 사람이 눈으로 직접 이것을 볼 수 있게 하는 것뿐입니다.
참고 링크:
- Local Wikipedia 프로젝트 홈페이지
- HN 토론
- OpenStreetMap
- Photon 지리 인코딩