여행 계획을 ‘검색’ 대신 ‘대화’로 : AI와 함께 여행을 설계하는 첫걸음

AICX Product Engineer 현규원 님

Share
여행 계획을 ‘검색’ 대신 ‘대화’로 : AI와 함께 여행을 설계하는 첫걸음

AICX Product Engineer 현규원 님

AICX는 인공지능(AI)를 통해 기업 운영의 반복 업무를 자동화하고 고객 경험(CX)을 혁신하는 미션을 가진 마이리얼트립의 자회사입니다.

[AICX 바로가기]

최근 생성형 AI의 발전으로 점점 더 많은 사용자들이 검색 대신 AI에게 질문하며 원하는 정보를 얻고 있습니다. 마이리얼트립 역시 이런 변화에 맞춰 고객 경험을 혁신하기 위해 AI와 외부 데이터를 연결하는 표준 프로토콜인 MCP를 활용한 PoC(Proof of Concept)를 구현하고 적용 가능성을 검증해보았습니다.

이번 글에서는 MCP 소개와 함께 PoC 구현 과정과 결과를 공유합니다.

글의 이해를 돕기 위해 짧은 시연 영상을 먼저 준비했습니다.

먼저 “왜 이 기능이 필요할까?”

AI 모델과 대화로 여행을 계획하는 기능이 기술적으로 흥미롭더라도 결국 중요한 건 “사용자에게 정말 필요한가?”였습니다. 사이드 프로젝트 이야기가 시작됐을 때도 팀원들이 가장 먼저 던진 질문은 이거였습니다.

“멋있어 보이긴 한데 실제로 필요한 기능인가?”

우리는 각자의 최근 여행 경험을 공유하며 사용자 맥락을 다시 들여다봤습니다. 그 과정에서 흥미로운 공통점을 발견했습니다.

모두가 여행 계획 단계에서 이미 AI를 활용하고 있었던 것입니다.

  • “여행지는 정했는데 뭘 할지 모르겠어요”
  • “동선을 어떻게 짜야 할까요?”
  • “부모님과 함께 가기 좋은 일정으로 바꿔줄 수 있나요?”

여러 사이트를 돌며 정보를 모으는 대신, AI에게 대화로 목적과 조건을 전달하고 답을 얻는 방식이 자연스럽게 자리 잡고 있었습니다.

그 순간 확신이 들었습니다.

“이 방향이 맞다. AI와 여행 데이터를 연결하면 뭔가 될 것 같다.”

다만 기존 AI만으로는 한계가 있었습니다. “3월 17일에 유니버설 스튜디오 예약 가능해?” 같은 질문에는 답할 수 없었습니다. 실제 상품 데이터에 연결되어 있지 않으니까요.

그 연결 고리가 바로 MCP입니다.

MCP란 무엇인가?

출처: What is Model Context Protocol (MCP)? How it simplifies AI integrations compared to APIs

MCP(Model Context Protocol)는 ChatGPT, Gemini, Claude 같은 AI 애플리케이션이 검색/문서/메일 등 외부 도구에서 필요한 정보를 가져와 더 정확하게 답하고 일을 처리할 수 있도록 돕는 공통 연결 규칙입니다.

AI는 학습된 지식만으로는 최신 정보나 개인 자료에 접근하기 어렵기 때문에 필요할 때마다 외부 도구를 활용해 정보를 가져오는 방식이 중요해졌습니다. 하지만 이전에는 같은 도구라도 AI 모델마다 연동을 따로 개발해야 했고 연결해야 할 도구가 늘어날수록 개발 및 유지 비용과 시간이 기하급수적으로 증가했습니다. 예를 들어 Notion 연동을 만든다면 과거에는 Claude용과 ChatGPT용을 각각 다른 방식으로 따로 구현해야 하는 경우가 많았습니다.

MCP는 이 문제를 USB-C처럼 “연결 규격을 표준화”하는 방식으로 해결합니다. 한 번 MCP 규격으로 서버를 만들어두면 이를 지원하는 여러 AI 앱에서 같은 방식으로 활용할 수 있게 합니다.

MCP 서버가 제공하는 기능

출처: MCP의 세 가지 핵심 구성요소 — Prompts, Resources, Tools 완전 이해

MCP 서버는 Tools, Resources, Prompts 세 가지의 기능을 제공하지만 이번 글의 주요 내용인 Tools에 대해 설명하겠습니다.

Tools란?

AI 모델이 호출하는 실행 함수입니다.

실시간 데이터를 가져오거나 외부 작업을 수행할 수 있습니다.

예를 들어 “특정 날짜에 예약 가능한 투어 조회” 또는 “구글 캘린더에 일정 추가” 같은 기능이 하나의 툴이 됩니다.

사이드 프로젝트에서 PoC로

초기에는 생성형 AI에 관심이 있는 팀원들이 모여 작은 사이드 프로젝트를 시작하려 했습니다. 그러던 중 좋은 기회가 찾아왔습니다.

카카오의 ChatGPT for Kakao가 다양한 도메인에서 기업을 선정해 툴 협업을 진행하게 되었고 여행 도메인 파트너로 마이리얼트립이 선정되었습니다. 이 흐름 속에 사이드 프로젝트를 진행하려는 인원들도 합류하게 되었고 빠르게 PoC를 추진하게 됐습니다.

Get 현규원’s stories in your inbox

마이리얼트립 서비스에는 다양한 버티컬들이 있는데 PoC 범위로 투어·액티비티(TNA), 항공, 숙소 3개 버티컬로 한정했고, 핵심 질문은 하나였습니다.

“마이리얼트립의 상품 조회 기능을 Tool로 제공했을 때, AI 모델은 추가 지시 없이도 필요한 순간에 이를 적절히 호출할 수 있을까?”

어떻게 만들었나

이 질문을 검증하기 위해 각 버티컬별로 구현을 시작했습니다. 저는 투어·액티비티(TNA) 파트를 맡아 구현을 진행했습니다.

여행 계획 단계에서 사용자에게 어떤 기능이 필요할지 정리해보니 핵심은 ‘탐색’과 ‘예약 가능 여부’ 두 가지였습니다. 여행지는 정했지만 뭘 할지 모를 때 상품을 둘러보고, 마음에 드는 걸 찾으면 “그날 예약 가능한지” 확인하는 흐름이죠. 이 흐름을 AI가 자연스럽게 수행할 수 있도록 기존 TNA API를 분석해 기능을 4개의 툴로 분리했습니다. 각 툴은 아래와 같은 구조로 정의됩니다.

server.tool(
"getCategoryList", //name
"Get available TNA (tour/activity) categories for a city...", //description
{ //parameters
city: z.string().describe("City name to search (e.g., Cebu, Tokyo)"),
},
async ({ city }) => {
const categories = await fetchCategories(city);

return {
content: [{
type: "text",
text: JSON.stringify({ success: true, categories }),
}],
};
}
);

server.tool()에서 AI 모델이 참고하는 정보는 세 가지입니다.

name - 모델이 도구를 호출할 때 사용하는 식별자입니다.

description - 모델이 이 도구를 언제 호출할지 판단하는 근거입니다.

parameters - 모델이 어떤 인자를 넘겨야 하는지 알려줍니다.

이 구조를 바탕으로 4개의 툴을 다음과 같이 설계했습니다.

1) 카테고리 리스트 툴 : “오사카에서 뭐 할 수 있어?”
이런 질문에는 바로 상품을 보여주기 어렵습니다. 선택지가 수백 개니까요. 먼저 도시에 어떤 카테고리(투어, 입장권, 체험 등)가 있는지 가져와서, AI가 사용자에게 선택지를 제안하거나 알아서 판단해 다음 단계로 넘어갈 수 있도록 탐색의 출발점을 만들어주는 툴입니다.

2) 상품 검색 툴 : “오사카 입장권 추천해줘”
카테고리가 정해지면 조건에 맞는 상품 후보를 검색합니다. 이때 결과를 전부 쏟아내면 AI도 사용자도 혼란스러워지기 때문에 인기순 정렬과 가격대·소요시간 필터를 적용해 적절한 수의 후보만 반환하도록 설계했습니다.

3) 상품 상세 툴 : “유니버설 스튜디오 좀 더 알려줘”
검색 결과의 제목과 가격만으로는 일정에 넣을 수 없습니다. 미팅 포인트가 어딘지, 소요시간은 얼마인지, 뭐가 포함이고 뭐가 불포함인지. 이런 상세 정보가 있어야 AI가 “이 상품은 반나절이 걸리니 오전에 배치하겠습니다”처럼 근거 있는 추천을 할 수 있습니다.

4) 옵션/예약 가능 여부 조회 툴 : “그래서 2월 28일에 예약 가능해?”
여행 계획의 마지막은 결국 이 질문입니다. 아무리 좋은 추천이어도 그날 예약이 안 되면 의미가 없으니까요. 특정 날짜·인원 조건으로 실시간 예약 가능 여부를 확인하는 툴을 별도로 분리했습니다.

4개의 툴은 고정된 순서로 호출되는 것이 아니라 AI가 사용자의 질문에 따라 필요한 툴을 판단해 호출하는 구조입니다. 예를 들어 “오사카 뭐 할 게 있어?”처럼 넓은 질문에는 카테고리부터, “2월 28일 유니버설 스튜디오 예약 가능해?”처럼 구체적인 질문에는 바로 예약 가능 여부를 조회합니다.

PoC 구현 후 팀원들이 각자 사용자 입장에서 테스트 시나리오를 작성하고 직접 QA를 진행했습니다.

[일부 테스트 결과]

맥락을 이해하는 추천

“3월 17일에 부모님이랑 오사카 가는데 뭐 하면 좋을까?”처럼 날짜, 동행자 등 조건이 포함된 질문에서 AI가 맥락을 이해하고 적절한 툴을 호출하는지 확인했습니다.

AI는 ‘부모님’이라는 조건을 고려해 무리 없는 일정 위주로 추천했고 3월 17일 예약 가능 여부까지 확인한 뒤 답변을 구성했습니다.

통합 시나리오

“3월 15일~17일 친구랑 세부 여행 갈 건데, 항공권이랑 리조트 추천해줘. 호핑투어도 가고 싶은데 괜찮은 거 골라서 자세히 알려주고 일정도 짜줘”

하나의 질문에 항공, 숙소, 투어·액티비티 3개 버티컬이 모두 포함된 요청입니다. AI가 여러 버티컬의 툴을 조합해 하나의 여행 계획을 만들어낼 수 있는지 확인했습니다.

AI는 각 버티컬의 툴을 조합해 항공권 비교, 리조트 추천, 호핑투어 상세정보와 예약 가능 여부까지 확인한 뒤 일정표와 예상 경비까지 하나의 답변으로 구성했습니다.

Hallucination

테스트 과정에서 모든 모델이 동일한 결과를 보여주지는 않았습니다. 성능이 높은 모델은 날짜를 자연스럽게 해석했지만 성능이 낮은 모델에서는 ‘2월 28일’이라고만 말하면 과거(2025년) 날짜를 넣어 정확한 호출이 실패하는 hallucination이 발생했습니다.

이 문제는 팀원이 구현한 현재 시간을 반환하는 getCurrentTime 툴을 활용해 해결했습니다. 컨텍스트에 현재 날짜 정보가 없을 경우 해당 툴을 먼저 호출하도록 프롬프트에 지시를 추가했습니다.

PoC를 넘어서 실제 서비스로

위젯 구현

현재 카카오 테스트 환경에서는 AI의 텍스트 응답과 함께 상품 카드 위젯을 제공하는 기능을 기본적으로 구현한 상태입니다.

앞으로 위젯의 종류와 표현 방식을 더 다듬어 사용자가 추천 결과를 보다 직관적으로 확인하고 바로 행동할 수 있도록 고도화할 예정입니다.

툴 콜링 최적화

MCP 서버의 툴 자체는 정상적으로 동작하지만 ChatGPT 같은 실제 AI 플랫폼에서는 사용자가 “마이리얼트립 툴을 활용해서 세부 호핑투어 찾아줘”처럼 서비스명을 직접 언급해야만 툴이 호출되는 경우가 있습니다. 사용자가 더 쉽게 마이리얼트립 툴을 발견하고 활용할 수 있도록 툴 설명 개선과 플랫폼 측과의 협력을 진행할 예정입니다.

테스트 자동화

QA는 팀원들이 직접 시나리오를 작성하고 수동으로 진행하고 있습니다. 사용자가 실제로 할 만한 질문을 하나씩 넣어보고 AI가 적절한 툴을 호출하는지 응답이 자연스러운지를 확인하는 방식입니다. 하지만 수동 테스트만으로는 다양한 질문 패턴과 예외 상황을 모두 커버하기 어렵습니다. 앞으로는 AI를 활용해 다양한 시나리오를 자동으로 생성하고 검증할 수 있는 환경을 구축해 더 빠르고 체계적으로 품질을 확보할 계획입니다.

마무리하며

이번 PoC는 “AI가 여행 데이터를 필요한 순간에 스스로 가져와 활용할 수 있는가?”라는 질문에서 시작했습니다. 테스트 환경에서는 AI가 상황에 맞게 툴을 조합하며 여행 계획을 만들어내는 가능성을 직접 확인할 수 있었지만 실제 서비스 환경에서는 아직 풀어야 할 과제도 남아 있습니다.

아직 ChatGPT for Kakao에서 마이리얼트립 툴을 만나볼 수는 없지만 조만간 사용자분들께 선보일 수 있도록 준비하고 있습니다. 검색이 아닌 대화로 여행을 계획하는 경험, 그 첫걸음을 실제 서비스로 만들어가겠습니다.

Read more

"무엇을 자동화할까보다, 무엇을 먼저 정리할까": 두 사람이 정책 운영을 다시 짠 이야기

"무엇을 자동화할까보다, 무엇을 먼저 정리할까": 두 사람이 정책 운영을 다시 짠 이야기

마이리얼트립 서비스정책팀은 두 사람이 회사 서비스 정책 전반을 함께 책임지는 조직입니다. 파트너 입점 자격, 상품 검수 기준, 가격 표시, 후기, 외부 거래 안내까지, 다루는 영역은 좁지 않습니다. 그런데도 이 폭을 두 사람이 감당할 수 있게 된 데에는, 팀의 리듬을 처음부터 다시 잡은 시간이 있었습니다. 마이리얼트립은 AI Native 조직으로 일하는 방식을

By Myrealtrip
PE가 영업으로 '전직'해보는 3주: Sales Lab 1기 모집 시작

PE가 영업으로 '전직'해보는 3주: Sales Lab 1기 모집 시작

마이리얼트립은 지난 2년 동안 AI Lab을 운영하며, 같은 일을 더 적은 인원과 더 짧은 시간으로 만들 수 있는지 확인해왔습니다. 만드는 데 드는 시간이 줄어들자, 자연스럽게 다음 질문이 따라왔습니다. 그 시간을 어디에 다시 써야 하는가. 마이리얼트립의 답은 '고객을 이해하는 영역'이었습니다. 그리고 그 답을 조직 차원의 실험으로 옮긴 것이

By Myrealtrip
AI 네이티브 조직의 CX: 마이리얼트립이 2년 동안 발전 시킨 고객 응대의 구조

AI 네이티브 조직의 CX: 마이리얼트립이 2년 동안 발전 시킨 고객 응대의 구조

마이리얼트립의 AI 전환 2년이 가장 먼저, 가장 깊게 닿은 곳은 고객 응대였습니다. 채팅·전화·운영 인력·상담원 도구가 같이 움직였고, 그 결과를 지금은 AICX라는 조직이 자사를 넘어 다른 회사의 CX 위로 옮기는 단계까지 와 있습니다. 마이리얼트립과 자회사 AICX의 CTO를 같이 맡고 있는 허원진 님이, 이 흐름을 외부 자리에서 정리하기 시작했습니다.

By Myrealtrip
AI Lab 2년이 마이리얼트립에 남긴 것

AI Lab 2년이 마이리얼트립에 남긴 것

AI Lab 이동훈 팀장 2024년 11월에 출범한 마이리얼트립 AI Lab이 2년의 운영을 마칩니다. 별도 추진 조직이 끌어가지 않아도 구성원 각자가 자기 손으로 AI를 일에 녹여내는, AI Native한 일하는 방식이 회사 안에 자리 잡았다는 판단에서 내린 결정입니다. 끝맺음이라기보다, 무게중심을 다음 단계로 옮기기 위한 정리에 가깝습니다. 마이리얼트립 AI Lab을 2년간 이끌어 온

By Myrealtrip