여행 검색 경험 향상을 위한 AI 활용

여행을 준비할 때 우리는 숙소, 투어, 액티비티, 입장권 등 다양한 상품을 한 곳에서 검색하고 싶어합니다. 마이리얼트립의 통합검색은 바로 이런 니즈를 반영해, 항공을 제외한 모든 여행 상품을 한 곳에서 검색할 수 있도록 설계된 기능입니다. 하지만…

Share
여행 검색 경험 향상을 위한 AI 활용

여행을 준비할 때 우리는 숙소, 투어, 액티비티, 입장권 등 다양한 상품을 한 곳에서 검색하고 싶어합니다. 마이리얼트립의 통합검색은 바로 이런 니즈를 반영해, 항공을 제외한 모든 여행 상품을 한 곳에서 검색할 수 있도록 설계된 기능입니다. 하지만 이렇게 다양한 상품을 한 번에 보여줄 때, “어떤 종류의 상품을 먼저 노출할 것인가?” 라는 중요한 문제가 발생합니다. 예를 들어, 사용자가 ‘제주 신화월드’ 를 검색했을때는 국내 숙소를, ‘홍콩 디즈니랜드’ 를 검색했을때는 티켓을 먼저 보여줘야 하는 거죠.

검색추천팀의 머신러닝 엔지니어인 이성진님은 이런 문제를 해결하기 위해 사용자가 입력한 키워드를 분석하여 어떤 종류의 여행 상품(예: 숙소, 티켓, 투어 등)을 가장 먼저 보여주는 것이 사용자의 의도에 부합하는지 판단할 수 있는 AI 기반 검색어 분류 시스템을 개발하기 시작했습니다.

검색 결과와 사용자 의도 사이의 간극

마이리얼트립의 통합검색을 통해 키워드 검색을 하면 가끔 사용자의 실제 의도와 검색 결과가 일치하지 않는 경우가 있습니다. 가령 ‘제주 신화월드’ 를 검색했을 때 투어/티켓 검색 결과가 상단에 나오는 경우를 들 수 있지요. 이렇게 여행 검색은 다양한 의도를 담고 있어 더욱 복잡합니다. 호텔을 찾는 것인지, 관광지 정보를 원하는 것인지, 아니면 티켓 예약을 원하는 것인지에 따라 적절한 결과가 달라져야 하지만, 현실은 그렇지 않은 경우가 많았습니다.

처음 시도했던 방식과 그 한계

“NER은 지나치게 복잡했고, 직접적인 의도 분류로 이어지기 어려웠습니다.”

가장 먼저 시도한 접근은 NER(Named Entity Recognition)을 활용한 방식이었습니다. Claude 기반으로 BIO 태깅(단어에 B(시작), I(내부), O(밖) 형태의 라벨을 붙여 엔터티 위치를 나타내는 방식)된 데이터를 생성하고, Llama 3.2B 및 Blossom 같은 Open 모델을 미세조정해 학습시켰습니다. 그러나 이 방식은 결과적으로 의도 분류라는 목적에 비해 구조가 지나치게 복잡했고, 실제 서비스 적용에 적합하지 않았습니다. 엔터티를 추출한 후 다시 해석해야 하는 이중 구조가 실효성을 떨어뜨렸기 때문입니다. NER 기반 접근은 여기서 중단하고, 보다 직접적인 분류 방식으로 전환했습니다.

Claude를 활용한 분류 시스템 구축

우리는 분류 모델을 통해 쿼리를 직접 투어, 티켓, 숙소, 렌터카, 쇼핑, 복합 등으로 나누기로 했습니다. 우선 3개월간의 통합검색 로그 30만여건 중 8회 이상 검색된 약 5만 개의 쿼리를 수집했고, 이 중 기존에 수작업 처리된 쿼리를 제외한 4.5만 개 정도에 대해 Claude를 이용해 분류를 진행했습니다.

“약 90%의 쿼리를 안정적으로 분류할 수 있었고, 그 중 24%는 기존의 노출 순서를 바꾸는 효과를 냈습니다.”

프롬프트는 총 12회 이상의 반복 실험을 통해 개선되었고, 각 클래스의 정의와 판단 기준을 명확히 규정하며, 확신이 없을 경우 default로 처리하도록 설계했습니다. 결과적으로 전체 쿼리의 약 90%에 대해 안정적으로 분류가 가능했고, 이 중 24%는 기존과 다른 순서로 노출하는 결과를 도출해냈습니다. 사용자의 검색 의도에 맞는 더 적절한 상품들을 노출할 수 있게 된거죠.

확장과 실험의 여지들

“사용자 행동 데이터 기반으로 피드백 루프를 구성할 수 있다면, 분류 시스템의 정밀도는 더욱 높아질 것입니다.”

이 시스템은 아직 진화 중입니다. 향후에는 쿼리 변형과 웹 문맥을 활용한 확장 실험도 계획하고 있습니다. 예를 들어, 유사 쿼리를 클러스터링해 의도를 확장하거나, 웹에서 수집한 관련 정보로 분류 정확도를 높이는 방식입니다. 단, Claude의 토큰 한계로 인해 입력이 과도해질 경우 로컬 모델로의 전환도 고려하고 있습니다. 또한 사용자 행동 데이터(예: 클릭, 전환 등)를 반영해 의도를 정교하게 해석하거나, 복합 의도(예: “제주 호텔 오션뷰”)를 세분화하는 방향도 검토 중입니다.

AI를 현업에 녹여낸다는 것

“단순히 AI를 도입하는 것이 아니라, 실제 사용자 경험을 개선할 수 있어야 진짜 의미가 있습니다.”

이 프로젝트는 단순한 분류 모델 적용에 그치지 않습니다. 우리가 얻은 가장 큰 인사이트는 LLM을 실제 운영 환경에 녹여내기 위해선 단순 정확도 이상으로 “서비스 상의 효용성”과 “운영 가능성”이 중요하다는 점입니다. 어떤 프롬프트가 일관되게 동작하는지, 시스템에 부하 없이 배치 처리가 가능한지, 혹은 유저 경험에 실질적인 영향을 주는지까지 종합적으로 고려해야 했습니다. 실제로 Q&A 시간에는 로컬 모델의 속도 및 콜드스타트 대처 가능성, 사용자 행동 데이터를 반영한 피드백 루프 구성 방안 등이 논의되었고, 이는 시스템의 실용성과 지속가능성에 대해 고민하게 해준 중요한 화두였습니다.

검색 의도를 정확히 파악하고 이에 따라 상품을 더 잘 연결해주는 일. 그것은 단순히 기술의 문제가 아닌, 사용자 경험의 본질을 건드리는 일이었습니다. 우리는 이 방향을 계속 밀고 나가보려 합니다.

Read more

AI 추천과 예약 사이의 거리를 좁히는 법: 마이리얼트립이 조코딩 AX 해커톤에 낸 문제

AI 추천과 예약 사이의 거리를 좁히는 법: 마이리얼트립이 조코딩 AX 해커톤에 낸 문제

마이리얼트립은 조코딩AX파트너스가 연 해커톤 「AX 인재전쟁」에 기업 출제자로 참여했습니다. API를 제공하는 데서 나아가, 참가자들이 풀어야 할 문제를 직접 내고 심사했습니다. 문제의식은 단순합니다. AI를 여행에 흔히 쓰게 되면서 정보 탐색은 한결 쉬워졌는데, 정작 사람들은 여전히 여행 계획을 손으로 짭니다. 추천은 넘치는데 '진짜 갈 수 있는 경험'까지 좁혀주는

By 마이리얼트립
가장 중요한 문제에, 가장 잘 맞는 사람을 붙인다

가장 중요한 문제에, 가장 잘 맞는 사람을 붙인다

마이리얼트립의 프로덕트 엔지니어(PE)는 CTO 직속 PS팀(Product Strategy)에 모여 있습니다. 전사에서 가장 중요한 문제에 가장 잘 맞는 PE를 배치하고 한 명의 PE가 문제 정의부터 구현과 배포까지 끝까지 책임지는 조직입니다. 이렇게 한 데는 이유가 있습니다. 회사에서 가장 중요한 문제는 계속 바뀌는데, 사람이 특정 버티컬에 묶여 있으면 그 경계

By 마이리얼트립
돌려쓰던 테스트 환경을, 각자의 환경으로: 배포 병목을 없앤 이야기

돌려쓰던 테스트 환경을, 각자의 환경으로: 배포 병목을 없앤 이야기

PEPE 세션 — 회원주문개발팀 정현수 님 과거 마이리얼트립의 공용 테스트 환경은 쓰려는 사람에 비해 모자랐습니다. 누가 쓰는지 알기 어려워 "지금 써도 되냐"고 서로 물어 가며 차례를 기다리는 경우가 많았고, 내가 작업 중인 사이 다른 사람이 배포하지 않도록 조율해야 했습니다. 이 병목을 환경 개수를 늘리는 방식에서 각자 자기 환경을

By 마이리얼트립
예약에서 끝나지 않는 여행: 한 명이 10여 개 레포를 가로질러 만든 항공 여정 케어

예약에서 끝나지 않는 여행: 한 명이 10여 개 레포를 가로질러 만든 항공 여정 케어

마이리얼트립이 예약한 항공편의 운항 상태를 고객이 앱을 열지 않아도 실시간으로 받아보는 서비스를 선보였습니다. 출발 3시간 전 알림부터 게이트 변경과 지연, 결항, 회항, 출발, 도착, 수하물 상태까지, 비행의 흐름 전체를 고객이 찾기 전에 먼저 안내합니다. 여행은 항공권을 예약하는 순간 끝나지 않습니다. 짐을 싸고 공항으로 향하고 비행기에 올라 목적지에 내려 짐을 찾을

By 마이리얼트립