인터넷 한글정보검색서비스 - 심마니

이영식
서울시 영등포구 영등포동 7가 94-46
(주)한글과컴퓨터 기술개발부문 자연어처리팀
E-mail : ailove@hnc.co.kr

황호정
서울시 영등포구 영등포동 7가 94-46
(주)한글과컴퓨터 기술개발부문 자연어처리팀
E-mail : hjhwang@hnc.co.kr


Abstract:
(주)한글과컴퓨터에서 개발한 한글정보검색 시스템 심마니(http://simmany.hnc.net)는 국내 및 한국과 관련있는 모든 웹 정보들을 색인하여 96년 3월 20일부터 서비스하고 있는 웹 로봇을 이용한 정보검색 서비스이다. 주제어검색서비스, 분류서비스, 분야별 검색 서비스 등 다양한 기능들로 인터넷 사용자들로부터 좋은 호응을 얻고 있다. 한글처리에 중점을 둔 색인기 및 검색기, 로봇배제 규칙을 따르며 다양한 서비스를 목적으로 개발된 로봇 등이 심마니 서비스를 더욱 빛나게 해주고 있다.
Keywords:
WWW, simmany, 심마니, IR, robot, 정보검색, 색인기, 검색기, 심봇, 분류서비스

1. 서론

1.1. 한글정보검색시스템에 대한 연구

1940년대 이전의 미국의 도서관에서는 그때까지만 해도 정보검색(Information Retrieval)이라는 용어를 도서관 업무를 보던 사서가 원하던 자료를 찾아주는 작업을 일컫는 말로 통용되었었다. 이 사서는 자신이 관할하는 영역의 모든 도사관 자료를 기억하고 있다가 원하는 이가 있을 때 바로 찾아주는 역할을 했던 것이다. 이 자료가 방대해 질수록 사서만으로 해결할 수 없다는 결론이 얻어지면서 정보검색시스템에 대한 요구도가 갈수록 커지기 시작했으며, 미국에서는 이 1940년대 이후에 정보저장 방법에 대한 연구와 검색방법에 관한 연구들이 이루어지기 시작하여 도서관 뿐만 아니라 기업 내 문서 등의 많은 곳에 광범위하게 문서검색 도구로써 자리잡게 되었다.

한국에서의 정보검색에 대한 연구는 1980년대에 들어와서 이루어지기 시작했는데 그때까지의 연구는 한글이 영어와 다른 복잡한 구조를 가진 언어라는 점을 파악치 못한 상황에서 이루어져 저장공간과 검색의 두 부분에서 많은 낭패를 맛보며 진행되어 왔다. 1990년대 초에 한글 맞춤법 검사기라는 한글 형태소분석 수준의 시스템이 실용화되기 시작하면서 여태까지의 연구가 꽃을 맺기 시작했는데 오늘날에는 한글 형태소분석기에 대한 연구 및 구문분석 등의 분야가 활발히 진행되고 있다. 이와 함께 인터넷이라는 정보 무한정의 공간이 등장하면서 정보검색에 대한 연구가 더욱 가속화되면서 많은 실험수준의 정보검색 시스템이 등장하였으며 실용화가 앞당겨지고 있다.

2. (주)한글과컴퓨터 정보검색 시스템 - 심마니

(주)한글과컴퓨터에서는 정보검색의 이러한 배경과 함께 90년대 국내 최초로 "한글 맞춤법 검사기"를 만들고 꾸준한 연구 과정 속에 "빠른 교정", "자동한영전환", "유의어 사전" 등의 개발을 하게되었다. 정보검색에서 요구되는 효율적인 정보저장이라는 측면에서 연구되어져야할 자료구조에 대한 연구가 사전류를 만드는 시점에서 이미 완성되었고 검색이라는 측면의 연구로 위에서 든 "빠른 교정", "자동한영전환", "유의어사전"의 기술을 접목하면서 개발은 더욱 가속화되게 되었다.



2.1 심마니 개관

2.1.1 심마니의 역사

심마니라는 이름으로 자사가 서비스를 제공하기 시작한 것은 7개월전인 1996년 3월 20일부터이다. 20,000여개의 웹문서를 1차 대상으로 색인하고 서버는 Sun사의 Sparc 20, 4G HDD, 128M Memory를 이용하였다. 당시의 20,000여개의 문서들은 호스트 이름이 중복되어 같은 문서도 많았으며 서비스 상의 많은 허점들이 보여서 스텝들을 당황스럽게 하였다. 이후 심마니는 '속도 및 기능 개선'을 하였으며, 사용자들의 호평을 받은 '사랑방'서비스를 Open하였고 '인터넷 자유여행'이라는 인터넷의 재미를 덧붙이면서 발전을 거듭하였으며, 급기야 10월에는 국산 신기술로 인정을 받는 쾌거를 누리면서 명실상부한 국내 최대 접속 사이트로 거듭나고 있다.

[표 1]에 심마니의 현재까지 역사를 알기쉽게 시간순으로 나타내어 보았다.

날짜

내용

'96.3.20

인터넷 한글정보검색 시스템 심마니 개통

'96.3.28

한글 홈페이지 모음 기능 추가

'96.4.2

사랑방 개설

'96.4.8

맞춤법 오류 확장 검색 기능 추가

'96.4.15

발음 확장 검색 기능 추가

'96.4.16

심봇 '로봇배제' 준수

'96.4.25

심마니 검색 속도 혁신

'96.5.2

인터넷 자유여행 기능 추가

'96.5.15

분류서비스용으로 홈페이지 등록방법 개선

'96.6.12

검색결과내 재검색 기능 추가

'96.6.17

심마니 분류서비스 시작

'96.7.25

심마니 발음확장 기능 개선

'96.9.24

심마니 서버 교체

'96.10

심마니 KT인증 획득

[표 1] 심마니의 역사

2.2 심마니 구성도

2.2.1 심마니 엔진의 구성

한글정보검색서비스 심마니에 쓰인 정보검색엔진의 구성은 다음 [그림 1]이 나타내는 바와 같다. 대상이 되는 문서는 일반 Text 문서이며, 이 문서들이 심마니 색인기의 입력으로 쓰이게 된다. 검색기는 색인기에서 만들어진 색인어사전과 색인어정보사전 등의 지식사전을 이용해서 검색하여 해당 문서를 찾아 결과를 알려주게 된다. 검색기와 색인기의 입력, 출력의 결과물의 형식을 통일하기 위해서 심마니 엔진에서는 문서에 관련된 모든 Access함수를 외부 프로그램에서 수정할 수 있도록 설계되어 있다.

심마니 엔진을 사용하는 외부 프로그램은 심마니엔진의 이 외부조절 함수들을 수정하여 자신의 시스템에 적합한 문서구조를 지정할 수 있다.

[그림 1] 심마니 엔진의 구성

2.2.2 심마니 서비스 시스템의 구성

현재 심마니 서비스는 주제어 검색서비스, 분류서비스 검색 및 분야별 검색 등 다양한 검색 기능을 갖추고 수행중이다. 시스템은 Sun Ultra Sparc, Sun Sparc 1000으로 총 2대의 Workstation으로 구성되어 있으며, 서비스 전용 시스템과 로봇, 색인기 등 서비스에 필요한 부가 프로그램들을 위한 시스템으로 나뉘어져 있다.

Sun Sparc 1000(HDD : 20G, Mem : 256M) : Http Demon, 심마니 질의어 검색기, 각종 log기록기, 심마니 부가기능 제공
Sun Ultra Sparc(HDD : 4G, Mem : 256M) : 심마니 자동색인기, 심봇

2.3 심마니 지식사전

2.3.1 지식사전

자연 언어를 처리하기 위해서 여러 가지 지식을 이용하고 있다. 그 중에서도 사전의 형태로 이용하는 시스템이 주류를 이룬다. 이러한 사전은 디지털화되어서 전자사전을 이룬다[Salton 89][남영준 96].

이런 시스템에서 이용되는 사전은 추상적인 이론보다는 현실적인 사용을 중시하는 상태로 이용되는 것이다. 다음은 사전에 대한 정의이다[김영택 94].

사전은 어휘에 기반을 두고 있는 언어의 지식 베이스로서, 한 언어에 대한 모든 실질적인 정보와 지식을 담고 있다.

2.3.2 심마니의 지식

'심마니'에서도 다른 자연언어 처리 시스템과 유사하게 다양한 사전을 이용한다. 이러한 사전들은 다년간에 걸쳐서 얻어진 중요한 정보이다. 특히 한국어를 처리하는 데에 매우 효과적이고 높은 성능을 발휘하도록 구성되어 있다[Tharp 88][Horowitz & Sahni 87]. 다음은 '심마니'에서 이용하는 사전에 대한 상세이다.

종 류

기 능

불용어 사전

(Stop List)

색인어의 가치가 없는 낱말을 가지는 사전이다. 이 사전에 포함되는 낱말들은 모호성에 대한 배제를 행한 것이므로 색인어 결정에 장애가 되지 않는다. 한국어를 위하여 접속사 등이 포함되어 있으며, 영어를 위하여 관사 등이 포함되어 있다.

예) 기껏해야, become

끝말사전

자주 이용되는 조사나 어미 등을 제거하기 위한 사전이다. 한국어가 교착어의 특성으로 인하여 변형이 많으므로 그 원형을 판단하기 위하여 이용된다. 또한 숫자와 결합되어서 불용어를 나타내는 낱말 등도 등록되어 있다.

※ 처리의 효율을 위하여 맞춤법 오류인 것도 포함됨

예) 뿐만아니라, 됐습니다, 킬로그람

기본 사용자정의 사전

사용자 설정에 의한 색인어 결정이 가능하게 하고, 색인의 누락을 방지하게 하는 역할을 하는 사전이다. 특히, 이 사전은 강제색인(색인어를 강제로 결정함)의 특징을 가능하게 한다. 이 사전에는 기본적으로 한국어의 일반 낱말과 영어의 일반 낱말이 등록되어 있다. 이 사전에 사용자 정의된 낱말들을 등록하면 그 낱말들이 색인어로 등록된다(단, 불용어는 등록해도 색인어로 선택되지 않는다).

※ 복합명사도 포함되어 있음

예) 한국어, school boy

자동문서분류 사전

색인된 문서를 자동으로 분류를 하기 위하여 이용되는 사전이다. 각 낱말들은 18개에 해당하는 분류로 나뉘어 있으며, 중복된 분류에 해당하는 것도 있다.

※ 기타는 분류가 불가능할 때

종류) 정치, 경제, 법률, 순수과학, 응용과학, 동물, 식물, 컴퓨터, 사회, 농수산, 의학, 스포츠, 예술, 철학, 언론, 역사, 건축, 종교, 기타

[표 2] 심마니 지식사전(색인용)

종 류

기 능

자연어 질의어 분석 사전

사용자가 입력하는 자연어 질의어를 내부적인 표현법인 불리언 표현법(Boolean Expression)으로 변경할 때 이용되는 보조사전이다. 실제 자연어 질의어를 불리언 표현법으로 변경할 때는 이 사전 외에도 색인어 사전, 유의어 사전 등이 이용된다.

예) 한글과 관계있는 문서를 찾아라, 그리고, OR

유의어 사전

유사한 의미를 가지는 낱말에 대한 확장 검색을 지원하기 위하여 제공되는 사전이다. 이 사전에는 한글 낱말에 대한 유의어뿐만 아니라 한글 낱말에 대한 영어 유의어도 등록되어 있으며,

※ 영어에 대한 유의어도 포함됨

예) 유의어 = (유의어+synonym+비슷한말+유사어+동의어)

맞춤법 교정 사전

사용자가 자주 틀리는 낱말에 대한 교정 기능을 하는 교정 낱말도 등록되어 있다

※ 사용자가 자주 틀리거나 순화될 낱말도 포함됨

예) 벚꽃 = (벚꽃+벗꽃+사꾸라+사쿠라)

색인어 사전

색인 과정을 통하여 결정된 색인어들은 색인어 사전에 저장되게 되는데, 이 사전은 검색 속도와 크기에 있어서 매우 효율적으로 구성되어 있다.

색인어 정보 사전

색인어에 대한 가중치, 파일 ID 등이 존재하며, 검색 시에 제공되는 정보를 저장한다. 색인 및 검색에 효율적으로 구성되어 있다. 동적으로 색인 및 검색을 행할 수 있도록 구성되어 있다.

문서 정보 사전

색인된 문서에 대한 논리적인 경로명과 파일명을 저장한다

※ 경로명에 128Bytes, 파일명에 40Bytes가 지정됨

[표 3] 심마니 지식사전(검색용)

2.4 심마니 색인기

심마니는 자연어로 이루어진 문서에서 자동으로 색인어를 결정(자동색인, Automatic Indexing)한다. 전체적으로 색인 과정은 기본색인과 누락색인으로 구분된다.

2.4.1 색인기의 구성 및 수행절차

'심마니'의 색인기는 위에서 정의한 지식사전인 불용어 사전, 끝말 사전, 기본 사용자정의 사전, 그리고, 자동문서분류 사전을 이용한다. 이 사전들을 이용하여 색인어 사전, 색인어 정보 사전, 문서정보 사전을 출력물로 생성한다.

[그림 2] 심마니 색인기 수행절차

2.4.2 색인 방법 및 특징

'심마니' 색인기는 조합형 한글코드로 이루어진 텍스트 문서를 입력으로 받는다. 이 문서는 낱말분리기(Lexical Analyzer)를 통하여 각기 하나의 낱말로 분리된다. 분리된 낱말들은 기본형으로 바뀌게 된다(Stemming). 이때 영어도 기본형으로 바뀌게 된다(이용되는 지식은 프로그램 내부에 등록되어 있다)[Frakes 92]. 기본형으로 바뀐 인접한 낱말들은 복합명사 결합규칙 등에 따라 다음의 기법들로 색인어로 판단된다.

  1. 문맥정보를 이용한 색인어 결정 기법
  2. 새로이 발생되는 신조어에 대한 색인어 결정 기법
  3. 한글, 영어, 한자, 숫자 등이 결합된 낱말에 대한 색인어 결정 기법
  4. 복합명사의 표현이 자유로운 한국어의 특징을 이용한 분리된 복합명사에 대한 색인어 결정 기법
  5. 기본 색인어 추출과 사용자 중심의 색인을 위한 기본 사용자정의 사전을 이용한 색인어 결정 기법
  6. 한자 낱말에 대한 한글(독음) 색인어 결정 기법

[표 4] 색인어 결정 기법

위에 정의된 색인어 생성 기법을 통하여 색인어들이 생성되면 이 색인어들을 이용하여 문서의 종류를 자동으로 판별하여 문서의 분류를 결정하는 자동문서분류를 행한다. 이 작업을 통하여 문서에 대한 18가지의 분류정보가 지정된다. 이 기능은 문서의 내용을 읽지 않고 간단히 어떤 분류의 문서인지를 알 수 있도록 해준다[Salton & McGill]. 이 작업을 행하기 위하여 자동문서분류 사전이 이용된다.

하나의 파일에 대한 색인이 완전히 이루어지면 색인어와 정보(문서 ID, 가중치, 문서분류 정보)를 색인어 사전, 색인어 정보 사전, 문서정보 사전에 저장하게 된다.

2.5 심마니 검색기

'심마니'는 자연어 질의어를 지원하며 내부적으로 불리언 표현법(Boolean Expression)을 이용한다. 따라서 사용자가 자연어로 질의어를 입력하면 내부적인 처리를 위하여 불리언 표현법으로 질의어를 바꾼다. 물론 불리언 표현법 자체도 질의어로 이용이 가능하다. 이 기능을 위하여 자연어 질의어 분석 사전이 이용된다. 다음은 '심마니'가 지원하는 불리언 연산자이다.

종류

연산자

예

논리곱

그리고, 와, 과, 및,

AND, ' '(스페이스), '&'

한글과 컴퓨터

논리합

또는, 혹은, OR, ','(쉼표), '+'

한글 또는 컴퓨터

배타적 논리합

'^'

한글 ^ 컴퓨터

배타적 논리곱

'!&', '&!'

한글 !& 컴퓨터

유의어

'#'

유의어#

부분 문자열 검색

'*'

한글*

결합자

'(', ')'

(한글 + 컴퓨터) & 사람

공백을 포함한 검색

'"'

"건전한 생활" & "학교 생활"

[표 5] '심마니'의 불리언 연산자

자연어 질의어가 불리언 표현법으로 변환되는 예는 다음과 같다.

2.5.1 검색기의 구성 및 수행절차

'심마니'의 검색기는 색인기의 결과인 색인어 사전, 색인어 정보 사전, 문서정보 사전과 질의어 분석 사전, 유의어 사전, 맞춤법 교정 사전을 이용한다.

[그림 3] 심마니 검색기 수행절차

'심마니'는 자동색인 과정에서 각 색인어에 대한 가중치를 가지므로 이 값을 기준으로 검색에 대한 결과를 제공한다. 따라서 검색의 결과로 상위에 나온 것들이 높은 가중치를 가진 것들이다. 가중치는 색인어들의 발생빈도, 연산규칙, 질의어 분석 등을 기반으로 결정된다.

유사한 의미를 가지는 낱말에 대한 확장 검색을 통해 보다 융통성 있는 검색을 지원한다. 여기에는 한글 낱말에 대한 유의어뿐만 아니라 한글 낱말에 대한 영어 낱말의 확장도 지원하므로 한글 낱말을 이용한 영어 문서에 대한 검색도 가능하다. 또한 사용자가 자주 틀리는 질의어에 대하여 표준어까지 확장하여 검색한다. 이 기능은 한국어 맞춤법에 대한 이해가 부족한 것이 우리 나라의 현실임을 감안할 때에 매우 효과적으로 검색을 하도록 도와준다.

발음이 비슷한 낱말을 검색할 때 모호한 경우를 위하여 자동으로 발음이 유사한 낱말들을 확장하여 검색한다. 이 기능은 외래어에 대한 검색 시에 매우 효과적으로 이용되며 맞춤법 교정 확장과 같이 이용되어 더욱 효과적인 검색이 가능하다. 이 기능은 동적으로 처리되므로 일종의 발음 유사성에 의한 근사탐색법이다. 단, 길이가 3음절 이상인 한글 낱말에 대해서만 처리한다. 그 이유는 길이가 작은 낱말에 대한 확장은 확장 가능성이 매우 커짐으로 인하여 잘못된 확장을 야기시킬 수 있기 때문이다. 이 외에도 영어 낱말에 대한 발음 유사성에 의한 근사탐색과 오류교정을 통한 근사탐색을 지원하며, 한자어에 대한 독음확장 검색도 지원한다.

복합명사의 표현이 자유롭다는 한국어의 특징을 반영하여 입력된 검색어가 복합명사이면 이 낱말을 분리하여 검색이 가능하도록 확장해 주고 있다.

종류

예

유의어 확장

유의어 = ( 유의어 + synonym + 비슷한말 + 유사어 + 동의어 )

맞춤법 교정 확장

벚꽃 = ( 벚꽃 + 벚꽃 + 사꾸라 + 사쿠라 )

발음 유사성 확장(한글)

리눅스 = ( 리눅스 + 리넉스 + 리룩스 + 리누스 + 리눅수 )

발음 유사성 확장(영어)

comparision = ( comparision + comparison )

발음 유사성 확장(한자)

學校 = ( 學敎 + 학교 )

복합명사 확장

정보검색 = ( 정보검색 + ( 정보 & 검색 ) )

[표 6] '심마니'의 질의어 확장

사용자의 불필요한 검색을 줄이는 방법으로 빠른 보기를 제공한다. 이 방법은 타 정보검색 시스템에서 단순히 문서의 앞부분을 보여주는 것과는 달리 동적으로 문서를 분석하여 검색 시에 이용된 색인어가 존재하는 문장을 보여줌으로써 간결하고 빠른 내용 보기를 제공한다[Smith 90].

또한, 색인시 자동으로 분류된 정보를 이용하여 '분야별 검색'이 가능하게 한다. 이는 사용자가 불필요한 검색결과를 여과할 수 있는 기능이다.

2.5.2 심마니 분류서비스

'심마니'는 '주제어 검색' 뿐만 아니라 웹문서(홈페이지 중심)를 대분류와 소분류로 나누어 서비스를 하고 있다(분류서비스). 1996년 10월 18일 현재 16개의 대분류와 586개의 소분류로 나뉘어 있고 4,294개의 URL들이 등록되어 있다. 분류서비스에 등록된 문서들은 분류자가 직접 각각의 소분류로 목록을 나누고, 그 문서에 대한 요약을 만들었다. 이들 목록은 심봇에 의해 가져온 문서를 기본으로 하였으며, 사용자의 등록에 의해서도 구성되고 있다. 이 분류서비스에서는 다음과 같은 형태의 검색을 지원하고 있다. 첫째, 요약문 내에서의 전문검색, 둘째, 분류된 목록에서의 검색, 셋째, 검색된 분류내에서의 검색, 마지막으로 주제어 검색 서비스와 동일한 형태의 검색 질의어를 지원하고 있다.

2.4 심봇 - 심마니 로봇

2.4.1 심봇의 역할

인터넷은 전세계적인 네트워크 망이다. 그러므로 여기에 물린 컴퓨터의 대수만해도 엄청난 수이다. 이 컴퓨터 각각이 다시 여러 개의 문서를 가지고 있다고 생각하면 문서의 양을 계산하기란 이미 한계를 느끼게 된다. 심마니가 색인하기 위한 대상체로 제공되는 인터넷 HTML문서들은 현재 국내만으로 한정이 되어 있지만 국내의 검색 사이트들에 존재하는 웹 문서들만 하더라도 색인된 양이 현재 23만 개이상의 문서이며 계속적으로 증가하는 추세이다. 인터넷 정보검색 시스템에서 웹 문서는 이와 같이 유동적으로 증가하며 수정되고 또 없어지기도 한다. 어떤 경우는 웹 사이트가 통채로 없어지기도 한다.

결론적으로 심봇을 포함하여 인터넷상의 로봇이라고 불리는 것들은 인터넷에 물려있는 모든 문서들에 대한 감시자 역할을 수행하여 색인기와 같이 문서가 처리대상이 되는 여러 시스템의 입력으로 제공하는 역할을 수행하는 것을 일컫는다. 이러한 로봇들 또한 우리가 인터넷을 항해하는 동안 바로 옆을 지나가는 같은 네트워크를 이동하는 것이므로 이것들이 많아질수록 인터넷의 속도를 저하시키는 주요 원인이 되기도 하므로 악영향도 잊어서는 안될 것이다. 세계의 로봇제작자들이 서로 협의하여 이러한 악영향의 문제를 해결하고자 '로봇배제'(http://info.webcrawler.com/mak/projects/robots/norobots.html)라는 규칙을 만들고 WebClawer의 Martijn Koster는 자신의 경험을 통해서 얻은 로봇제작에 있어서 지켜야할 것들(http://info.webcrawler.com/mak/projects/robots/guidelines.html)에 관한 내용을 담은 페이지를 만들어 놓기도 하였다.

심봇은 이러한 약속의 규칙인 '로봇배제'를 따르며 심마니 색인기의 수행을 위해 정의된 형식의 모양으로 문서들을 저장하고 있다.

2.4.2 심봇 구성도

심봇은 크게 심봇 메인, 심봇 캐쉬 서버, 호스트 관리자, 커운트 서버의 4가지의 구성으로 구성되어 있으며 서로의 연관성은 [그림 4]와 같다.

[그림 4] 심봇의 구성

○ 심봇 메인

심봇 메인은 심봇의 전체 알고리즘이 들어 있는 프로그램으로 다음과 같은 일들을 수행한다.

  1. 사용자 선정 URL우선 처리
  2. 웹 문서 분석 (Frame구조체, Image Map구조체)
  3. 웹 문서 수정 상황 검사
  4. Host Map의 해당 호스트 영역에 문서저장

여기서 Host Map은 심마니에서 정의하여 사용하고 있는 문서 저장 공간을 뜻하는 것으로 임의의 URL을 호스트 이름을 이용하여 지정할 수 있도록 만들어진 디렉토리 구조체이다. Host Map(URL)이 하나의 문서를 지칭하도록 구성되어져 있다. 웹 문서 분석은 HTML의 Tag처리를 담당하는 부분으로 anchor와 Meta, 그리고 Frame Tag에서 나올 수 있는 URL을 만들어내게 된다. 심봇은 계속 자신이 찾았던 호스트의 위치를 기억하고 다음 번에 접속할 때 다시 시작하려고 준비하므로 사용자가 등록을 원하는 경우의 URL을 처리하기 위한 exception이 있어야 한다. 이 처리 또한 중요한 로봇의 요소이다.

 

○ 심봇 Cache Server

심봇이 인터넷의 효율을 떨어뜨리지 않게 하기위해 만들어진 것으로 심마니가 접속하는 모든 URL의 접속 정보가 로봇 수행 중의 동작 단위마다 저장되어져 직접 인터넷을 타지않고 그 URL에 관한 정보를 받을 수 있도록 만든 일종의 간단한 proxy로서 심봇의 효율을 높이기 위해 만들어졌다. 심봇이 Depth-first로 하나의 Host에 대하여 모든 웹 문서를 가져오므로 검색하는 공간이 협소하므로 이 Cache의 효율은 매우 높은 편이다.

○ Host Manager

인터넷에서 사용하는 호스트 이름은 실명과 가명 그리고 다양한 지정에 따라 같은 호스트를 가리키는 여러 가지로 나타날 수 있다. 초기의 심봇은 이 이름들을 모두 다른 것으로 보고 저장을 하였으나 이 호스트 이름을 관리해 주는 호스트 관리자가 생김으로 해결이 가능하게 되었다. 또한 호스트의 삭제, 주소변경, 생성에 따른 Host Map의 불일치를 더불어 해결할 수 있게 되었다.

○ Count Server

웹 문서들 중 가장 인기 있는 곳은 어디일까? 심마니는 이를 집계하기 위해 사용자가 심마니의 결과 중 임의의 곳을 선택할 시에 그 정보를 이 Count Server에서 집계를 할 수 있도록 되어 있다. 이 Count Server가 하는 역할은 이와 같은 통계적인 수치를 만들어내기 위한 일을 하는 것으로, 현재 아래와 같은 3가지 통계 처리를 하고 있다.

  1. 주제어 검색 결과 선택 Counting
  2. 분류서비스 검색 결과 선택 Counting
  3. 임의의 웹 문서 접근 링크 개수 Counting

이중 3번의 경우 인기 사이트를 조사하는 통계에 신빙성 있는 자료로 아주 유용하게 쓰일 수 있는 것으로 앞으로 이를 이용한 다양한 서비스가 이루어질 전망이다.

2.3.3 심봇의 수행방법

로봇이 인터넷 호스트들을 대상으로 웹 문서를 수집할 때, 크게 두 가지 방법으로 설명될 수 있다. 로봇이 시작하는 주소를 발화점이 되는 URL에서 다음 가능 URL을 선택하는 방법에서 이를 [그림 5]와 같은 Tree구조로 볼 수 있으며, 이를 탐색하는 방법으로 전산학에서 얘기하는 다음의 두 가지로 나뉜다.[Horowitz & Sahni 87]

  1. 너비우선 탐색 : root에서 형제 노드를 먼저 거치고 그 형제의 자식노드를 차례로 거치는 방법 (a->b->c->d->e->f->g->h->i 순)
  2. 깊이우선 탐색 : root에서 자식 노드를 통해서 수직으로 끝까지 먼저 거치고 형제 노드를 거치는 방법 (a->b->d->e->f->c->g->h->i 순)

[그림 5] URL로 본 Tree구조

심봇은 이중 하나의 호스트를 모두 먼저 검색하고 다음 호스트를 선정하는 깊이 우선 탐색 방법을 이용한다. 그러므로 심봇의 수행은 먼저 시작 호스트를 선택하면 그 호스트에 존재하는 웹 문서를 먼저 모두 훑은 후에 그 호스트에서 알려진 임의의 다음 호스트를 찾아나가는 방식으로 동작한다.

[그림 6]은 이 심봇의 전체 알고리즘을 설명하고 있다. 심봇의 특징은 http cache를 이용한 Network traffic의 축소에 의한 빠른 수행, 호스트 변경 사항의 자동 인지, 그리고 유용한 통계자료의 획득 등으로 요약할 수 있다.

 

심봇이 Host Map에 자료를 모으고 수정하는 작업은 다음의 규칙에 따라 이루어지고 있다.

  1. 주기
    - 한달에 2주간만 운영, 2주간은 휴식기
    - 문서 갱신은 http protocol중 Last-Modified 섹션으로 알려지는 날짜를 이용하고 있으며, 만약 이 섹션을 참조할 수 없다면 30일을 주기로 문서를 수정하고 있다.
  2. 문서 모음량
    - 1일 3,500여 개 웹 문서 모음
    - 현재 238,208개의 문서가 Host Map에 있음

[그림 6] 심봇의 수행절차

3. 결론

이상에서 알아본 (주)한글과컴퓨터에서 개발하고 인터넷에서 서비스되고 있는 심마니 시스템은 현재 한글과컴퓨터에서 서비스되어지는 '한컴네트'(http://www.hnc.net)의 서비스 중 하나로 인터넷에서 무료로 사용 중이다. 이 시스템이 등장으로 국내 인터넷 사용자들의 한글 문서와 관련한 정보 요구도를 어느 정도 포용한 상태이지만 외국 우수 검색시스템에 견주기 위해 앞으로 많은 성능향상이 필요한 상황이다. 사용자들의 요구를 계속 수용하면서 만들어질 심마니의 모습은 현재 분류서비스의 영문 Site확장, 유즈넷의 검색 및 화상, 음향 등의 멀티미디어 검색 기능 등으로 계속 새로워질 계획이다.

[부록]

1. 현재 심마니의 상태(1996년 10월 18일 현재)

서비스 URL : http://simmany.hnc.net
등록 문서 : 238,208개
색인어 개수 : 1,308,016개
색인어 사전 : 14,981,544Bytes
색인어 정보 사전: 290,656,216Bytes
문서 정보 사전 : 18,951,036Bytes
합계 : 324,588,796Bytes

 

2. 개발 환경

Compiler : GCC, Language : C, Http Demon : Apache

3. 심마니 접속횟수 변화도

[그림 7] 심마니 접속횟수 변화도

참고문헌(References)

[김두홍 & 서혜란 90]
김두홍 & 서혜란, "색인 및 초록 작성법", 구미무역(주) 출판부, 1990
[김영택 94]
김영택, "자연 언어 처리", 敎學社, 1994
[남영준 96]
남영준, "정보검색을 위한 전자사전 구축 기술", 한국어 정보검색 기술 세미나 발표 논문집, 1996
[Frakes 92]
Frakes, Baeza-Yates, "Information Retrival", PRENTICE HALL, 1992
[Horowitz & Sahni 87]
Ellis Horowitz & Sartaj Sahni, "Fundamentals of Data Structures in Pascal", Computer Science Press, 1987
[Rochkind 85]
Rochkind, "Advanced UNIX Programming", PRENTICE HALL, 1985
[Salton 89]
Gerard Salton, "Automatic Text Processing", Addison Wesley, 1989
[Salton & McGill]
Gerard Salton & Michael J. McGill, "Introduction to Modern Information Retrieval"
[Smith 90]
Peter D. Smith, "An Introduction to Text Processing", The MIT Press, 1990
[Stevens 90]
Stevens, "UNIX Network programming", PRENTICE HALL, 1990
[Tharp 88]
Alan L. Tharp, "File Organization and Processing", John Wiley & Sons, 1988

참고URL(Reference URLs)

URL: http://info.webcrawler.com/mak/projects/robots/robots.html
URL: http//simmany.hnc.net
URL: http://www.w3.org/pub/WWW/MarkUp/
URL: http://www.w3.org/pub/WWW/Protocols/