누가 내 GPX 파일을 옮겼나
한국랜도너스 웹사이트는 웹사이트를 운영할 여력이 부족한 단체가 어렵사리 웹사이트를 운영하는 모습을 여실히 보여줍니다. 사이트를 구성하는 조각들이 서로 다른 솔루션을 통해 아슬아슬하게 서비스됩니다. 개인정보를 핸들링하지만 HTTPS 접속은 꿈도 못 꿉니다. 사이트가 구동되는 것만으로도 감사할 정도입니다. 이 사이트는 크게 세 부분으로 구성됩니다. '일정과 코스 소개', '예약시스템', 그리고 '코스파일 배포'입니다. 일정과 코스 소개는 고정된 웹사이트로 유지할 수 있습니다. 코스 추가와 변경은 보통 일년에 한번 정도 큰 규모로 일어나고 연도별 이벤트 결과 역시 일년에 한번 정도 크게 업데이트됩니다. 예약시스템은 시즌 시작 전부터 사람들 수천명이 몰려들어 이벤트에 참가신청을 하고 신청을 변경하고 취소하기를 반복합니다. 이 과정에서 로그인을 하기도 하고 개인정보를 입력하기도 합니다. 장거리 라이딩은 코스 숙지가 중요하므로 코스파일 배포 역시 중요합니다. 코스파일은 보통 GPX 파일로 되어 있는데 이걸 가민 엣지 같은 바이크컴퓨터에 옮겨 이걸 보고 라이딩을 하게 됩니다. 브레베 이벤트 날짜가 가까워지면 코스파일을 바이크컴퓨터에 담아 답사 라이딩을 가곤 합니다.
오늘은 문득 랜도너들이 모여있는 채팅방에서 한국랜도너스 웹사이트로부터 GPX 파일을 다운로드해서 가민커넥트에 입력하는데 어려움을 겪고 계신 분이 있었습니다. 이분이 겪고 있는 상황은 아이폰을 사용해 한국랜도너스 웹사이트로부터 GPX 파일을 다운로드해서 가민커넥트에서 열려고 했지만 가민커넥트 앱이 GPX 파일을 무시하는 상황이었습니다. 한국랜도너스 웹사이트에서는 자주 업데이트되는 GPX 파일과 지도 이미지 파일을 구글 문서를 통해 배포하고 있습니다. 위에서 소개한 '예약시스템'을 트래픽 제한이 있는 호스팅 서비스를 통해 운영하고 있는 것으로 미루어 이 파일들을 같은 호스팅 서비스를 통해 배포하는 것은 금전적으로 무리가 있을 것으로 예상합니다. 구글 문서는 웹사이트 사용 경험을 유려하게 만들지는 않지만 어쨌든 목적은 달성할 수 있습니다. 그런데 사람들이 오직 스마트폰만 가지고 이 파일을 다운로드해서 바이크컴퓨터에 집어넣는데는 골치아픈 상황이 기다리고 있습니다.
배경
GPX 파일은 구글문서도구에 올라가 있습니다.
GPX 파일은 XML 포멧으로 되어 있습니다.
구글문서도구 앱에서 GPX 파일을 다운로드하면 내용물이 XML 이므로 친절하게 확장자를 XML로 바꿔줍니다.
가민커넥트 앱은 내용에 관계없이 확장자가 GPX일 때만 파일 열기를 시도합니다.
iOS의 파일 앱, 주요 클라우드 서비스(원드라이브, 드랍박스 등)는 확장자 변경을 지원하지 않습니다.
윈도우 OS 역시 기본으로 파일 확장자를 표시하지 않습니다.
결과
아이폰으로 구글문서도구 앱을 통해 GPX 파일을 가민커넥트 앱으로 열려고 시도합니다.
가민커넥트 앱이 열리지만 앱만 열리고 GPX 파일은 사라집니다.
이 상황을 해결하는 방법은 구글문서도구 앱을 삭제해 사파리 브라우저로 파일을 열거나 사파리 웹브라우저에서 GPX 파일을 길게 눌러 새 탭으로 열면 구글문서도구를 거치지 않고 사파리 브라우저로 열게 됩니다. 이 상태에서 GPX 파일을 가민커넥트 앱으로 열면 확장자를 바꾸지 않고 무사히 가민커넥트에서 파일을 열 수 있게 됩니다.
알고보면 비교적 간단한 원인과 해결방법이지만 이 배경을 모르는 입장에서는 도무지 이해할 수 없는 동작의 연속입니다. 파일에 확장자가 있는데 이 확장자를 기준으로 파일을 어떤 앱으로 열지 결정해 왔지만 요즘에는 이 걸리적거리는 확장자를 표시하지 않고 파일 이름만으로 파일을 핸들링하게 만드는 추세인 모양입니다. 윈도우 OS를 포함해서 어지간한 환경에서는 더이상 확장자를 표시하지 않습니다. 하지만 여전히 수많은 앱들이 확장자를 기준으로 파일을 핸들링하고 위에 이야기한 형태의 오동작이 일어나면 문제를 해결할 수 없게 됩니다. 눈에 보이지도 변경할지도 못하는 확장자 때문에 문제가 일어났다고 누가 쉽게 눈치챌 수 있을까요?
이건 구글문서도구를 통해 XML 형식의 GPX 파일을 배포하는 쪽, 내용물에 맞춰 확장자를 바꿔버리는 구글문서도구 앱, 파일을 내용물 대신 확장자로만 판단하는 가민커넥트 중 누구 하나의 잘못이라고 말하기도 어렵습니다. 하지만 그냥 어렵다고만 하기에는 이들 각각의 행동과 구현이 겹쳐 도무지 해결하기 어려운 문제를 만들었습니다. 물론 이 문제는 위에 이야기한 방법으로 해결하면 되겠지만 지난 수십년 동안 이어져내려온 확장자 개념은 그리 쉽게 빠른시간 안에 없앨 수 있을만한 물건은 아니라는 생각입니다. 마치 윈도우 OS가 8.1 다음에 10으로 버전을 올릴수밖에 없었던 이유만큼이나 그동안 쌓인 관습을 잠깐동안에 바꾸는건 어려워보입니다. 그 사이에 사용자들은 이해하기 어려운 문제에 고통받습니다.