4. WSE Core 설계 및 구현

이번에는 EH WSE 솔루션의 여러 컴포넌트에서 공통적으로 사용할 형식들을 제공하는 WSE Core 라이브러리를 설계하고 구현합시다.

WebCollect 시퀀스 다이어그램과 NeedGetUrls에서는 수집할 대상 사이트를 얻어오는 부분이 있습니다. 이를 Candidate 형식으로 정의합시다. 웹 로봇은 웹 사이트를 수집하였을 때 이를 DBM ForAll을 통해 DBMS에 저장을 요청합니다. 이를 위해 PostedUrl 형식을 정의합시다.

웹 사이트의 내용이나 검색 질의는 형태소 분석기에 의해 분석하고 이 결과를 사용하여 역 파일을 만드는 작업이나 검색에 사용합니다. 이를 Morpheme 형식으로 정의합시다.

검색 요청 시에 랭커는 검색 결과에 순위를 부여합니다. 이 때 역 파일 생성기에 의해 만들어진 정보를 이용하는데 이를 역 파일 요소라는 의미로 InvertedElem 형식을 정의합시다. 검색 순위가 정해지면 결과를 제공하는데 이 때 웹 페이지 정보와 점수 등을 포함하여 결과 데이터 형식을 RankedUrl 이름으로 제공합시다.


[그림 4.1] WSE Core 클래스 다이어그램

각 클래스의 상세 정보는 별도의 설계 과정을 거치지 않고 구현 과정에서 설명하기로 할게요.

이제 WSE Core 프로젝트 명으로 클래스 라이브러리 유형의 프로젝트를 추가합시다. 그리고 기본으로 제공하는 파일은 제거하세요.

WSE Core 프로젝트 생성
[그림 4.2] WSE Core 프로젝트 생성

라이브러리 형태의 프로젝트는 사용하는 곳에서 어떤 형식을 제공하고 어떤 멤버를 사용할 수 있는지 사용하는 개발자를 위해 편의성을 제공하면 좋습니다.

프로젝트 메뉴에서 [WSE Core 속성]을 선택한 후에 빌드 탭을 선택하여 XML 문서 파일 체크박스를 선택하세요. 이처럼 설정하면 라이브러리에서 노출하는 형식과 노출하는 멤버에 관한 세 줄 주석을 작성하지 않으면 빌드 시에 경고를 나타냅니다. 여러분께서 세 줄 주석을 작성하면 Microsoft Visual Studio.NET 개발 도구는 인텔리센스가 작동하여 작성한 주석의 내용을 보여줍니다. 이는 라이브러리를 사용하는 개발자에게 라이브러리를 쉽게 사용할 수 있게 해 줍니다.

프로젝트 속성 설정
[그림 4.3] 프로젝트 속성 설정