크롤링이 막혀 설계가 무너짐
단순 LLM 웹 검색 기반 에이전트의 정보 정확도 40% 대비, 검색 프로세스 도입 후 58%. 약 20초의 실행 시간 증가와 정확도 18%p 향상을 맞바꿨습니다. 여행 일정에서는 틀린 정보가 느린 응답보다 나쁘다고 판단했습니다.
근본 해결책은 지도 서비스·정부 오픈 API 등 신뢰할 수 있는 플랫폼의 공식 API 연동 또는 자체 수집 파이프라인 구축입니다. 그 경우 58%보다 더 올릴 수 있다고 보고 있습니다.
여행 일정 짜기에 피로를 느끼는 사람들을 위한 AI 여행 플래너.
여행에 필요한 정보를 모으는 과정이 불편하고 오래 걸린다는 문제를, 그 과정을 AI 에이전트로 자동화해 풀었습니다. 목적지·기간·인원·교통편·기호를 입력받아 기상·교통·숙소·엔터테인먼트·음식점·카페 정보를 수집하고, 여행 일정 포맷에 맞춰 조합해 제안합니다. 질문을 던지면 장소를 추천하는 기능도 함께 넣었습니다.
사용자 입력을 범주화하고, main supervisor가 범주에 맞는 서브그래프로 라우팅합니다. 질문 패턴에 맞는 그래프만 실행되므로 불필요한 노드가 돌지 않습니다.
처음에는 유지 비용이 압도적으로 유리한 람다로 구성하려 했습니다. 그런데 테스트에서 람다의 무상태 특성과 실행 시간 제한에 걸렸습니다 — 그래프 실행 중 state를 메모리에 유지할 수 없었습니다. 비용이 싼 쪽이 아니라 동작하는 쪽을 골라 EC2로 갔습니다.
K-PaaS 공모전에도 참가해 Kubernetes 환경과 AWS EC2 환경에서 동시에 운영해야 했습니다. 관리 부담을 줄이려 Docker 이미지로 일원화하고, GitHub Actions로 EC2 배포 파이프라인을 구성했습니다.
Cognito로 사용자를 등록·관리하고, 발급된 JWT로 인증이 필요한 요청을 검증합니다.
단순 LLM 웹 검색 기반 에이전트의 정보 정확도 40% 대비, 검색 프로세스 도입 후 58%. 약 20초의 실행 시간 증가와 정확도 18%p 향상을 맞바꿨습니다. 여행 일정에서는 틀린 정보가 느린 응답보다 나쁘다고 판단했습니다.
근본 해결책은 지도 서비스·정부 오픈 API 등 신뢰할 수 있는 플랫폼의 공식 API 연동 또는 자체 수집 파이프라인 구축입니다. 그 경우 58%보다 더 올릴 수 있다고 보고 있습니다.
새 기술을 도입하기 전에 기존 데이터 흐름과의 호환성을 먼저 검증한다. 이 기준은 이후 작업에서 계속 지키고 있습니다 — 라이브러리를 “좋아 보여서” 넣지 않고, 우리 출력 계약을 만족시키는지부터 확인합니다.
향후에는 해당 라이브러리를 걷어내고 LangChain/LangGraph가 지원하는 기능만으로 메시지 스트리밍과 JSON 출력을 동시에 처리하는 구조로 개선할 계획입니다.
| 테이블 | 키 | 주요 속성 |
|---|---|---|
| sessions | sessionID (PK) | title(AI로 요약한 채팅 세션 제목) · createdAt · updatedAt |
| chats | chatID (PK) sessionID (SK) |
content · role (USER | AI) · timestamp |
| itinerary | itineraryID (PK) userID (SK) |
sessionID · content (md 형식의 일정 계획) · timestamp |
| users | email (PK) | username · createdAt · updatedAt |
AI 서비스 특성상 변경 사항이 잦아, 스키마 변경 없이 유연하게 대응할 수 있는 DynamoDB를 골랐습니다. 관리형 서비스라 오토스케일링에 이점이 있고 프리티어 혜택으로 유지 비용도 낮았습니다.