검색 서비스를 만드는 엔지니어가 겪는 어려움- by 하니가모

개발/검색2007. 9. 17. 10:18
728x90
검색 서비스를 만드는 엔지니어가 겪는 어려움

- 검색 솔루션 자체가 불완전한 것이라는 사실을 이해하기 어렵다.
- 검색 솔루션의 사용법(API)는 간단한데, 변수를 결정하려면 전체를 알아야 한다.
- 검색 서비스 기획자는 새로운, 참신한 기능을 개발해 달라고 요구한다.

- 검색 서비스를 만들기 위해서는 "대상으로 하는 문서를 끌어와서 Collection을 만들기", "날짜별/유사도별/가격순/참조순" 등 다양한 Ranking방식 설정하기, "출력 형태의 레이아웃 만들기" 가 기본적으로 필요한 것 같습니다. 첫 단계부터 "협력"을 하여야 하는데, 협력이라는 것이 사실 가장 어려운 일입니다. 상대방은 검색 솔루션이 만능이라고 생각하기 때문에 "이거 내일까지 다 해주실 수 있겠죠?"이런 식으로 이야기하는 것 같습니다. 모르니깐... 검색서비스 개발자는 요리사의 입장으로 원재료인 "대상문서"를 요리해서 (색인 빌딩) 손님의 테이블에 내 놓는 (UI, 검색창) 일을 하게 됩니다. 훌륭한 요리사는 재료의 특성을 모두 잘 알고, 손님을 파악해서 요리 도구와 향신료를 잘 사용해서 요리를 만들 듯이 훌륭한 검색 서비스 개발자는 검색 엔진을 이해하고, 대상 컨텐츠와 그것이 어떻게 색인될 것인지를 상상해서 기획자의 요구사항에 맞는 서비스를 내 놓아야 하는데, 한번에 모두 맞출수는 없는 경우가 많으니까, 여러번의 파라메터 조정을 거쳐서 서비스를 내놓게 되는 것 같습니다.

- 구글의 기업용 솔루션이 작년도에 미국에서 가장 많이 팔린 (가격이 저렴하고 구글의 것이니까) 제품이었다고 합니다. 금액적 규모로는 그다지 크지 않았지만, 구글 솔루션을 구매하는 고객들은 자신의 데이타를 구글의 엔진으로 검색하니까 얼마나 잘될 것인가하고 기대를 했겠지요. 결과는 대실패... 구글 엔진은 웹검색에 딱 맞는 솔루션인데, 다양한 Ranking과 모든 컨텐츠가 다 나오는 것이 중요한 중소규모 collection에는 적용하기 어려운 엔진이죠...

- 최고의 검색 서비스 개발자가 되려면, 검색 엔진 엔지니어보다 더 많은 것을 알고 있어야 하고 - 직접 구현할 필요는 없지만, 이해를 해야 속도와 결과를 예측할 수 있겠죠 - 서비스에 꼭 필요한 기능들을 - 예를들면 "비슷한 단어를 추천해준다거나, 실시간 검색어 랭킹을 만들어 준다거나 - 만들어주는 것이 필요합니다. 최고 속도를 위해서 Apach와 같은 웹서버 프로그램을 직접 고쳐서 검색엔진과 합체시키는 것, 구글과 같이 운영체제 자체를 고쳐서 검색용 서버를 만들어 주는 작업이 필요한 것도 같습니다.

- 검색 서비스 개발에서 또 한가지 중요한 것이 빠른 서비스 구축과 변경인 것 같습니다. Design이나 화면 배치가 변경될 때마다 매번 새롭게 프로그램 작업을 하기 보다는, 약간의 변경을 쉽게 처리하는 방법이 필요한 것 같습니다. 여기에는 웹 환경에 유리한 언어 php나 java에 대한 이해가 기본적으로 필요한 것 같습니다.

- 검색 서비스 개발자가 느끼는 비애도 검색엔진 엔지니어의 비애를 상속(inherit)받는 것 같습니다. 어찌 되었건 "검색"이라는 불완전한 솔루션으로 서비스를 만들어 놓았으므로, 매번 이런저런 요구사항들이 튀어 나옵니다. "한가인"을 검색하면 한가인은 안나오고 "한가한"이 나오는데, 이유가 뭐예요? "오마 샤 리프"를 검색하면 왜 이런 결과가 나오죠? " 이건 검색 솔루션 개발자의 책임사항이 아닌것 같아 보이는데, 이러한 불만을 듣게 되는 것 같습니다. 하지만 사실은 검색 서비스 개발자의 책임이라고 생각됩니다. 색인어 추출에 대한 다양한 옵션에서 골라서 적용한다거나, 결과를 미리 예측해서 색인 collection을 재구성하는 등의 작업을 하는 것은 바로 검색 서비스 개발자의 몫이기 때문입니다.


<출처> http://hanigamo.egloos.com/1458016
728x90

작성자

Posted by 일퍼센트

관련 글

댓글 영역