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

길찾기 앱 '길동무'를 출시하면서 소스 코드도 공개하겠다고 말씀드렸었는데요. 지난 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 서버를 설치하실 수 있습니다.

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

스크린 리더 사용자를 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 지원을 등록해 두었다. 설치 전에 확인할 수 있다.

🧰 시각장애인을 위한 스킬 모음

지난 몇 달 동안 만들고 지속적으로 업데이트하면서 사용하고 있는 스킬 5종을 공개합니다. 사실 이렇게 공개되는 수많은 스킬 가운데 직접 다운받아서 쓰게 되는 스킬이 많지는 않은데요. 그래도 이 스킬들 중 일부라도 사용하시는 스킬에 통합하거나, 아이디어라도 가져다 쓰시면 도움이 되시리라 생각합니다.

일단 먼저 말씀드리면 제가 만든 스킬들은 대체로 무거운 편입니다. 최대한 많은 업무를 절차화하려고 노력했고, 개중에는 의존성 설치와 유료 API 키 입력이 필요한 것들도 있습니다.

이 스킬들은 시각장애로 인한 컴퓨터 업무 제약을 에이전트를 통해 뛰어넘고자 만든 것들이기 때문에 취미나 실험이 아니라, 제 현업에 바로 적용되는 것들입니다. 그래서 비용도 시간도 고려하지 않고, 무조건 최상의 결과만을 목표로 만들고 계속 업그레이드하고 있습니다. 스킬이 고도화되는 것이 곧 저의 업무 성과에 반영되니까요.

다만 공개를 위해서 개인정보 포함된 것들은 모두 삭제하고 스킬도 조금 다이어트하긴 했네요. 그 작업이 만만치 않더라고요.

설치하는 방법은 간단합니다.

Claude Code, Codex, Antigravity 같은 AI 에이전트에게 URL을 주면서 전체 스킬을 설치해 달라고 프롬프팅하는 것입니다.

https://github.com/Engccer/skills-for-the-blind

그게 아니라면 터미널에서 아래 명령어를 입력하여 먼저 skills-for-the-blind 스킬을 설치한 후 AI 에이전트에게 이 스킬에 따라 실제 5종을 설치하고 관리해 달라고 프롬프팅하셔도 됩니다. 이 스킬은 나머지 5개의 실제 스킬을 설치하고 관리할 수 있게 하는 가벼운 오케스트레이터 역할의 스킬입니다.

npx skills add Engccer/skills-for-the-blind -g

덧. 이 스킬들을 돌리는 데 예상보다 많은 토큰이 소모될 수 있습니다.

TIP: 아래 스킬 사용법에서 특정 파일을 지목하며 프롬프팅하라는 말이 몇 번 나오는데, 로컬에서 AI 에이전트 사용할 때 파일을 지목하는 범용적인 팁이 하나 있습니다. 바로 원하는 파일의 경로를 입력하는 것입니다. Windows에서는 Ctrl+Shift+C를, Mac에서는 Command+Option+C를 누르면 포커스되어 있는 파일의 경로가 복사됩니다. 이렇게 복사한 파일 경로를 프롬프트 창에 붙여넣고 프롬프팅하시면 AI 에이전트가 딱 그 파일에 대해서만 작업합니다.


1. agent-cli-tts-summary 스킬

일단 복잡한 작업을 마친 AI 에이전트들은 말이 굉장히 많습니다. 그걸 일일이 스크린 리더로 확인하는 것이 번거로워서 만들었습니다. 초기에는 GitHub에 공개된 다른 TTS 프로그램들을 많이 바꿔 가면서 사용해 봤는데 스크린 리더로 단련된 제 귀의 성에 차는 프로그램이 없었습니다. 최종적으로는 AgentVibes라는 훅 기반 프로그램에서 출발해서 완전히 독자적인 스킬로 만들었고, 기본은 Windows와 Mac에 내장된 TTS 음성을 사용합니다. 원하시면 Gemini나 ElevenLabs API 키를 넣어서 조금 더 자연스러운 음성으로 사용하실 수 있습니다. 물론 그 경우 별도 과금이 발생합니다.

사용 방법은 스킬대로 한 번 설정하는 것으로 끝납니다. 그때 훅과 지침 등을 모두 설정해 주고, 다음부턴 스킬을 호출할 일은 없습니다.

2. hwpx-automation 스킬

만드는 데 가장 공을 들인 스킬입니다. 한글문서와 관련해서는 다양한 프로젝트들이 공개돼 있고 스킬들도 나와 있는데요. 아마 제가 만든 스킬이 가장 무거울 것입니다.

무거운 것이 꼭 좋은 것은 아니지만 저는 이 스킬 하나로 한글문서 읽기부터 편집, 생성까지 모든 걸 다 하고 싶었습니다. 한글 문서를 마크다운으로 안정적으로 파싱하여 AI 에이전트들이 내용을 빠짐 없이 파악하게 하는 것이 첫 번째 역할이고, 남이 준 한글 문서에 내 정보를 넣어서 편집하는 일, 마크다운 문서를 HWPX 문서로 변환하는 일, 동의서 같은 문서에 서명 이미지를 삽입하는 일 등도 수행할 수 있습니다. 학교 업무를 하면서 꽤나 복잡한 다단 문서까지도 안정적으로 생성하는 것을 확인했습니다.

참고로 HWP는 일단 HWPX로 변환한 후에 처리하도록 해 놓았습니다. 시중에 HWP를 바로 파싱하는 MCP도 공개되어 있는데 제가 써 보니 복잡한 표에서 파싱 오류가 생기더라고요. 그래서 제 스킬은 무조건 HWPX로 변환 후에 작업하도록 설정되어 있습니다.

다만 한글문서 특성상 아무리 고도화하더라도 자잘한 오류는 생길 수밖에 없습니다. 작업 후에는 반드시 비장애인 동료의 검토를 거쳐 주세요.

사용법은 한글문서 관련 작업 때마다 스킬을 호출해서 사용하시면 됩니다. API 키는 필요 없으며, 대신 미리 설치해 주어야 하는 의존성 패키지들이 여러 개 있는데 스킬 첫 실행 시 자동으로 안내됩니다.

3. docparse 스킬

이 스킬은 hwpx-automation 스킬보다도 더 오랫동안 구축해 온 스킬입니다. PDF, 이미지, 한글문서 등을 마크다운으로 파싱하는 스킬입니다.

시중에 나온 웬만한 오픈소스 및 상용 OCR 도구와 문서 파서들은 다 써 본 것 같은데요, 그 어느 파서도 완벽한 것은 없었습니다. 그래서 이렇게는 안 되겠다 싶어서, 아예 다종 파서를 교차 검증하는 스킬로 만들었습니다.

일단 특정 파일을 이 스킬을 사용해서 파싱하라고 하면 스크립트로 검사부터 합니다. 어떤 파서 조합으로 처리하는 것이 가장 적합한지 진단하는 것이죠. 스킬에 넣어둔 주요 파서는 Upstage, Gemini, LlamaParse, opendataloader-pdf, Mistral, 5종이고 OCR 도구로는 Google Vision이 있는데요. 이미지 스캔 파일이면 Upstage와 LlamaParse로, 텍스트 기반이면 ODL과 Upstage로, 길이가 짧으면 Gemini로 길면 LlamaParse로, 외국어가 있으면 Mistral로 교차 검증하고요, 만약 오타까지 보존해야 하는 손글씨면 Google Vision으로 초벌하고 에이전트가 직접 보면서 감수하는 식으로 파싱을 합니다.

짧은 손글씨 문서부터 수백 쪽에 이르는 의료 문서까지 수없이 많은 문서를 여러 번 파싱하면서 계속해서 최적의 조합을 찾으려고 노력했고 그 때문에 돈도 많이 썼습니다. 현재 시점에서는 그래도 어느 정도 안정이 되었고, 일단 교차 검증을 해 주니 한 파서에 의존할 때보다는 훨씬 높은 품질의 마크다운 문서가 나옵니다.

사용법은 이 스킬이 사용하는 API 키들을 먼저 준비해 주셔야 합니다. ODL을 제외하면 모두 상용 파서들이므로 API 사용 요금이 발생할 수 있습니다. 특히 한국어 품질이 우수해서 가장 자주 쓰게 되는 Upstage 요금이 조금 센 편이니 유의하시기 바랍니다. 한편 LlamaParse가 월 1만 크레딧까지 무료인데 품질이 매우 좋아서 딱 하나만 쓰라면 저는 LlamaParse를 추천합니다. 이 외에도 Google Vision도 월 1,000페이지까지는 무료이고, Gemini와 Mistral도 무료 티어가 넉넉해서 꼭 API 키를 발급하시길 추천합니다.

스킬을 실행하면 API 키 설정을 포함해서 필요한 것들을 안내해 주도록 되어 있습니다. 그 후에는 문서를 지목하면서 docparse 스킬 사용해서 파싱해 달라고 프롬프팅하시면 됩니다.

4. speech-toolkit 스킬

TTS(텍스트를 음성으로), STT(음성을 텍스트로) 변환해 주는 스크립트 모음입니다. TTS는 Gemini/ElevenLabs/OpenAI/Speechify 4종, STT는 Daglo/Deepgram/ElevenLabs/Gemini/Mistral 5종입니다.

앞선 docparse 스킬처럼 최적의 스크립트를 추천해 주는 방식은 아니고 원하시는 TTS/STT 모델을 지목하면서 변환해 달라고 하면 됩니다. 예를 들어, 이 문서를 Gemini 음성으로 변환해 달라고 하거나, 이 오디오 파일을 ElevenLabs를 사용해서 전사해 달라고 프롬프팅하시면 됩니다. 각자 가지고 계신 API 키를 사용하시면 됩니다.

한국어 전사 도구로는 클로바노트가 품질이 좋은데 API 키를 제공하지 않기 때문에 Daglo를 넣어두었습니다. 하지만 이건 설정이 복잡해서 비추천하고, 경험상 ElevenLabs STT가 비용은 조금 비싸도 품질이 가장 좋았습니다. 대량 전사에는 Deepgram도 괜찮았고요. 짧은 글 음성으로 바꿀 때는 Gemini가 품질이 가장 좋은데 텍스트가 길어지면 조금 부자연스럽더라도 ElevenLabs가 안정적입니다.

5. abridge 스킬

이건 가장 최근에 만든 스킬인데 이번에 배포하는 스킬 중 가장 가볍고, 만족도가 상당히 좋습니다. 긴 문서를 짧게 요약해 주는 스킬인데 원문의 구조와 톤을 살려서 요약해 주는 스킬입니다. 원문의 문장들을 최대한 그대로 살려서 요약하기 때문에 AI 방식으로 요약한 게 아니라, 원문의 흐름과 느낌을 그대로 느낄 수 있습니다.

요약본을 음성으로 변환하는 단계도 선택할 수 있는데, 그러면 일종의 축약 버전 오디오북이 됩니다. 긴 문서를 원문 느낌을 살리면서 들을 수 있습니다. 이 스킬에서 사용하는 TTS 스크립트는 제가 가장 만족하는 ElevenLabs로 설정해 두었습니다. 따라서 음성 변환까지 원하시는 경우에는 ElevenLabs API 키가 필요합니다.

사용 방법은 요약하고자 하는 문서를 지목하면서 abridge 스킬로 요약해 달라고 프롬프팅하시면 됩니다. 다만 지목하는 문서가 PDF나 HWPX 같은 파일들인 경우에 앞선 docparse 스킬이나 hwpx-automation 스킬로 먼저 파싱한 후 작업하도록 되어 있습니다.


혹시 사용하시면서 개선할 사항을 발견하시면 GitHub에 이슈로 남겨 주세요. 개인적으로 연락 주셔도 좋습니다~ 저는 늘상 사용하는 스킬들이니 앞으로도 계속 고도화해 나갈 예정입니다 :)

[TFE 리뷰] 냉수는 되는데 온수는 왜 안 될까

기술의 발전이 눈부시다. 하지만 그 결실은 고르게 분배되지 않는다. 지난 3~4년간 AI의 급격한 일상 침투로 그 격차는 더욱 커지고 있다. 한쪽에서는 AI로 인력이 대체될 수도 있다고 우려하지만, 또 다른 한쪽에서는 아주 작은 일상생활도 기술 장벽에 의해 가로막힌다. 예를 들어, 상지 지체장애인이나 나 같은 시각장애인은 정수기에서 적정량 온수를 받는 것조차도 여전히 쉽지 않은 과제다.

5년 전 신혼 가전을 마련하면서 LG전자의 얼음정수기냉장고를 구매했다. 얼음을 얼리는 번거로움을 줄이기 위한 선택이었지만, 내겐 그 이상의 뜻밖의 이점이 한 가지 더 있었다. "정수 500ml 출수해 줘." 이렇게 말하면 정확히 그만큼 물이 나오는 것이다.

이건 나에게 작지 않은 혁신이었다. 이전까지는 라면의 물량을 맞추는 것조차 쉽지 않았다. 음성을 통한 출수량 제어 기능 덕분에 더 이상 짜거나 싱거운 라면을 먹지 않아도 되었다.

그런데 이 편리한 기능이 일반적인 정수기에서는 반쪽만 작동한다. 온수에서는 작동하지 않기 때문이다. 정수기에 대고 "온수 150ml 출수해 줘"라고 말해도 아무 일도 일어나지 않는다. 기술이 부족해서가 아니다. 법이 허락하지 않는 것이다.

국내 전기용품안전기준 KC 60335-2-21의 22.113항은 이렇게 규정한다.

"음용수 온수기는 이중 조작으로 온수가 토출되는 구조여야 한다."

취지 자체는 합리적이다. 화상 방지를 위해 두 단계에 걸쳐 조작하도록 한 것이다. 문제는 여기서 '조작'이 사실상 물리적 버튼만을 의미한다는 점이다. 음성 명령을 '조작'으로 인정하는 기준 자체가 존재하지 않는다. 이 기준은 2007년에 제정되었다. 아이폰이 세상에 나온 바로 그 해다. AI 음성 인식이라는 개념 자체가 없던 시절의 규정이 거의 20년이 지난 지금도 그대로 적용되고 있는 것이다.[*]

규정 한 줄이 막고 있는 것들

나는 1년 전 LG전자의 볼드무브(Bold Move) 활동에 참여했다. 이때 이 구시대적 규정의 폐해가 어떤 것인지 처음 듣게 되었다. 참고로 볼드무브는 LG전자가 장애인과 노약자의 가전 사용 편의성을 개선하기 위해 만든 국내 최초(아마도 세계 최초) 장애인 사용자 커뮤니티다.

이 활동에서 전자제품 사용의 어려움에 대한 이야기를 하다가 정수기 온수 이야기가 나왔다. 손의 세밀한 제어가 어려운데 온수를 받으려면 버튼을 두 번 누르거나 동시 조작해야 해서 혼자 받기 어려운 사례가 있다는 것이다. 그런 경우에 이것은 사실상 온수를 쓸 수 없다는 뜻이었다.

돌아와서 생각해 보니 나도 온수를 받을 때면 늘 얼마간 긴장을 하고 있었다. 자칫 물이 넘쳐 흐를까 봐 조심스럽게 받는 것이다. 다른 시각장애인 지인들에게도 물어봤다. 다들 비슷한 불편을 안고 살고 있었다. 그제서야 너무 일상적인 불편이라 불편인 줄 모르고 살아왔다는 것을 깨달았다.

생각해 보면 역설적인 상황이다. 냉수와 정수는 음성으로 정확한 양을 받을 수 있다. 그런데 정작 화상 위험이 있는 온수에서는 음성 제어가 차단되어 있다. 더 위험한 쪽에서 오히려 보호 기술이 작동하지 못하고 있는 것이다.

기술은 이미 와 있다

수년 전만 해도 나는 옷을 고르거나 우편물을 읽으려면 사람을 불러야 했다. 지금은 아니다. Seeing AI, 챗GPT가 내 눈을 대신하여 상황을 말로 설명해 준다. 집 안에는 LG ThinQ 허브를 포함해 7개의 AI 스피커를 놓았다. 시간이나 날씨를 확인하는 기본적 기능뿐 아니라, 보일러 온도를 바꾸고, 세탁기가 다 돌아갔는지 확인하는 것까지 전부 음성으로 처리한다. 시각장애인에게 음성 인터페이스는 '편리'가 아니다. '자립'을 가능하게 하는 수단이다.

제조사 쪽도 준비가 되어 있다. LG전자를 비롯한 주요 기업들은 이미 높은 수준의 AI 음성 인식 기술을 갖추고 있고, 냉수와 정수에는 실제로 적용하고 있다. 음성으로 온수를 안전하게 제어할 기술은 이미 존재한다. 그런데 20년 전 규정이 그 기술의 적용을 막고 있는 것이다.

'규제 샌드박스'라는 도구

여기서 '규제 샌드박스'라는 제도를 소개하고자 한다. 아직 많은 사람에게 낯선 개념일 수 있다.

이름 그대로 '모래놀이터'다. 아이들이 모래놀이터에서 자유롭게 노는 것처럼, 기존 규제를 일정 기간·일정 범위 안에서 면제하고 새로운 기술이나 서비스를 실제 환경에서 시험해 보게 하는 제도다.

핵심은 '규제를 없애는 것'이 아니다. 증거를 모으는 것이다. 통제된 조건에서 실증 데이터를 쌓는다. 그 데이터를 근거로 기존 법을 바꿀지 유지할지 판단한다. '잘 모르겠으니 일단 금지'도 아니고 '너희를 믿고 모든 걸 맡긴다'도 아니다. 감이나 추측이 아니라 데이터로 규제를 섬세하게 설계하는 장치가 바로 샌드박스다.

해외에서는 이 도구가 이미 활발하게 쓰이고 있다. 특히 접근성 분야에서 주목할 만한 사례가 여럿 있다.

미국부터 보자. 안전 인증 기관 UL은 지난 2025년 6월 가정용 전기레인지 기준(UL 858)을 개정했다. 이전에는 금속 표면의 최대 온도가 33°C를 넘으면 안 된다거나, 최대 화력으로 30분간 주철 팬에 담긴 식용유가 발화하지 않아야 한다는 등의 물리적 기준만 있었다.

하지만 최신 개정판에서는 스마트 기기의 원격·음성 제어를 공식 허용하면서 새로운 종류의 안전 기준을 추가했다. 예를 들어, 인터넷이 끊기면 기기가 스스로 꺼지도록 하고, 소프트웨어 업데이트가 해킹되지 않도록 암호화를 의무화하고, 기기 오작동 시 집안의 차단기가 제대로 작동하는지까지 검증하도록 했다. 안전의 기준 자체가 바뀐 것이다. '사용자가 버튼 앞에 서 있는가'가 아니라 '시스템이 위험을 감지하고 스스로 차단하는가'가 핵심 질문이 되었다. 기술이 발전하는 만큼 안전 장치도 함께 발전하도록 개정한 것이다.

EU도 AI 기본법에 의미 있는 샌드박스 규정을 두고 있다. 제59조는 규제 샌드박스 안에서 개인정보 활용의 특례를 둔다. 공중 보건, 교통·이동성, 환경 보호 같은 공익 목적의 AI를 개발할 때, 원래 다른 용도로 수집된 개인정보를 샌드박스 안에서 재활용할 수 있도록 한 것이다. 장애인의 이동권이나 건강 관련 AI도 이 범주에 포함될 수 있다. 물론 데이터 격리, 접근 제한, 실험 종료 시 삭제 등 10가지 엄격한 조건이 전제된다. 개인정보보호에 세계에서 가장 엄격한 EU조차도, 공익을 위한 AI 혁신에서만큼은 통제된 실험의 여지를 열어둔 것이다.

가까운 일본은 더 과감하다. 일본에서는 2017년부터 자율주행 전동 휠체어의 실증이 시작되었다. 목적지를 지정하면 휠체어가 알아서 이동하고, 내린 뒤에는 빈 상태로 대기 장소까지 자동으로 돌아가는 방식이다. 2020년 하네다공항에서 세계 최초로 정식 서비스가 시작되었고, 이후 간사이·나리타·오사카 공항으로 확대되었다. 주 이용자는 거동이 불편한 고령자와 장애인이다.

이런 실증 과정에서 축적된 데이터를 근거로 2022년 도로교통법이 개정되었다(2023년 4월 시행). '이동용소형차'라는 새 카테고리를 만들어, 장애 유무와 관계없이 전동 휠체어 규격의 이동 수단을 보행자로 인정한 것이다. 이전에는 매번 경찰의 개별 허가가 필요했지만, 개정 후에는 사전 신고만으로 일반 도로 주행이 가능해졌다. 아직은 공항과 일부 시범 지역 중심이지만, 법이 바뀌면서 역 주변이나 상점가 같은 생활권으로 실증이 확대되고 있다. 실험이 법을 바꾸고, 바뀐 법이 다시 실험의 범위를 넓히고 있는 것이다.

이 사례들의 공통점이 있다. 먼저 통제된 환경에서 시도하고, 데이터를 쌓는다는 점이다. 그 데이터로 법을 바꾼다. 규제가 혁신의 벽이 아니라 혁신의 검증 도구가 되는 것이다.

온수 한 잔에서 시작하자

정수기의 온수 음성 제어가 사소해 보일 수 있다. 하지만 이것은 단순한 기능 요청이 아니다. 새로운 패러다임에 대한 질문이다. 물리적 버튼만을 '조작'으로 인정하는 20년 전의 프레임을 언제까지 유지할 것인가.

이 프레임이 바뀌지 않는 한, 아무리 기술이 발전해도 손이 불편한 사람, 눈이 보이지 않는 사람, 정수기 앞까지 갈 수 없는 사람은 계속 배제된다. 정수기만의 문제가 아니다. 물리적 접촉이 전제된 가전이라면 어디서든 같은 일이 반복되는 것이다.

한 가지 장애인 당사자로서 분명히 해두고 싶은 것이 있다. 안전과 개인정보 보호는 양보할 수 없는 가치라는 점이다. AI 스피커가 수집하는 데이터가 어디로 가는지, 장애인의 음성 패턴 같은 민감 정보가 어떻게 쓰이는지, 그 투명성은 지금보다 더 강화되어야 한다. 이 점에서는 타협이 없다.

그러나 그 우려를 이유로 20년 된 규정을 방치하는 것은 '신중함'이 아니다. 구체적으로 떠올려 보라. 사용자가 "온수 150ml 출수해 줘"라는 음성 명령을 한다. 기기가 "온수를 출수할까요?"라고 확인 질문을 한다. 사용자가 "응, 출수해"라고 대답하면 출수하고, 이상이 감지되면 즉시 중단된다. 이 시스템은 물리적 버튼을 두 번 누르는 것보다 오히려 더 안전할 수 있다. 규제 샌드박스는 바로 이 가능성을 실제로 테스트하기 위해 존재하는 제도다.

산업 중심으로 발전하는 AI는 그 자체로는 방향이 없다. 그 기술이 장애인, 노약자, 사회의 다양한 소수자의 삶을 실질적으로 개선하는 데 쓰일 때, 기술의 혜택은 비로소 고르게 재분배된다. 그것이 기술이 사회 평등에 기여하는 가장 구체적인 방법이라고 나는 생각한다.

작은 것부터 시작하면 된다. 온수 한 잔이면 충분하다.


[*] 추기 (2025. 2. 14.)

이 글을 게시한 후 KC 60335-2-21의 제정판부터 최신 개정판(2025년)까지를 직접 대조하여 확인했다. 본문에서 22.113항이 "거의 20년이 지난 지금도 그대로 적용되고 있다"고 서술했는데, 사실과 다른 부분이 있어 바로잡는다.

판본 22.113항
2007년 제정 도입
2012년 개정 (K 60335-2-21) 존재 (본문 p.10)
2015년 개정 존재 (한국 국가차이 p.24)
2022년 개정 삭제
2025년 개정 삭제 유지

22.113항("음용수 온수기는 이중 조작으로 온수가 토출되는 구조여야 한다")은 2022년 개정에서 삭제되었다. 현재 이 조항은 적용되고 있지 않다.

다만 규정이 삭제된 후에도 업계에서는 관행상 이중 조작 방식을 유지하고 있으며, 더 근본적으로는 음성 제어와 같은 새로운 기술을 안전한 '조작'으로 인정하는 기준 자체가 아직 없다. 제조사가 음성 제어 온수 출수를 도입할 수 없는 현실은 달라지지 않았다.


이 글은 LG전자 볼드무브(Bold Move) 활동의 일환으로 작성되었습니다.