검색 엔진 자체를 만드는 엔지니어가 겪는 어려움 -by 하니가모

개발/검색2007. 9. 17. 14:54
728x90
1. 검색 엔진 자체를 만드는 엔지니어가 겪는 어려움

- 기능은 간단한데 (sort와 search) 다루어야 하는 대상의 크기가 무지 크다.
- 다양한 기법을 적용해 보고 그 중에 가장 적당한 기법을 스스로 찾아서 적용해야 한다.
- 한가지 기법을 테스트하려할때 수백만~수천만 건에 대해서 테스트 해야 하므로, 비용이 많이 든다.

- 검색 엔진은 크게 "하부저장구조", "색인어 추출기", "역색인 빌딩", "질의어 분석", "Posting 추출과 Ranking 연산", "Ranking 재조정", "결과물 출력"의 모듈을 가지게 됩니다. 그런데 이런 것들에는 뭔가 정답이랄까, 혹은 참고할 만한 교과서가 없다는 것이 문제라고 합니다. 사실 현재와 같은 컴퓨터를 사용하기 시작한 것은 1990년이후라고 보아야 할 것 같습니다. 그 이전에는 대형 컴퓨터가 지금과 상당히 달랐었죠. 또한 네트워크로 연결된 컴퓨터를 사용하기 시작한 것은 2000년 근처부터라고 해야할 것 같습니다. 그러므로 스승님들께서 나름데로 기법을 정리해서 "교과서"로 만들어 주시기에는 아직 시간이 부족하다고 하여야 할 것 같구요. "Managing Gigabytes, 1999"라는 책이 그나마 도움이 된다고 하지만, 그래도 그대로 적용할 수 없을 정도의 것입니다. 벌써 10년전의 것이고, 지금의 컴퓨팅 환경은 상당히 달라져 있습니다. 그러므로 교과서를 참고는 하되 완전히 재해석해야 하는 것 같습니다.

- 전세계적으로 제대로된 검색엔진을 만드는데 참여한 사람의 숫자가 매우 적고 그들이 사용한 방법은 Text로 나와있지 않았으며 knowhow로 몸에 녹아져 있고 그것이 언어화되기 어려워서 기법을 전수하는 것 또한 쉽지 않은 것 같습니다. "자신이 알고 있는 것을 말로 전달할 수 없다"

- 검색엔진 엔지니어가 되려면, 컴퓨터 개론, 운영체제, 데이타구조,  컴퓨터 구조론, 네트워크, 컴파일러, 확률 통계 등의 기본기가 갖추어져 있어야 하는 것 같고, 그 위에 Unicode 등의 Coding Trend, TRIE/Hashing 등의 Indexing algorithm, 다양한 Sorting algorithm, 그리고 UNIX 시스템 프로그래밍, 아파치 모듈 프로그래밍 등을 알고 있어야 하는 것 같습니다. 거의 대부분의 전산분야에 대한 지식이 동원되어야 하는 군요....

- 과거에는 장비가 현재와 비교해서 매우 열악했기 때문에, 최소 공간에 최대 속도를 위해서 여러가지 다양한 기법을 사용하였기 때문에 여러명이 연합해서 검색엔진을 만들었었습니다. 최소의 인원은 3명이었지 않나 싶습니다. 최근에는 장비가 좋아져서, 100만건 이내의 검색엔진은 혼자서도 충분하게 프로그램을 만들 수 있는 것 같습니다. 그런데 컴퓨터 장비의 발전과 더불어 컨텐츠의 증가 또한 폭발적으로 늘어났기 때문에, 100만건이라는 숫자는... 너무 작은 숫자가 되어버렸습니다. 그래서 검색엔진은 보통 혼자서 작성할 수 있는 프로그램의 범위를 넘습니다. 크게는 하부저장구조, 색인 랭킹, 크롤러, 색인어추출 최근에는 사용자 행태 분석까지 5명 정도의 전문엔지니어가 필요한 것 같습니다.

- 이렇게 해서 어렵게 엔진을 만들면  "빠르게 답변이 나와야 한다"라는 한가지의 목표는 잡을 수 있습니다. 그런데, "제대로된 결과가 나와야 한다"는 것은 보장할 수 없는 것 같습니다. 그 이유는 원래 "검색"이라는 것이 Similar matching (비슷한 것 찾기)이기 때문에 Exact matching(똑같은 것 찾기)의 문제와 평가되는 방법이 다르기 때문입니다. 그리고 검색의 대상은 사람들이 작성한 "언어"입니다. 언어는 그 자체가 불명확할 수 밖에 없고 모두 규칙을 지켜주지 않는 자연물입니다.

- 검색엔지니어는 엔진을 만드는 과정에서도 생각할 것이 많고, 다 만들어서 데이타를 올려 돌리고 나서도 생각이 많아 질 수 밖에 없습니다. 컴퓨터는 "인공적 대상"을 잘 다루는 ( 1 + 1 = 2와 같은 숫자 계산을 잘하는) 장치인데, "자연적 대상" (나를 + 나아주신 + 사람 = 어머니"와 같은 연상 체계)인 "언어"를 숫자로 계산해서 결과를 만들게 되니까 완벽한 결과를 만드는 것이 항상 불가능합니다. 그래서 검색엔진을 오래하면 노자 사상 쪽으로 가게 되나 봅니다.  知者不言言者不知

http://hanigamo.egloos.com/1457976
728x90

작성자

Posted by 일퍼센트

관련 글

댓글 영역