취소를 끝이 아니라 시작점으로: 취소 화면에서 다음 여행을 제안한 이야기
PEPE 세션 — 회원주문개발팀 배재경 님
마이리얼트립에서 여행 예약이 취소되는 순간을, 이탈이 아니라 다음 여행이 시작되는 지점으로 바꾼 작업이 있습니다. 회원주문개발팀이 취소 후 추천 경험을 다시 설계한 프로젝트로, 취소 화면의 추천 하나로 시작한 일이 "어떤 사용자에게, 어떤 순간에, 어떤 콘텐츠를 보여줄 것인가"를 다루는 구조로까지 자랐습니다. 그 과정을 배재경 님의 시선으로 정리했습니다.
취소 알림 다음에 아무것도 없었다
이 프로젝트가 다룬 문제는 취소 이후의 빈 공간이었습니다. 여행 예약이 취소되면 사용자는 정해진 흐름을 지나갑니다. 취소 알림을 받고, 환불 예정 금액을 확인하고, 그대로 앱을 떠납니다. 정작 사용자가 가장 궁금해할 만한 질문, "그래서 이 여행 대신 무엇을 할 수 있지?"에 답하는 장치가 없었습니다.
특히 동남아 투어에서 이 문제가 두드러졌습니다. 동남아는 태풍과 우기 같은 날씨 영향으로 취소가 가장 많이 발생하는 지역이었고, 취소 이후 다시 예약으로 이어지는 비율도 다른 지역에 비해 낮은 편이었습니다. 취소가 가장 자주 일어나는 곳에서, 그다음 행동으로 넘어가는 다리가 가장 약했던 셈입니다.
이 맥락은 실무 데이터에서 나왔습니다. T&A(투어·액티비티) 동남아팀이 현장에서 겪는 실제 문제와 데이터를 공유했고, 그 숫자들이 "취소 이후가 비어 있다"는 가설에 무게를 더했습니다. 취소는 사용자가 떠나는 화면이면서, 동시에 다음 여행을 고민하기 시작하는 화면일 수 있었습니다.

취소를 새로운 시작점으로 본다는 것
여기서 관점을 바꿨습니다. 취소를 여정의 끝이 아니라, 다음 행동이 시작되는 지점으로 보기로 한 것입니다. 재경님은 이 전환을 이렇게 설명했습니다.
"취소를 끝이 아니라 새로운 시작점으로 봤습니다. 사용자나 파트너 사정으로 예약이 취소되더라도, 그 순간 그냥 떠나보내는 대신 지금 예약할 수 있는 다른 상품을 제안하자는 생각이었습니다."
설계의 핵심은 타이밍이었습니다. 취소가 완료되는 바로 그 시점, 사용자가 환불 금액을 확인하고 다음을 고민하는 순간에 지금 예약 가능한 대안 상품을 보여줍니다. 별도 캠페인으로 다시 불러오는 방식 대신, 취소라는 행동의 연장선 위에서 자연스럽게 다음 예약으로 이어지도록 경험을 설계했습니다.

팀이 이 프로젝트에 붙인 이름도 같은 맥락이었습니다. 취소는 여행자가 갑자기 방향을 잃는 순간입니다. 계획이 무너지고, 어디로 가야 할지 모르는 상태죠. 북극성이 길 잃은 여행자에게 방향을 일러 주듯, 취소 이후에도 고객이 다음 여행을 찾아갈 수 있도록 돕자는 뜻에서 김규원 팀장이 '폴라리스(Polaris, 북극성)'라는 이름을 지었습니다.
가장 어려웠던 건 코드가 아니라 문제 정의였다
처음에는 단순한 작업처럼 보였습니다. 취소 화면에 추천 모달 하나를 띄우는 정도라고 생각했죠. 막상 들어가 보니 그렇지 않았습니다. 추천 정책을 설계하고, 운영 도구를 만들고, 화면과 서버를 함께 개발해야 하는 일이었습니다. 모달 하나라고 여겼던 작업이, 추천 정책과 운영 도구, 화면과 서버를 동시에 끌고 가야 하는 일로 불어났습니다. 전체 개발 기간은 약 3주였습니다.
"가장 어려웠던 건 개발이 아니라 문제를 정의하는 일이었습니다. 그동안은 정해진 정책서를 받아서 구현하는 쪽이었는데, 이번엔 제가 직접 누구에게 언제 무엇을 보여줄지를 정해야 했거든요."
이 전환은 마이리얼트립이 PE에게 기대하는 역할과 맞닿아 있습니다. 프로덕트 엔지니어(PE)는 제품의 문제를 직접 정의하고 설계하고 구현해 결과까지 책임지는 사람입니다. 이번 프로젝트는 재경님이 그 역할을 처음으로 끝까지 밟아 본 일이기도 했습니다.
추천 정책서를 직접 쓰면서 답해야 할 질문이 끝없이 나왔습니다. 어떤 사용자에게 언제 추천을 보여줄 것인가. 반대로 어떤 상황에서는 보여주지 않아야 하는가. 추천할 상품을 찾지 못했을 때 화면을 어떻게 처리할 것인가. 구현보다 이런 추천 정책과 엣지 케이스를 빠짐없이 정리하는 일이 훨씬 무거웠습니다.
특히 무게가 실린 쪽은 보여주지 않아야 하는 순간을 정하는 일이었습니다. 추천을 띄우는 규칙을 세우는 것보다, 띄우지 말아야 할 경우와 추천할 상품을 끝내 찾지 못한 경우를 어떻게 다룰지가 더 까다로웠습니다. 취소라는 민감한 순간에 어설픈 추천은 오히려 경험을 해칠 수 있었기 때문입니다. 잘 보여주는 것만큼이나, 잘못 보여주지 않는 일이 중요했습니다. 그동안 받아 구현하던 정책서 한 장 뒤에 이런 판단의 무게가 쌓여 있었다는 것도, 직접 쓰면서 비로소 알게 됐습니다.
이 지점에서 AI를 적극적으로 썼습니다. 다만 쓰는 방식이 조금 달랐습니다. Claude Code와 GPT에 정답을 받아내는 대신, 자신이 작성한 추천 정책을 반박해 달라고 요청했습니다. "이 상황에서는 어떻게 동작해야 하지?", "내가 빠뜨린 조건은 없나?" 같은 질문을 반복해 던지며 정책의 허점을 찾아냈습니다.
"AI의 가치는 정답을 주는 데 있지 않았습니다. 제가 놓칠 수 있던 부분을 대신 반박해 주는 데 있었어요."
이렇게 AI를 검토자로 두자 혼자 고민할 때보다 추천 정책을 다듬는 속도가 빨라졌고, 의사결정도 한결 가벼워졌습니다.

재예약 신호는 확인됐다, 다만 단정하지는 않는다
성과는 취소 이후 7일 안에 다시 예약이 일어났는지를 기준으로 살펴봤습니다. 추천이 노출된 사용자의 7일 내 재예약률은 노출되지 않은 경우보다 약 70% 높았습니다. 취소 직후 다음 행동을 제안받은 사용자가 실제로 다시 예약으로 이어지는 비율이 분명히 더 높았던 것입니다. 이 흐름은 유의미한 규모의 거래액과 이익으로도 이어졌습니다.
추천을 만드는 방식에 따른 차이도 봤습니다. 시스템이 자동으로 추천한 경우와 운영 조직이 직접 고른 경우 모두 재예약률이 비슷하게 높았고, 둘 사이 차이는 크지 않았습니다. 자동 추천의 품질도 검색 고도화와 함께 계속 끌어올리고 있습니다.
다만 재경님은 이 숫자를 성과로 단정하지 않았습니다.
"무작위 실험이 아니라 관찰 데이터 기반이라, 이 수치를 추천 노출만의 순수한 효과라고 단정할 수는 없습니다. 그래도 사용자의 다음 행동을 유도하는 경험이 의미 있는 영향을 줄 수 있다는 신호는 충분히 확인했다고 봅니다."
추천을 본 사용자와 보지 않은 사용자를 무작위로 나눈 실험이 아니었던 만큼, 두 집단의 성향 차이가 결과에 섞여 있을 수 있기 때문입니다.
같은 문제가 계속 돌아왔다
운영을 시작하자 예상하지 못한 요청들이 들어왔습니다. 취소 화면뿐 아니라 다른 곳에도 광고를 노출하고 싶다, 프로모션을 걸고 싶다, 쿠폰을 발급하고 싶다는 요구였습니다.
처음에는 제각각인 요청처럼 보였지만, 들여다보니 모두 같은 문제로 모였습니다. 어떤 사용자에게, 어떤 순간에, 어떤 콘텐츠를, 어떤 형태로 보여줄 것인가. 취소 후 추천이든 광고든 쿠폰이든, 결국 이 질문에 대한 서로 다른 답이었습니다. 재경님은 이 지점을 이렇게 정리했습니다.
"문제를 해결하다 보면, 처음 정의한 문제보다 더 근본적인 문제를 만나게 됩니다."
그래서 구조를 다시 설계했습니다. 처음에는 취소라는 특정 상황과 추천이라는 특정 동작이 한 덩어리로 묶여 있었는데, 이걸 네 가지 축으로 분리했습니다. 누구에게 보여줄지(오디언스), 어디에 보여줄지(서피스), 언제 띄울지(트리거), 무엇을 담을지(콘텐츠)를 각각 조립할 수 있게 하자, 취소 후 추천은 이 공통 구조 위에서 돌아가는 하나의 사례가 됐습니다. 새 요구가 들어와도 매번 별도 기능을 만드는 대신 축을 조합해 대응할 수 있게 된 것입니다.
여기에 운영 도구를 더했습니다. 운영 조직이 직접 노출 정책을 설계하고, 노출 위치를 고르고, 콘텐츠를 등록하고, 일정을 관리할 수 있는 환경입니다. 만드는 사람과 운영하는 사람이 한 줄로 묶여 있던 흐름이 끊어지자, 새 정책을 떠올리고 화면에 반영하기까지의 시간이 짧아졌습니다. 어떤 콘텐츠를 어디에 언제 띄울지 시도해 보고, 결과를 보고 다시 바꾸는 일을 운영 조직이 스스로 돌릴 수 있게 된 것입니다.
추천 영역도 함께 넓혔습니다. 처음에는 동남아팀이 준비한 상품으로 추천하는 방식에서 시작했고, 이후 광고팀과 내부 협약을 맺어 추천 기능을 연동했습니다. 지금은 숙소 추천과 함께 동작하며 대부분의 상품을 커버해, 취소가 발생하면 폭넓은 대안을 제안할 수 있습니다.
추천 모달 하나가 플랫폼이 되기까지
시작할 때는 취소 화면에 추천 모달 하나를 더하는 일이라고 생각했습니다. 한 달가량 운영하고 돌아보니, 그건 사용자에게 다음 행동을 제안하는 플랫폼이었습니다.
"좋은 기능은 한 번 쓰이고 끝나지만, 좋은 플랫폼은 새로운 문제를 계속 해결합니다."
이 프로젝트가 보여준 게 이 차이였습니다. 취소 후 추천이라는 단일 기능에 머물렀다면 그 화면에서만 쓰이고 끝났겠지만, 누구에게 언제 무엇을 보여줄지를 다루는 공통 구조로 옮겨가자 광고도 프로모션도 쿠폰도 같은 틀 위에서 다룰 수 있는 문제가 됐습니다. 취소 경험 개선에서 출발한 작업이, 여행자에게 다음 방향을 제시하는 길잡이로 자란 셈입니다.
이 프로젝트는 앞으로도 같은 방향으로 나아갑니다. 자동 추천의 품질을 더 끌어올리고, 더 많은 순간에서 사용자에게 다음 행동을 제안하는 경험을 넓혀갈 예정입니다. 취소 후 추천에서 출발해 마주한 더 근본적인 문제, 곧 누구에게 언제 무엇을 보여줄 것인가를 다음 과제로 이어 다루고 있습니다.
*마이리얼트립의 PEPE(Product Engineer Possibility Exchange)는 프로덕트 엔지니어(PE)들이 "어디까지 시도했는지, 어디서 막혔는지"를 결과보다 과정으로 나누는 사내 세션입니다.