이번 주는 9주차 목표였던 선물 추천 품질 개선에 초점을 맞췄다. 현재 운영 중인 대화형 추천 시스템은 사용자가 입력하는 키워드와 몇 가지 질문을 통해 상품을 추천해주는 방식인데 테스트 결과 몇 가지 근본적인 한계를 확인할 수 있었다. 이를 개선하기 위해 구조적인 리디자인을 실험적인 접근들을 시도했다.
현재 시스템은 사용자가 제공한 정보로부터 취향이나 관심사를 추론해 맞춤형 선물을 추천하는 구조다. 하지만 현실적으로 사용자 대부분은 "그 사람이 뭘 좋아할지 잘 모르겠어요"와 같은 답변을 하는 경우가 많았다. 이런 상황에서는 AI가 더 이상 파고들 수 없고 추천 결과도 단순한 '무난한 선물'에 그쳐버린다. 예를 들어 머그컵, 향초, 수건 세트처럼 누구에게나 줄 수 있는 선물이지만 인상 깊진 않은 품목으로 귀결된다. 더 큰 문제는 이런 무난한 추천조차도 '왜 이걸 추천했는지'에 대한 맥락을 설명하기 어렵다는 점이다. 취향 기반 정보가 없으니 AI가 카테고리 우선순위를 설정하지 못하고, 결과적으로 사용자 만족도는 크게 낮아진다. 추천을 위한 데이터 흐름이 초반부터 막히는 것이다.
기존 로직은 사용자가 입력한 키워드를 그대로 기반으로 DB에서 상품을 검색하는 구조다. 예를 들어 "남자친구", "생일", "러닝화", "헤어밴드", "바람막이", "러닝가방"
등의 키워드를 조합하면 연관된 상품은 어느 정도 찾아낼 수 있지만 그 안에서 의미 있는 다양성을 보장하기는 어렵다.
첫 번째 문제는 중복률이다. 러닝 관련 선물 카테고리는 한정되어 있다 보니 비슷한 스타일의 러닝화나 스포츠 액세서리, 기능성 의류가 반복적으로 출력되기 쉽다. 두 번째 문제는 성능 이슈다. 키워드가 많을수록 조건이 과도하게 조합되어 유효한 상품이 줄어들고, 반대로 키워드를 줄이면 범위가 넓어져 관련성 없는 상품까지 포함된다. 결과적으로 “8개 이상 추천을 채워야 한다”는 실질적인 목표를 안정적으로 달성하기가 어려운 구조였다.
기존 질문 설계에는 일관된 흐름이 없었다. 대화 초반에는 “관계가 어떻게 돼?”, “얼마 정도 예산이야?” 같은 상황 기반 질문이 나오다가 갑자기 “취향은 뭐야?”, “그 사람이 어떤 스타일 좋아해?” 같은 다소 직접적이고 예측 불가능한 질문으로 전환되곤 했다. 이 과정에서 사용자 몰입이 끊기고 AI가 대화를 주도하는 느낌이 줄어든다는 피드백이 있었다.
또한 고정 질문과 개인화 질문이 혼재되어 있어 AI가 어떤 기준으로 다음 질문을 선택하는지 내부적으로도 애매해지는 문제가 있었다. 질문 구성 로직이 명확히 정의되지 않으면 추천 품질뿐 아니라 사용자 경험 전반이 흔들리기 때문에 질문 흐름을 구조적으로 설계하는 작업이 필요했다.
회의에서는 다음과 같은 논의를 통해 질문 구성 및 추천 흐름을 리디자인하기로 했다.
-> 좀 더 구체적이고 딥한 질문으로 연결
-> 예: “운동 중에서도 요즘 뭐에 빠졌어?”, “최근에 산 운동 용품 있어?”
-> 고정 질문 + 무난한 추천 세트 제안
-> 예: “그 사람 나이는?”, “어떤 관계야?”, “생일 선물이야?”
-> 그 뒤엔 “다른 사람들이 이런 상황에서 자주 고른 선물이야!” 식의 제안
즉, 정보가 부족하면 더 이상 취향을 캐묻지 않고 ‘보편적 선택지’로 우회하는 구조
질문 설계의 목적을 명확히 구분해, 대화 흐름을 구조적으로 나누는 방식으로 정리했다.
기존에는 키워드("남자친구", "생일", "러닝화", "헤어밴드", "바람막이", "러닝가방") 조합을 바탕으로 조합 알고리즘을 통해 DB를 먼저 호출하고 상품이 충분히 확보되지 않으면 네이버 쇼핑 API를 호출하는 방식이었다. 이 구조는 조합 수가 많아질수록 호출 횟수도 늘어나고 외부 API 응답을 기다리는 동안 시스템 응답 속도도 현저히 느려지는 문제가 있었다. 특히 키워드 간 의미 연결이 약한 경우 유효하지 않은 조합이 반복적으로 시도되면서 실제로 추천과 연관된 상품을 찾지 못하거나, 무관한 상품이 포함되는 경우도 발생했다. 결국 많은 조합을 사용했음에도 불구하고 정교한 추천으로 이어지지 못하는 한계가 명확했다.
이 문제를 보완하기 위해 GPT에게 먼저 “남자친구 생일 선물로 러닝을 즐기는 사람이 좋아할 만한 아이템을 추천해줘”와 같은 문장을 입력하는 방식을 실험했다. 그러면 GPT가 아디다스 러닝화, 기능성 바람막이, 스포츠 헤어밴드, 러닝 전용 가방
등 현실적이고 연관성 높은 아이템을 제시해준다. 이 키워드를 바탕으로 다시 DB나 API를 검색하면 훨씬 더 연관성 있고 다양성 있는 상품군을 확보할 수 있었다. 단점은 GPT 응답이 항상 일정하지 않고 상황에 따라 키워드가 덜 구체적일 수 있다는 점이다. 그래서 이 방식은 메인 로직이 아닌 추천 품목이 부족할 때 활용하는 fallback 전략으로 적용하기로 했다.
이번 개선 작업을 통해 추천 시스템의 성능을 좌우하는 요소는 단순한 알고리즘이 아니라 사용자의 맥락을 어떻게 잘 끌어내고 해석하느냐에 달려 있다는 걸 체감했다. 특히 질문 설계는 단순한 UX가 아니라 전체 추천 품질과 직접 연결되는 ‘전략’이라는 것을 실감했다. 또한 사용자가 정확히 알지 못하는 정보를 무리하게 캐묻기보다는 자연스럽게 유도하거나 우회하는 방식이 훨씬 효율적이라는 것도 배웠다. 앞으로도 AI의 똑똑함보다는 사람 중심의 대화 흐름 설계에 더 많은 신경을 써야겠다고 느꼈다.