-
검색서비스 & 검색엔진IT 2009. 4. 8. 23:59
IT 쪽과 관련 없는 직종에 종사하는 대다수의 사람들 또는 검색에 대해 무관심한 사람들의 대부분은 검색 서비스와 검색엔진을 구분하지 않습니다. 검색 사용자 입장에서 굳이 그 둘을 구분할 필요가 없는 것이 당연한 일일 테고요.
현재의 회사 입사 후, 지인들을 만날 때 마다 당혹스러웠던 것이
"회사 옮겼다며? 이번 회사는 뭐 하는 회사야?" 라고 물을 때,
"어, 검색 엔진 솔루션 회사야" 라고 답하면, 십중팔구는
"아, 그래? 네이버, 다음 같은 회사인가 보지? 니네 회사 페이지 URL 좀 알려줘 봐라.. 들어가서 한번 검색 해보자."
"어.. 그러니까.. 그게 아니고, 네이버, 다음 같은 회사는 검색 서비스를 제공하는 회사고.. 그런 검색 서비스를 제공하기 위해서는 검색엔진이 필요 한데… 우리 회사는.. 어쩌고 저쩌고.." 이렇게 대화가 진행됩니다.
이정도 대화가 진행되면 듣는 쪽에서는 "귀찮게 뭘 그런 구분을 해, 그냥 다 검색이지."
그래서 요즘은 그냥 누가 어디 다니냐고 물어보면, "IT쪽이야" 내지는 "그냥 프로그램 만들어서 파는 회사야" 라고 하던가, 좀 아는 사람 같으면 "검색 관련 회사야. 더 이상 알려 하지마" 하고 맙니다.
검색 서비스 회사의 경우 검색 엔진을 직접 개발하여 사용하는 경우도 있습니다만, 대부분의 기업들은 검색 솔루션을 구매하여 사용하고 있습니다.
검색 엔진의 활용은.. 사실 앞서 언급된 네이버, 다음과 같은 포털 뿐만이 아니라, 지마켓, 인터파크와 같은 쇼핑몰, 공공 기관이나 기업 홈페이지 내의 정보 검색에도 사용됩니다. 기업 내에 쌓여있는 정보 검색에도 활용되고 있고요.
검색엔진과 검색 서비스의 관계를 생각해 볼 때 검색엔진은 호수 위의 우아하게 떠 있는 백조의 발 같다고 할까요?
아마도 지금 이 순간에도 많은 사람들이 검색 서비스를 이용하면서 저희 회사의 검색 엔진을 사용하고 있겠지만, 아마도 어떤 검색 엔진을 쓰는지, 어디 회사 제품인지는 관심이 없겠죠. 성공한 검색 서비스는 사람들의 입에 회자되지만, 그 성공에 기여한 검색엔진은 사람들의 관심사 밖입니다.
포탈이나 쇼핑몰은 검색 서비스가 차지하는 비중이 큽니다. 따라서 검색 엔진의 중요성도 다른 서비스에 비해 부각됩니다. 쇼핑몰의 경우 검색을 통한 직접적인 매출이 전체 매출의 30%에 육박한다는 통계를 본 기억도 납니다. 때문에 검색 엔진이 문제를 일으킬 경우-얼마 전 모 온라인 대형 쇼핑몰에서 검색 서버 장애로 인해 웹 서버까지 모두 먹통이 되어 12시간 정도 사이트 전체 장애가 발생했다고 하더군요. 남 일이 아닌 것처럼 느껴집니다. ㅡㅡ;; .- 매출 하락과 직결됨은 물론이며 고객 이탈을 가져올 수 있고, 검색 결과에 대한 만족도가 낮을 경우 역시도 고객 이탈과 연결됩니다. 실제로 쇼핑몰에서 검색 엔진이 문제를 일으키는 경우에 검색엔진 회사의 담당자들이 줄줄이 불려 들어가는 경우가 있습니다. 그때 나오는 얘기중의 하나가 "분당 매출이 얼마인데~~ 손해배상은~~" 이런 류의 대화들이 오고 가기도 합니다. – 이럴 때 속으로 드는 생각은 "그렇게 중요한 줄 알면서 왜 이리 솔루션 가격은 후려 치시려 하시는지, 그 정도 중요성이 있으면 검색 부하에 맞게끔 투자를 하시고, 그에 맞는 비용을 지불하셔야~~" 라고 말하고 싶을 때가 있습니다. ^^ -
실제 사이트 담당자들과 회의를 진행하다 보면, 쇼핑몰 사이트들은 검색기획팀, 검색 운영 팀을 별도로 운영함은 물론이고 자기들이 가진 데이터를 어떻게 검색에 활용할지, 어떻게 효율적으로 운영할 지를 고심하고, 그 고심한 내용을 회의 때 쏟아 냅니다. 주로 나오는 얘기는 기획한 검색 서비스를 제공하기 위해서 검색엔진을 어떻게 활용할 것인가에 대한 내용이 많습니다. 대부분의 서비스기능은 현재 검색 엔진을 통해 구현 가능한 기능들이지만, 제공이 불가능한 기능이 있기도 합니다. 기능이 구현되지 않아 불가능한 경우도 있고, 서비스 구현은 가능하나 해당 기능 사용으로 인한 부하 등의 이유로 사용이 불가능한 경우도 있습니다. – 사실 이런 경우는 현재상태에서는 부하 분산을 위해 서버를 증설하여야 하겠지만, 고객들은 이를 단지 엔진을 많이 팔기 위한 장사 속으로만 치부하는 경우도 있습니다. 저희 회사 영업이 연구소 소속인 저를 대동하고 회의에 참석하려는 이유도 여기 있습니다. 영업이 가서 이야기 하면 장사꾼들이 하는 거짓말 이라고 생각하지만, 연구소 담당자가 이야기하면 진실성이 통한 다나요?
이에 비해 검색 서비스의 중요성이 부각되지 않는 사이트들이 있죠. 검색 서비스를 하기는 해야겠는데 DB로 하기에는 DB의 부하가 걱정되니, DB 서버의 부하를 줄여 주는 차원에서 검색엔진을 도입하는 곳입니다. 이런 곳들 담당자 분들 중에는, 검색엔진만 도입되면 DB 서버는 데이터 저장소로만 사용되는 것이고, 검색과 관련된 모든 입출력은 검색엔진에서만 이루어 진다고 잘 못 알고 계신 분들도 있습니다. 말 그대로 우리 귀한 자식인 DB 서버를 애지중지 하시다 보니, DB 서버가 이런 저런 부하로 고생하는 걸 못 보시겠고, 그래서 허드렛일 할 일꾼 하나 들인다고 생각 하십니다.. 심지어 검색 데이터 수집을 위해 DB 서버에 접근하는 것 조차 용납 못하시는 담당자들도 봤습니다. 난감한 경우죠.
또 다른 경우는, 위와 마찬가지로 검색 서비스의 중요성이 부각되지 않음은 물론이고, 검색 엔진을 왜 도입하는지 담당자들조차도 잘 모르는 경우입니다. 그냥 할당 받은 예산 집행을 위해, 또는 일거리 만들기 위해서 검색엔진을 도입하는 것이지요. 회의에 참석해 보면, "우린 데이터도 별로 없고, 검색 하는 사람도 별로 없어서 그냥 DB Like 검색으로도 충분한데, 귀찮게 위에서 하라고 하니 한다." 이런 식입니다. 이런 곳들은 프로젝트 종료되고 한 1년 정도 지나서 유지보수 차 찾아가 보면, 검색 엔진이 떠 있지도 않는 경우가 있습니다. 서버 정기점검 등의 이유로 하드웨어 restart 이후에 검색 엔진을 startup 시키지 않고 있었던 거죠. 신기하게도, 그런 상태로 몇 개월이 지났을 텐데, 담당자들은 검색 서비스가 안 된다는 걸 모르고 있더군요.
검색 서비스의 성공 -사용자가 만족할 수 있는 검색 서비스 구축, 조직의 효율성을 높이기 위한 검색 서비스의 구축 등- 을 위해 검색엔진이 중요한 역할을 하는 것은 틀림없는 사실입니다. 하지만, 좋은 검색엔진의 도입만이 성공의 절대적 요소는 아닙니다. 검색 엔진은 그러한 요소들 중의 하나의 요소이지 전부가 아닙니다. 검색 서비스의 성공 여부는 양질의 데이터 확보, 그 데이터를 효과적으로 전달하기 위한 서비스 기획, 그리고 나서 그 기획을 구현할 수 있는 검색엔진의 선택, 그리고 지속적인 관심을 통한 운영이 있어야만 합니다.
검색서비스란 기본적으로 검색할 대상 데이터를 확보하고 있어야만 합니다. 데이터가 없다면 검색이란 것 자체가 필요 없겠지요. 그렇다고 검색 사용자에게 효용성이 없는 쓰레기 데이터의 확보를 말하는 것은 아닙니다. 사람들이 찾고자 하는 것은 단지 내가 찾는 키워드가 포함된 의미 없는 데이터가 아니라, 읽을 만한 가치가 있는 정보일 테니까요. 또한 충분한 데이터를 확보하는 것도 중요하겠지요. "양이 질을 담보한다" 라는 말씀을 하시는 분도 있습니다.
예전, 어떤 A라는 쇼핑몰 담당자와의 회의에서 담당자 분이 이러한 말씀을 하시더군요.
"우리의 경쟁사인 B 쇼핑몰 사이트에서는 특정 검색어로 검색이 되는데, 동일한 상품이 있는데 왜 우리 사이트에서는 그 검색어로 검색이 안 되는 거냐? 그리고, 우리 사이트에서는 왜 경쟁사인 B에 있는 이 기능이 없습니까? 당신네 검색 엔진이 B사 검색 엔진보다 기능이 떨어지는 거 아닌가요? 이 문제를 해결하지 못한다면 엔진 교체를 검토하겠습니다." 그 담당자가 말한 경쟁사인 B 쇼핑몰도 사실은 A 쇼핑몰과 같은 검색엔진을 사용 중이었습니다. 이 담당자가 말한 검색 결과의 차이나, 검색 기능의 차이는 결국 검색 기획에 따른 차이였던 것이었습니다.
현재 재직중인 회사에는 쇼핑몰 전용 검색엔진을 별도로 개발하여 사이트에 공급 중이며, 40여 개의 쇼핑몰에서 사용 되고 있으나, 이러한 쇼핑몰이 전부 동일한 기능을 사용자에게 제공하거나, 같은 상품이라 하더라도 동일하게 노출되는 것은 아닙니다.
검색엔진이 100 이라는 기능을 가지고 있다고 하더라도 검색 서비스에 그 기능의 100 전부가 사용되지는 않습니다. 어떤 서비스에서는 90이 사용되고, 어떤 서비스에서는 30이 사용되기도 합니다. 그렇다고 해서 검색 솔루션 업체에서 그 기능 100을 다 사용하도록 강요할 수도 없는 것이지요. 솔루션 업체의 입장에서는 고객이 기획한 서비스 기능에 대해서 최대의 만족도를 줄 수 있도록, 가지고 있는 검색 엔진의 기능을 효과적으로 적용할 뿐입니다.-검색엔진 업체에서는 검색 기획 또는 컨설팅이 가능하나, 문제는 이에 대한 제대로 된 비용을 받고 진행하기 힘든 경우가 많습니다.
전 기획자가 아닌지라, 검색 서비스 기획을 어떻게 해야 하는지 명확히 정의를 내리지는 못합니다. 하지만, 그간 여러 프로젝트 및 고객들을 통해 느낄 수 있었던 것은, 동일한 데이터를 가지고 있더라도 어떻게 사용자에게 정보를 제공할 것인지에 따라 서비스의 성패가 갈릴 수 있다는 것입니다. "어떻게 하면 사용자가 좀 더 쉽게 원하는 정보에 접근할 수 있도록 하는가"-정보 접근성 이라고 할 수 있겠죠. 이러한 정보 접근성은 단순히 화면 UI 만을 말하는 것은 아닙니다. 데이터의 특성과 검색 사용자의 특성을 고려한 특화된 기획을 말씀 드리는 것입니다.. 예를 들어 뉴스기사/ 블로그 포스트/게시판 글/상품 데이터 사이에는 데이터 특성의 차이가 있습니다. 따라서, 뉴스 데이터는 최신성에 의미가 있기 마련이고,블로그 데이터는 댓글 수나 트랙백 수, 게시판 글에는 조회수가 의미를 가질 수 있으며, 상품 데이터는 판매지수와 상품평수, 가격 등이 의미를 가집니다. 또한 동일한 데이터 라고 할지라도, 10대 사용자와 40대 사용자, 남자와 여자가 다른 기준을 가지고 정보를 검색 합니다. 회사내의 지식 검색에서 조차도 동일한 데이터에 대해 동일한 키워드로 검색하더라도, 부서별로 사용자들이 원하는 검색 결과는 달라질 수 있습니다. – 지금은 주요 이슈가 다른 곳으로 옮겨가는 바람에 사람들의 관심에서 조금 멀어지긴 했지만, 한때 개인화 검색이라 해서 많은 관심을 가졌던 부분이며, 실제로 Profile 개념이 적용된 검색엔진이 있습니다.
기획된 검색 서비스는 결국 검색 엔진을 통해 구현 됩니다. 따라서 아무리 훌륭한 검색 기획이라고 할지라도 그 밑단에서 검색엔진이 그 기능을 구현할 수 없다면 기획자의 노력이 허사가 되어 버립니다. 또한 기획한 대로 구현 되었다 하더라도, 그 성능을 담보할 수 없어서 사용자가 불만을 느낀다면 이 역시도 헛된 노력이 되어 버립니다. 따라서 기획된 서비스를 구현할 수 있고, 또 안정적인 서비스를 제공할 수 있는 검색 엔진이 필요하게 되는 것이지요. 국내에 검색 솔루션을 개발하여 판매하는 주요 업체로는, 다이퀘스트, 코리아와이즈넛, 코난테크놀로지, 오픈베이스, 솔트룩스 등등이 있습니다. 이러한 업체들은 서비스 도메인 별 특성을 고려한 검색엔진을 별도로 가지고 있기도 합니다. 도메인 별 검색엔진은 검색엔진에서 사용하는 사전, 도메인에 특화된 기능의 차이가 있을 수 있습니다.
예를 들어 쇼핑몰 검색 엔진의 경우에는 일반 포탈에서 사용하는 대용량 형태소 분석 사전은 효과를 좋은 효과를 기대하기 어려울 뿐 아니라 불필요한 사전 엔트리로 인해 검색 엔진 성능 저하의 원인이 되기도 합니다. 오히려 쇼핑몰에 특화된 상품명 사전, 상품 카테고리 별 특화 사전, 상품 유의어 사전 등등 일반 도메인에서 사용되지 않는 별도의 사전 활용이 더 큰 효과를 나타냅니다. 일반 포탈에서야 "노빠" 라던가 "자통법" 과 같은 용어의 분석이 중요하지만, 쇼핑몰에서는 "꽃을 든 남자" 라는 세 어절을 상품명으로 분석할 수 있는 사전이 더 큰 의미를 갖는 것입니다. 또한 포탈에서는 일반적으로 정확도와 날짜 정렬 두 가지 정렬 기능만을 사용하지만, 쇼핑몰에서는 정확도+판매지수+가격+사용자평가 점수 등을 통한 다중 정렬 외에도, 이러한 각종 지수 값들을 활용한 새로운 정렬 기준 생성 기능도 필요합니다. 예를 들자면 각 지수를 normalize한 후에, 정확도에는 10%의 가중치를, 판매지수에는 20%의 가중치를 가격에는 50%의 가중치를, 사용자 평가 점수에는 20%의 가중치를 준 결과를 합하여 새로운 정렬 기준을 생성하기도 합니다.
한편 모바일 검색의 경우라면, 현재 검색 사용자가 위치한 위치 정보를 활용한 정렬 및 필터 기능이 필요합니다. "맛집"을 검색 한 결과에서 검색 사용자의 위치와 근접한 순서대로 맛집의 결과를 제공하는 기능이라던가, 사용자의 현 위치에서 반경 1km 이내에 있는 맛집 검색 결과만을 제공하는 기능입니다. – Euclidean distance sort와 Euclidean distance filtering 과 같은 기능이 구현된 검색엔진들이 있으며, 이 기능을 다른 형태의 서비스로도 적용할 수 있겠죠 - 강남구 개포동에서 "치킨배달"을 검색한 사용자에게 강원도 원주에 있는 "치킨배달 집 전화 번호 033-xxx-xxxx" 를 검색 결과로 제공할 필요는 없겠지요.
검색엔진 업체간의 경쟁이 치열해 지다 보니, 비록 솔루션 자체에 없던 기능일지라도 고객이 강하에 요구하는 경우에 울며 겨자 먹기 식으로 해당 요구기능을 구현하는 경우가 있지만, 이럴 경우 성능 및 안정성을 담보하기 어려운 경우가 발생하게 됩니다. 따라서 올바른 검색 엔진의 선택을 위해서는 기획한 기능을 수용하는 검색 엔진의 기능 spec을 확인-이러한 확인을 솔루션 회사 영업 담당과 얘기하면 영업담당들은 대부분 가능하다고 얘기하는 것 같더군요. -하고 성능 및 안정성이 검증할 수 있는지 여부를 확인해야 할 것입니다.
훌륭한 기획과 더불어 적합한 검색엔진을 설치하여 프로젝트를 완료한 후에 open을 하고, 사용자에게 검색 서비스를 제공하게 되었고, 사용자들의 반응도 괜찮은 것으로 판명되었다면 이제 검색 서비스는 성공한 것일까요? 좀더 정확히 하자면 이 검색 서비스가 계속 성공한 서비스로 유지될까요? 제가 생각하는 답변은 "NO" 입니다.
검색대상이 되는 데이터는 계속적으로 추가될 것이고 이 추가되는 데이터는 시간이 지남에 따라 기존에 파악했던 데이터와 다른 특성을 가질 수 있습니다. 또한 검색 서비스 사용자는 계절에 따라 또는 특정 이슈에 따라 검색 패턴과 사용자의 기호가 변화할 것입니다. 또한 검색의 기본이 되는 언어 역시도 생명력을 가지고 계속적으로 변화합니다. 검색기획과 검색엔진이 open 초기 상태 그래도 유지된다면 이러한 변화에 대처할 수 없게 됩니다. 데이터의 특성의 변화, 사용자의 변화, 언어의 변화는 지속적인 모니터링을 통해 그 변화의 흐름을 따라가야 합니다. 물론 이런 변화에 검색 기획의 즉각적인 대응이 가능하다면야 최상이겠으나, 그렇지 못하다면 검색 엔진의 관리를 통해서 변화의 흐름에 대응할 수 있어야 합니다. 새로운 랭킹 모델을 시험하여 적용하고 적용된 후의 사용자 만족도를 모니터링 할 수 있어야 하며, 언어의 변화에 맞추어 새로운 신조어를 추가하는 등의 검색엔진 관리가 필요합니다.
"관리되지 않는 검색은 죽은 검색이다." 이란 말을 들은 적이 있습니다. 핵심을 찌르는 명언이지요
'IT' 카테고리의 다른 글
리눅스 커널 버그로 인한 thread Hang.... (0) 2009.03.26