[AI 노동일지 2편 #5] Travly — 여행 플래너에 AI를 붙이다
일정 짜는 게 왜 귀찮은가
여행의 설렘은 즉흥성에 있다. 근데 그 즉흥성을 실현하려면 사전 준비가 꽤 필요하다. 날짜를 정하고, 숙소를 잡고, 갈 곳을 골라서 동선을 짜야 한다. 이게 생각보다 시간이 걸린다. Travly는 이 과정을 줄이는 게 목표다.
핵심 기능은 자연어 일정 입력이다. "내일 오후에 부산 동문시장 가고 싶어"라고 말하면 AI가 날짜, 시간, 장소를 파싱해서 일정 카드로 만들어준다. 여기서 중요한 설계 원칙 하나: AI가 바로 적용하지 않는다. 파싱 결과를 보여주고, 유저가 확인하면 그때 추가한다.
파싱의 어려움
"오후"를 몇 시로 볼 건지부터 애매하다. 14시인지 15시인지. "내일"은 어느 타임존 기준인지. "동문시장"의 좌표는 어디서 가져오는지.
좌표는 Nominatim으로 해결했다. OpenStreetMap 기반 무료 지오코딩 서비스다. Google Maps API는 유료 전환 이후 비용이 부담스러워서 제외했다. Nominatim이 국내 랜드마크 수준에서는 충분히 잘 잡아준다.
지도는 Leaflet으로 연동했다. 일정에 장소가 추가될 때마다 지도에 마커가 찍히고, 동선이 선으로 연결된다. 텍스트로 보는 일정보다 한눈에 파악이 된다.
오프라인과 장기 비전
여행 중에 인터넷이 없는 상황이 생긴다. 해외면 데이터 요금도 문제다. 그래서 LocalStorage로 로컬 저장을 지원한다. 네트워크 없이도 저장해둔 일정은 볼 수 있다.
장기 목표는 단순한 플래너를 넘어서 "시간 여행 앨범"이다. 과거 여행도 기록으로 남기고, 사진과 메모를 타임라인으로 돌아볼 수 있는 구조. 오프라인에서도 AI 기능을 쓰려면 WebLLM 같은 브라우저 내 로컬 모델이 필요하다. 아직 개발 중인 방향이다.
다음 화: 배포하기 전에 항상 물어봐 — AI가 스스로 멈추는 순간