길동무를 오픈소스로 공개했습니다

길찾기 앱 '길동무'를 출시하면서 소스 코드도 공개하겠다고 말씀드렸었는데요. 지난 17일에 저장소를 public으로 전환하고 MIT 라이선스로 공개했습니다.

저장소에서 확인할 수 있는 것은 이런 것들입니다.

  • 웹앱, iOS 앱, CLI, MCP, 테스트 코드 (약 11만 줄)
  • 실시간 도보 안내 판정 로직
  • 서울시 음향신호기, 서울 지하철역 음성유도기, 전국 도시철도역 등 공공데이터와 오픈스트리트맵에서 뽑은 전국 횡단보도·점자블록 (각각 라이선스가 다름)
  • 개발 과정에서 Claude가 작성한 설계, 조사 등 각종 문서 200여 개

길동무를 개발하면서 공공데이터와 오픈소스의 힘을 엄청나게 많이 느끼고 있는 중입니다.

공공데이터와 공공 API

먼저, 공공 API인데요. 길동무 앱에서는 버튼 하나만 눌러도 현재 도착하고 있는 마을버스 정보까지 정확히 확인할 수 있는데요. 마을버스와 시내버스 도착 정보는 물론이고 지하철 열차 위치, 따릉이 잔여 대수, 역 엘리베이터와 장애인 화장실, 여행지 무장애 편의시설, 날씨와 미세먼지 같은 정보들은 모두 공공데이터포털, 서울열린데이터광장 등에 공개되어 있는 API를 통해 실시간으로 가져 옵니다.

그리고 음향신호기, 음성유도기, 도시철도역 목록은 각각 서울시, 서울교통공사, 국가철도공단이 공개한 공공데이터에서, 횡단보도와 점자블록 데이터는 영국의 비영리 재단이 운영하는 오픈스트리트맵에서 가져왔습니다.

오픈소스 코드

코드야 말할 것도 없습니다. 특히 웹 쪽이 그런데요. 웹앱은 Vercel의 Next.js와 메타의 React로 만들고, 코드는 마이크로소프트의 TypeScript로 쓰고, 자동 테스트는 개발자 커뮤니티가 만든 Vitest로 돌리는데요. 모두 오픈소스로 공개된 것이라 비용도 승인 요청도 필요하지 않았습니다.

그동안 수많은 사람들이 이 많은 API, 데이터, 코드베이스를 구축하기 위해 한땀 한땀 정보를 모으고 코드를 짰을 텐데요. 그 결과를 모두 무료로 공개해 준 덕분에 저는 이것들을 길동무 앱이라는 하나의 그릇에 모으고 접근성 기반 앱이라는 정체성을 만들 수 있었던 것입니다.

민간 기업의 몫

물론 민간 기업의 몫도 큽니다. 핵심 기능에 해당하는 장소 검색과 길찾기는 카카오, 네이버, 티맵, ODsay의 API를 쓰고 있고, iOS 앱은 애플이 만든 프레임워크로 개발했습니다. 채팅은 구글의 Gemini, 웹 검색은 Perplexity, 웹앱의 음성 받아쓰기는 Deepgram 기반이고요. 이 API들은 비록 상용이긴 하지만 특히 지도 쪽은 무료 한도가 넉넉하고, AI 쪽도 비용이 저렴한 편이어서 앱을 무료로 배포할 수 있었습니다. (제가 부담하는 비용이 0이란 것은 아닙니다 :) ㅎ)

AI와 공공재

한편, 여기서 다시 발견하게 되는 사실은 AI가 이 모든 걸 다 혼자 만들어 주는 게 아니라, 이 데이터와 도구들을 발견하는 것을 도와주고, 그것들을 조립하고 검증해 주는 역할을 한다는 점인데요. 사실 그 AI란 것도 기존에 웹에 공개되어 있던 수많은 공공재가 가장 기초적인 학습 데이터였을 테니 본질적으로 공공이 공공을 낳고 있는 셈이긴 합니다.

공공의 것은 공공에게

바이브코딩으로 길동무 앱을 만들면서 이렇게 공공의 가치를 또 배웠습니다.

앞으로

앞으로 이 앱에 붙이고 싶은 기능들이 많은데요. 혼자의 힘으로 어디까지 갈 수 있을지는 모르겠지만 더 많은 분들이 이런 프로젝트를 열어 주신다면 서로 건설적인 피드백을 주고받으며 개발할 수 있지 않을까 싶습니다. 그리고 이 앱은 스크린리더 사용자에 초점을 맞추었지만, 휠체어장애인, 청각장애인, 지적장애인 등에 대한 맞춤형 앱들이 더 많이 나와주었으면 하는 바람이고요. 아무쪼록 접근성 내비게이션이라는 분야가 길동무 하나가 아니라 생태계로 커지는 데 이 코드가 밑거름이 되면 좋겠습니다.

링크

길동무에 실시간 도보 안내 기능을 추가했습니다

스크린 리더 사용자를 위한 전용 길찾기 앱, '길동무'를 앱 스토어에 출시한 지 보름여가 지났네요. 앱 스토어 통계를 보면 지금까지 130명 이상이 다운로드해 주셨고, 대부분 한국이지만 미국에서도 여섯 번 다운로드가 있었습니다. 제가 아직 분석 툴을 제대로 갖추고 있는 것은 아니어서 정확한 확인은 어렵지만, 웹앱, CLI, MCP 사용자는 그만큼 많은 것 같지는 않고요. 아무튼 앱을 출시한다는 것과 그것이 많은 사용자에게 쓰인다는 것은 전혀 다른 문제라는 것을 알기에 이 정도 숫자는 많지도, 적지도 않은 딱 적당한 숫자인 것 같습니다! ㅎ

그동안 주변에서 몇몇 분들이 피드백을 주셨는데요. 가장 많이 들었던 이야기가 실시간으로 길 안내를 해주는 기능은 없냐는 것이었습니다. 저도 이 앱을 만들기 시작한 초기 단계부터 실시간 길 안내 기능을 여러모로 연구해 왔고, 공개되어 있는 데이터와 API를 어떻게 조합하면 정확하면서도 쓰기 편한 앱이 될지 고심을 많이 했는데요. 수많은 테스트 끝에 드디어 iOS 앱 1.7 버전에서 도보 안내 기능을 공식 업데이트로 배포했습니다. 이미 앱을 사용 중이신 분들은 길찾기 탭을 열어 보시면 공지를 만나실 수 있습니다. 만약 아직 공지가 뜨지 않는다면 앱을 업데이트하신 후에 확인해 보실 수 있고요. 제가 공지에도 적었듯 GPS와 API, 데이터의 한계가 있으므로 익숙한 곳에서 먼저 사용해 보시길 권합니다!

실시간 도보 안내 기능은 저도 종종 사용하는 '보행자용 지도, 내비게이션' 앱과 한때 사용해 보았던 '블라인드스퀘어' 앱에서 아이디어를 많이 얻었고요, 아마 그런 앱들을 사용해 보신 분들이라면 간편하게 사용하실 수 있을 것입니다. 실제로 저도 거의 매일매일 사용하고 있고요, 이 기능을 통해서 평소에 출퇴근하던 길도 조금 더 빠르게, 조금 더 편하게 걷고 있습니다.

참고로 이 앱에서 공을 많이 들이고 있는 것 중 하나가 어떻게 하면 화면을 탭하는 횟수를 최소화할 수 있을까 하는 점인데요. 장소를 검색하고, 경로를 조회하고, 도보 안내를 켜는 과정, 그리고 길을 걸어가면서 확인하는 과정 모두에서 화면을 너무 자주 만지지 않아도 되게끔 자동 초점 이동이 자연스럽게 일어나도록 설계했고, 자주 가는 경로는 최근 목록에서 고정할 수 있게 했습니다. 이동하는 동안 안내 화면을 보이스오버로 일일이 탐색하지 않아도 남은 거리와 다음에 할 일을 주기적으로 사운드 효과와 음성으로 알려주도록 만들었고요, 그리고 안내를 받는 동안에는 앱이 백그라운드에서도 동작하게 했습니다. 이동하는 동안 화면을 잠그고 주머니에 넣으셔도 사운드 효과는 들으실 수 있습니다.

아직 부족한 부분이 많겠지만 그래도 많이들 사용해 보시면서 피드백을 주시면 꾸준히 개선하도록 하겠습니다.

앱 다운로드 방법

아이폰에서 App Store를 열고 '길동무'로 검색하시면 '길동무: 텍스트 기반 접근성 길찾기 앱'이 나옵니다. App Store에서 길동무 내려받기 링크로 바로 들어가셔도 됩니다.

아이폰을 쓰지 않으시더라도 웹 브라우저에서 길동무 사용하기로 이용하실 수 있습니다.

터미널에서 쓰시는 분들을 위한 명령줄 도구와, AI 도구에 연결해 쓰는 MCP 서버도 함께 공개해 두었습니다. npm install -g gildongmu로 명령줄 도구를, npm install -g gildongmu-mcp로 MCP 서버를 설치하실 수 있습니다.