소프트웨어 전문지 마이크로소프트웨어 395호는 데이터과학을 주제로 담았습니다. 데이터과학에 대한 개론, 학습 방법, 실무 적용 사례, 학계 등 마소 395호 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

최신 서비스 중 검색 기능을 전혀 사용하지 않는 서비스가 있을까? 문득 머리를 스친 궁금증을 확인하기 위해 스마트폰을 꺼내 들고 한동안 기기에 설치된 애플리케이션을 살펴봤다. 기본적인 메신저, 지도, 음악, 쇼핑, 심지어 연락처 애플리케이션까지 대부분 서비스는 검색 기능을 크고 작은 형태로 다양하게 제공하고 있다. 서비스가 더욱 복잡해지고, 다루는 데이터양이 방대해짐에 따라, 이는 자연스러운 흐름이라는 생각이 든다.

독자의 원활한 이해를 돕고자, 버즈니가 운영 중인 모바일 홈쇼핑 포털 앱 ‘홈쇼핑모아’의 검색 서비스 예시를 적극적으로 활용했다. ‘홈쇼핑모아’는 국내 17개 모든 홈쇼핑 및 T커머스사 외에도 11번가, 옥션, G마켓 등으로부터 받은 상품 데이터 약 1억 건을 한눈에 볼 수 있는 서비스다.

홈쇼핑모아가 작은 모바일 화면에 보여줄 수 있는 상품의 개수는 현실적으로 100개 미만이다. 이 중 상위 30개 상품에서 사용자가 원하는 상품이 없다면, 사용자는 다른 검색어를 입력하거나 서비스를 이탈한다.

검색 기능을 구현하기 위해서는 크게 3가지 단계가 필요하다. ▲토크나이저와 색인 ▲지식 체계를 통한 의미 확장 ▲인기순 랭킹 생성 등이다.

앞서 말한 것처럼, 홈쇼핑모아는 약 1억 건의 상품 데이터를 다루고 있고, 각 상품명은 ‘LG 올뉴그램15인치2018 [15ZD980-GX50K]’처럼 다양한 정보를 포함한 단어를 나열하고 있다. 상품명에는 브랜드명, 모델명, 출시연도 등 여러 상품 정보가 포함됐다. 사용자의 검색 키워드로부터 상품명을 검색하기 위해서는, 먼저 상품명을 검색 가능한 최소 단위로 분리하는 작업이 필요하다. 이때 사용되는 모듈이 ‘토크나이저’다.

쇼핑 검색에 사용되는 하이브리드 토크나이저 데이터 흐름도. / 마이크로소프트웨어 395호
쇼핑 검색에 사용되는 하이브리드 토크나이저 데이터 흐름도. / 마이크로소프트웨어 395호
토크나이저 모듈을 이용해 모든 상품명 데이터를 최소 단위로 분리한 후, 색인을 진행한다. 여기서 색인이란 사용자가 입력한 키워드에 대해 빠르게 검색할 수 있도록 사전에 구조화를 해주는 작업이다. 이로써 검색에 필요한 상품 데이터의 준비 작업은 완료됐다.

이제 사용자가 검색창에 검색어를 입력하면, 검색엔진은 상품명 데이터를 분리할 때에 사용한 것과 같은 토크나이저를 이용해 해당 검색어를 분리한다. 그 후, 이전 단계에서 미리 색인 된 데이터를 이용해 관련된 검색 결과를 추출한다. 약 1억 건 데이터 중 사용자가 입력한 검색어와 관련된 데이터를 어떻게 추출하고 점수화하는지는 정보 검색 알고리즘을 통해 진행된다.

윤창호, 조창래 필자의 ‘데이터로 본 검색 서비스’에 대한 자세한 내용은 ‘마이크로소프트웨어 395호(https://www.imaso.co.kr/archives/4654)’에서 확인할 수 있다.