길찾기 앱, '길동무'를 소개합니다

스크린 리더 사용자를 1차 사용자로 설계한 대한민국 길찾기 앱

'길동무'는 시각장애인으로서 늘 느꼈던 '주소와 전화번호를 빨리 찾고 싶다'는 페인 포인트를 해소하기 위해서 만들기 시작한 앱입니다. 시각장애인 입장에선 어딘가로 이동하기 위해서 주소가 필요하고, 그곳의 컨디션을 확인하기 위해서 전화 통화를 하는 것이 가장 빠르죠. 그 두 가지를 최대한 단순한 UI로 구현하고 싶었습니다. 이 기본 기능들은 카카오맵, 네이버지도, 주소 API를 연결하니 해결됐습니다.

이미지: 길동무 앱의 장소 상세 화면. 제목은 경복궁이고 분류는 '여행 > 관광,명소 > 문화유적 > 고궁,궁'이다. 도로명 주소 '서울 종로구 사직로 161'과 지번 주소 '서울 종로구 세종로 1-1'이 각각 복사 버튼과 함께 놓여 있고, 그 아래 '전화 걸기, 02-3700-3900'과 '이 장소에 관해 물어보기' 버튼이 있다. 길찾기 섹션에는 여기까지 길찾기, 네이버 지도 길찾기, 카카오맵 길찾기, 자동차 경로 미리 듣기, 대중교통 경로 미리 듣기가 차례로 이어진다.

▲ 장소 상세 화면. 주소 복사와 전화 걸기가 한 화면에 있습니다.

그런데 만들다 보니 욕심이 더 생겼습니다. 아이랑 밖을 다니다 보면 급하게 근처 상황을 파악해야 할 때가 많은데요. 아이 놀 곳을 찾는다든지, 때론 근처 소아과를 찾는다든지요. 그래서 카카오맵 API에 서울시, 심평원 같은 공공데이터를 얹어서 내 주변을 빠르게 탐색하고 확인할 수 있는 UI를 추가했습니다. 주변 지하철 도착 정보, 버스 도착 정보, 따릉이 대여소, 소아 야간·휴일 진료, 무장애 관광지, 아이 놀 곳 등을 바로 확인하실 수 있습니다.

이미지: 길동무 앱의 지하철 도착 화면. 맨 위에 '둔촌동, 5호선, 414m'가 있고 그 아래 '5호선, 방화행 - 강동방면, 10분 후 (거여)', '5호선, 마천행 - 올림픽공원(한국체대)방면, 5분 후 (광나루(장신대))'처럼 노선과 방면, 도착 시간이 한 줄에 하나씩 나열된다. 이어서 '중앙보훈병원, 수도권 도시철도 9호선, 760m'와 '길동, 5호선, 892m'가 거리순으로 이어진다.

▲ 내 주변 지하철 실시간 도착.

그런데 이렇게 만들고 나니 뭐가 빠진 느낌이 들었습니다. 바로 이 앱의 정체성인 길찾기 기능이죠. 구현이 까다로울 것 같아서 미루기도 했지만 결국은 구현했습니다. 중요한 건 목적지까지의 경로를 텍스트로 안내받는 것이었습니다. 시중의 지도 앱들은 그래픽 UI를 기본으로 하는데요. 시각장애인에겐 불필요한 정보일 뿐 아니라 화면 탐색에 오히려 방해가 되죠. 다행히도 카카오, Tmap, ODsay가 길찾기 API를 제공하더라고요. 그래서 당장 연결했습니다. 특히 카카오는 최근 출시한 도보 경로 API에서 계단을 피해 가는 경로까지 따로 요청할 수 있게 해 놓았더라고요. 예를 들어, 경복궁역부터 서울맹학교까지 입력하면 도보 경로를 이런 식으로 안내합니다.

총 1.4km, 약 24분

  1. 경복궁역 2번 출구까지 역사 내 이동
  2. 경복궁역 2번 출구 진출 후 356m 이동(자하문로)
  3. 새마을금고 앞에서 횡단보도 이용, 음향신호기 있음
  4. 오토포토 서촌 앞에서 신한은행까지 214m 이동
  5. 신한은행 앞에서 횡단보도 이용, 음향신호기 있음
  6. 종로 프라자약국 앞에서 신교동교차로까지 253m 이동(자하문로)
  7. 신교동교차로에서 횡단보도 이용, 음향신호기 있음
  8. 종로아이존 앞에서 320m 이동(필운대로)
  9. 오른쪽길로 42m 이동(필운대로13길)

완벽하진 않지만 대강의 경로는 머릿속에 그릴 수 있습니다.

이미지: 길동무 앱의 길찾기 화면. 출발지는 '현재 위치(서울특별시 강동구 풍성로65길 39-6 부근)', 도착지는 '경복궁'이고 '3개 수단의 경로 안내가 준비되었습니다'라는 안내가 뒤따른다. 대중교통은 '약 50분, 요금 1,750원, 환승 1회, 도보 14분'으로 요약된 뒤 도보 6분, 수도권 5호선 둔촌동 승차 종로3가 하차 15개 역 29분, 수도권 3호선 종로3가 승차 경복궁 하차 2개 역 4분, 도보 5분으로 구간이 이어진다. 그 아래 자동차 경로가 '총 17.2km, 약 53분, 택시 요금 약 22,100원'으로 표시된다.

▲ 대중교통, 자동차, 도보를 한 화면에서 비교합니다.

그리고 이에 더해 투박한 문장 대신 조금 더 친절한 안내를 받을 수 있도록 Gemini API를 이용하여 채팅 기능을 붙였습니다. Gemini는 길찾기 기능뿐 아니라 이 앱에서 사용하는 대부분의 기능을 도구 호출로 정보를 가져와 자연스럽게 답변해 줍니다. 채팅을 구현하면서 생각했던 건 서울 다산콜센터였는데요. 120번으로 전화해서 물어보면 뭐든지 빨리 찾아서 대답해 주는 그 편의성을 Gemini가 대신하는 걸 목표로 만들었습니다. 학습한 지식이 아닌 도구 호출을 통해 답변해 주니까 정확도는 높습니다. 쉽게 말해 Gemini가 이 앱을 사용해서 답변해 준다고 보시면 됩니다.

이미지: 길동무 앱의 AI 채팅 화면. '강동역 근처 맛집 알려줘'라는 질문에 강동호치민(베트남음식), 꿀꿀진순대국 강동본점(순대), 소문난사골칼국수(칼국수), 율베이커리(제과/베이커리), 코쿤 성내점(일식), 2.5짜장 성내본점(중국요리) 여섯 곳을 상호와 주소로 답했다. 이어서 강동역 주변 공기질을 통합대기환경지수 좋음 32, 미세먼지 좋음 19, 초미세먼지 좋음 5로 알려 준다. 화면 아래에는 메시지 입력창과 받아쓰기 버튼, 보내기 버튼이 있다.

▲ 도구를 호출해 답하는 AI 채팅.

그리고 또 한 가지 신경을 많이 쓴 UI가 받아쓰기 기능입니다. 웹앱에는 경험상 받아쓰기 정확도가 매우 좋았던 Deepgram API를 붙였고, iOS 앱에는 아이폰이 자체적으로 처리하는 온디바이스 인식을 썼습니다. 그래서 앱에서 받아쓴 음성은 기기 밖으로 나가지 않습니다. 사용법에는 일반적인 탭으로 시작하고 종료하는 토글 방식뿐 아니라 와츠앱에서 사용하는 누른 채 녹음하기(push to talk) 방식도 구현했습니다. 개인적으로는 누른 채 입력하는 방식이 마음에 들어서 사용하고 있습니다. 받아쓰기 방식은 설정에서 선택하실 수 있습니다.

마지막으로 이 모든 걸 iPhone으로 간편하게 처리하고 싶었습니다. 그래서 iOS 앱을 만들었습니다. 이제 앱스토어에서 '길동무'로 검색해 설치하실 수 있습니다. 그리고 터미널에서 AI 에이전트가 호출해서 사용할 수 있게 하고 싶었습니다. 그래서 CLI와 MCP도 만들었고요. 그리고 컴퓨터에서 사용하시는 분을 위해 웹앱도 지속 업데이트하고 있습니다. 웹앱은 최근 트렌드를 따라 옴니박스 형태로 구현하여 iOS보다도 미니멀한 UI로 사용하실 수 있습니다.

'길동무'는 현재 한국어, 영어, 프랑스어, 스페인어, 이탈리아어, 일본어, 6개국어를 지원합니다. 외국에서 한국으로 여행 오시는 시각장애인도 편하게 사용하실 수 있습니다. 로그인은 필요하지 않고, 그 어떤 개인정보도 길동무 서버에 저장하지 않습니다. 단, 채팅은 Gemini 서버로 전송되므로 개인정보 동의 후 사용하실 수 있습니다.

'길동무'는 제가 처음으로 만든 iOS 앱이자, 처음으로 일반 대중에게 공개하는 앱입니다. 처음 커밋부터 앱스토어 배포까지 49일 걸렸고, 코드 규모는 약 4만 9천 줄, 오늘까지 커밋은 861개입니다. 제가 AI 페어 코딩으로 혼자 개발했고, 화면을 전혀 보지 않고 스크린 리더로만 작업했습니다. 카카오부터 기상청, 국립중앙의료원까지 19개 곳에서 30종의 API·데이터 소스를 통합했고, 그중 공공데이터 API는 17개입니다. 비용은 0원, 광고는 없습니다.

부족한 것이 많지만, 많이 사용해 주시면 감사하겠습니다! 추후 발견되는 버그나 문제점은 최대한 빨리 대응하도록 하겠습니다.

설치와 이용

iOS 앱

https://apps.apple.com/kr/app/id6792234349

앱 스토어에서 '길동무'로 검색하셔도 됩니다. iOS 26 이상에서 설치되고 크기는 2.8MB이며, 175개국에서 내려받으실 수 있습니다.

웹앱

https://gildongmu.dodoplanet.space

설치 없이 브라우저에서 바로 쓰실 수 있습니다.

터미널에서 쓰는 CLI

npm install -g gildongmu

설치하면 gildongmu, 짧게는 gil 명령을 쓸 수 있습니다. gil search "맥도날드", gil route walk "길동역" "강남역", gil nearby subway --near "강동역" 같은 식입니다.

AI 에이전트가 쓰는 MCP 서버

Claude Code라면 아래 한 줄로 등록됩니다.

claude mcp add gildongmu -- npx -y gildongmu-mcp

Cursor나 Cline 등은 mcpServers 설정에 command를 npx로, args를 ["-y", "gildongmu-mcp"]로 넣으시면 됩니다. 길동무의 도구 24종을 그대로 부를 수 있습니다.

CLI와 MCP 서버는 길동무의 공개 API를 그대로 부르는 얇은 클라이언트라, 계정이나 API 키 없이 바로 쓰실 수 있습니다.

주석

아래 수치는 2026년 7월 31일 길동무 리포지토리에서 스크립트로 실측했거나 App Store 공개 정보에서 조회한 값이다.

  • 개발 기간 49일: 첫 커밋 2026년 6월 12일, App Store 승인 7월 30일. 첫날을 1일로 세어 49일째다.
  • 코드 약 4만 9천 줄: 웹 34,352줄, iOS 11,026줄, CLI·MCP 3,992줄을 합한 49,370줄. 그중 웹 코드는 45%가 테스트다. 자동 테스트는 1,522개이고, 매 커밋 전부 통과해야 병합한다.
  • API 30종·19곳: 카카오와 카카오모빌리티, 네이버와 네이버클라우드를 각각 한 곳으로 묶어 센 값이다. 법인 단위로 세면 21곳이 된다. 공공데이터포털(data.go.kr) 키로 호출하는 API가 12종, 서울 열린데이터광장이 5종으로, 통합한 소스의 절반 이상이 공공데이터다.
  • 도보 경로 예시: 2026년 7월 31일 경복궁역에서 국립서울맹학교 종로캠퍼스까지 실제로 조회한 응답이다. 총 1,380m, 약 24분으로 안내됐다.
  • "음향신호기 있음": 서울시가 공개한 음향신호기 16,822개 좌표를 앱에 내장해 두고, 경로의 횡단보도 좌표와 40m 안에서 만나면 붙인다. 여러 횡단보도가 한 문장으로 묶인 단계는 어느 곳인지 특정할 수 없으므로 아무 말도 하지 않는다.
  • 계단을 피하는 경로: 웹에서 먼저 쓸 수 있고, iOS 앱에는 출시 직후 이식해 다음 버전부터 들어간다.
  • 스토어 제품 페이지의 "손쉬운 사용" 항목에 VoiceOver 지원을 등록해 두었다. 설치 전에 확인할 수 있다.

Comments

좋은 앱이 개발됬네요. 개발해주셔서 감사합니다. 한가지 의견이 있습니다. 이 앱이 안드로이드용으로도 개발됬으면 합니다. 엠블루와 같은 버튼으로 사용하는 스마트폰과 갤럭시s26과 같은 터치형 스마트폰에서 사용할 수 있었으면 합니다.

Add a comment