출처: Yalan

검색 퀄리티 점검하기

 지난 글을 통해 텍스트 전처리, 색인, 검색 알고리즘에 대해 알아봤습니다. 이 세 가지 요소의 공통점은 검색 엔진의 퀄리티를 높일 수 있다는 것입니다. 검색 엔진이 고도화되면 우리 서비스의 사용자들은 더욱 다양한 정보를 얻을 수 있게 되고, 원하는 정보를 쉽고 빠르게 찾을 수 있습니다. 사용자의 만족도가 높아지면, 사용자들이 우리 서비스를 더 자주 이용하고 긍정적인 평가를 남길 가능성이 높아지겠죠.

 

 그럼 대체 우리 검색엔진의 어떤 요소를 손봐야 할까요? 아니, 당장 쌓여 있는 이슈가 너무 많은데 이게 어떤 검색 요소 때문에 골머리를 썩이는 건지 답답하진 않으셨나요?

 

 이번 편에서는 검색 서비스 기획자가 실무 중에 경험하는 이슈를 소개하고, 이를 어떻게 해결하면 좋을지 가이드라인을 제공합니다. 내용이 기니, 궁금한 키워드로 페이지 내 '검색'을 해보세요! (Ctrl+F 또는 cmd+F)

 

 

검색 결과가 부족할 때

 검색 서비스를 새로 시작했을 때 발생할 수 있는 이슈입니다. 사용자가 특정 키워드로 검색할 때, 원하는 결과가 나오지 않는 경우입니다. 예를 들면, 사용자가 "역삼동"이라는 키워드로 검색했을 때, 검색 결과가 부족하거나 아예 나오지 않는 경우입니다.

 

 이런 경우에는 먼저 텍스트 전처리가 잘 되었는지 점검합니다. "역삼동"과 관련한 다양한 표현이나 유사어, 동의어를 포함해 검색을 확장해 볼 수 있습니다. 즉, 검색어 사전을 보강해야 합니다. "역삼역", "역삼동 주변", "역삼동 근처", "역삼동 카페", "역삼동 골목" 같은 검색어를 포함할 수 있도록 개선하면 좋습니다.

 

 이렇게 동의어 사전을 잘 구축하고 난 후, 색인 과정을 업데이트하면 좋습니다. 새로운 정보가 추가될 때마다 색인을 업데이트해서 검색 서비스가 항상 최신 정보를 반영할 수 있도록 프로세스를 만드는 것이 좋습니다.

 

 

검색 결과가 불일치할 때

 사용자가 검색한 키워드와 실제 검색 결과가 일치하지 않는 경우입니다. 예를 들면, "화장실 청소 가이드"라는 키워드로 검색했을 때, 검색 결과에는 화장실과 관련된 정보가 포함돼 있지만, 청소나 가이드에 대한 내용이 아닌 정보가 포함돼 있는 상황입니다. 

 

 이런 경우에는 앞의 사례처럼 먼저 텍스트 전처리가 잘 되었는지, 즉 동의어나 유사어를 고려한 검색어 사전을 점검합니다. 그리고 검색 알고리즘을 조정합니다. 가령 문서의 중요도를 평가하는 알고리즘을 개선해서, 검색 결과를 일치하는 쪽으로 고도화할 수 있습니다.

 

 

검색 결과가 다양하지 않을 때

 사용자가 검색 결과로 다양한 정보를 얻기 어려운 경우입니다. 예를 들면, "여행"이라는 키워드로 검색했을 때, 한 가지 종류의 여행 관련 정보만 나오는 상황입니다. 

 

 이런 경우에는 검색 알고리즘을 조정하는 것이 좋습니다. 예시를 계속 활용하면, "여행"과 관련된 다양한 주제들을 포함하는 문서들을 검색 결과에서 우선적으로 정렬하면 좋습니다. "여행"을 검색하면 "여행 스타일", "여행 비용", "여행 기념품" 같은 주제를 같이 다루는 방법이 있습니다.

 

 이렇게 다양한 주제를 포함시키려면 색인 과정도 보완해야 합니다. 여행과 관련된 모든 문서(검색결과)들을 색인에 포함시키고, 개발진과 함께 정한 카테고리를 고려해 색인화합니다. 한 가지 팁은, 문서에 포함된 메타데이터를 활용하는 것입니다. "여행" 예시로 이어서 설명하면 지역별 여행정보나, 여행지에서의 특정 시기에 관련된 이벤트나 행사 정보 같은 것들을 함께 제공할 수 있습니다.

 

 혹시 눈치채셨나요? 대부분의 검색 이슈는 '텍스트 전처리', '색인', '검색 알고리즘' 문제가 맞물려 있습니다. 검색 서비스 이슈가 인입됐을 때, 이 세 가지 요소별로 점검하면 좋을 체크리스트가 있으면 효율적일 것 같네요.

 

 

문법 오류로 인해 검색에 실패할 때

 검색어가 문법 오류로 인해 검색되지 않는 경우입니다. 이 경우는 보통 사용자들도 올바른 사용방법(검색어를 다시 입력한다)을 눈치챕니다. (하지만 늘 최선의 서비스를 제공하고 싶은 기획자 여러분의 마음을, 저는 이해하니까요..)

 

 이런 경우에는 텍스트 전처리 과정을 고도화해서 오타나 문법 오류를 보정해야 합니다. 아니면, 검색 알고리즘을 조정해서 유사한 검색어도 처리할 수 있게 하면 됩니다. 둘 다 하면 좋고요. 두 쪽의 작업 공수를 잘 비교해서, 우리 팀의 리소스에 맞는 일감을 생성하는 것이 최선일 것 같습니다.

 

 특정 산업 분야에 대한 전문 용어가 검색되지 않는 경우에도 마찬가지입니다. 이런 경우에는 도메인 특화 용어 사전을 따로 구축하는 것을 추천합니다. 당연히 색인화 작업이 필요해지겠죠.

 

 

검색 결과가 너무 많거나 적게 나올 때

 앞의 모든 경우를 포함하는 문제일 수도 있는 경우입니다. 검색 결과가 정확하지도 않은데 너무 많은 경우가 대부분입니다.

 

 이런 경우에는 불용어 처리 프로세스를 손봅니다. 불필요한 정보를 제거해서 검색 결과의 퀄리티를 개선할 수 있도록, 검색 결과를 더욱 정확하게 필터링해야 합니다.

 

 텍스트 전처리 과정에서 검색 쿼리나 문서의 토큰화, 정규화하는 과정을 다시 조정하는 방법도 있습니다. 이렇게 하면 검색 결과의 일관성이 높아집니다. ('토큰화'는 이전 글에서 다루었습니다.)

 

 너무 당연해서 말하지 않았던 사실 하나는, 사용자 피드백을 반영하는 방법도 있다는 것입니다. 개발진에서 문제를 판단하고 해결책을 제시할 수도 있지만, 사용자에게 그가 느끼는 문제와 해결방법을 직접 받아보는 방법도 있습니다.

 

 이밖에도 검색 속도 문제, 다국어 지원 부족 등의 다양한 이슈가 있습니다. 마찬가지로 이 세 가지 공식만 기억하면 됩니다. 텍스트 전처리 보정, 색인 최신화, 검색 알고리즘 고도화. 그러려면 백엔드 개발자와 친하게(?) 지내야겠죠. 검색 서비스 기획자는 여러모로 백엔드 개발자와 소통할 일이 많습니다.

 

 

마치며

 <서비스 기획 해부학> 매거진의 첫 번째 시리즈로, 검색 서비스를 기획할 때의 기초와 활용방법에 대해 소개했습니다. 검색 서비스를 구축, 고도화할 때 고려할 점검사항들은 <서비스 기획 체크리스트> 매거진에서 다룹니다.

 

 매거진은 브런치에서 편하게 모아보실 수 있습니다.

 - 서비스 기획 해부학 (새 창 열기 링크)

 - 서비스 기획 체크리스트 (새 창 열기 링크)

 

 다음 시리즈도 역시나 서비스를 기획할 때, 개발 지식이 특히나 요구되는 기능에 대해 더 다뤄볼 예정입니다. 관심 있는 주제가 있는 분은 말씀해 주세요. 감사합니다.

+ Recent posts