1. 3 시나리오

먼저 이 책에서 작성할 맞춤형 검색 엔진 만들기 솔루션의 전반적인 시나리오를 소개할게요. 시나리오는 가상으로 만들었으며 별도의 설명은 하지 않겠습니다.

문서 번호

20XX – P – 01
보존 기간 10년
작성 일자 20XX. X. X
작성자 홍길동

EH-WSE

(EH Web Search Engine)

언제나 휴일 컴퓨터

I. 개요

I.1 배경지식

I.2 프로젝트 소개

II. 동작 환경 및 요구 기술

II.1 동작 환경

II.2 요구기술

III. 개발 공정

I. 개요

I.1 배경지식

 웹 검색 엔진이란 원하는 웹 사이트를 검색하기 위한 S/W를 말합니다. 웹 검색 엔진은 대부분 인터넷 상에 게시되어 있는 웹 페이지들을 수집하는 웹 로봇과 웹 페이지를 분석하는 분석기, 분석한 결과로 쉽게 검색할 수 있게 역 파일을 만드는 색인기 및 질의 결과에 랭킹을 부여하는 랭커 등으로 구성할 수 있습니다. 웹 검색 엔진은 각각의 엔진들의 구동 원리와 구현 수준에 따라 다양한 품질 수준을 결정합니다.

 웹 로봇은 일반적으로 여러 개의 Seed 사이트를 일차적으로 수집 대상 페이지로 등록합니다. 그리고 주기적으로 수집 대상 페이지를 수집하고 수집한 웹 페이지 내용에 있는 하이퍼 링크의 웹 사이트도 수집 대상에 추가합니다. 이를 반복하면서 수집하는데 수집한 웹 페이지도 갱신될 개연성이 있으므로 수집한 지 특정 기간이 지난 웹 페이지는 다시 수집 대상에 포함합니다.

 웹 페이지 분석기는 웹 페이지의 내용을 공백이나 콤마 등의 약속한 문자를 기준으로 분할하는 방식에서부터 자연어 연구에서 사용하는 형태소 분석까지 다양한 분석기들이 있습니다.

 색인기는 웹 페이지 분석기를 통해 분석한 요소별로 해당 요소를 포함한 웹 페이지를 기재하여 검색 요청이 오면 검색 질의를 포함하는 웹 페이지를 검색하기 쉽게 색인 데이터를 만드는 것을 말합니다.

 랭커는 질의한 내용으로 검색한 결과들을 다양한 방법에 의해 사용자가 요청하는 질의에 근접한 순위를 부여하는 것을 말합니다. 대표적인 방법으로 문서 내의 검색 요소의 빈도수와 전체 문서에서의 검색 요소를 포함한 문서의 개수를 통해 희귀성을 기반으로 랭킹을 하는 TF-IDF 방식이 있습니다.

I.2 프로젝트 소개

 EH WSE 프로젝트는 기본적인 웹 검색 엔진의 구성 요소들을 갖춘 작은 웹 검색 엔진이어야 합니다.

 웹 검색 엔진은 관리 응용을 통해 Seed 사이트를 추가하거나 수집을 시작하고 멈출 수 있으며 수집 주기를 정할 수 있어야 합니다. 또한, 관리 응용을 통해 수집 후보 사이트들을 확인할 수 있어야 할 것이며 색인 데이터의 요소 리스트 및 수집한 웹 페이지의 내용도 확인이 가능해야 합니다.

 관리 응용을 통해 제어 및 설정하는 검색 엔진은 웹 로봇을 통해 수집하고 분석한 결과 등을 데이터 베이스 관리 시스템을 통해 관리해야 합니다.

 검색에 사용하는 응용은 간단한 윈도우 응용 형태로 제작하여 문장이나 단어로 검색할 수 있고 검색한 결과 리스트를 랭커에 의해 순위를 부여한 순으로 확인할 수 있고 해당 웹 페이지를 방문할 수 있어야 합니다.

 본 프로젝트에서는 웹 로봇의 성능이나 분석기의 품질 및 보안에 관한 품질 수준은 특별히 요구하지 않습니다. 다만, 가급적 엔진들은 분리하고 각 엔진들에서 공통적으로 사용할 형식들은 라이브러리로 만들어 재사용성을 높이고 유지 보수가 쉽게 유연성 있는 결과물을 만들 수 있어야 할 것입니다.

II. 동작 환경 및 요구 기술

II.1 동작환경

O/S : Windows 7

DBMS: MS-SQL 20010

II.2 요구 기술

 본 프로젝트를 수행하기 위해서는 C# 언어에 관한 기본 문법을 인지하고 구사할 수 있어야 합니다. Java 언어에 숙달되어 있다면 큰 비용없이 C# 문법에 관한 레퍼런스를 참고하여 작성하는데 무리가 없습니다.

 본 프로젝트를 수행하기 위해서는 기본적인 SQL 쿼리문을 알고 있으며 ADO.NET을 사용할 수 있거나 학습을 요구합니다.

 본 프로젝트를 수행하기 위해서는 Windows Form에 관한 기본적인 이해 및 사용을 할 수 있거나 학습을 요구합니다.

 본 프로젝트를 수행하기 위해서는 .NET 어셈블리에 관한 이해 및 클래스 라이브러리 개발을 할 수 있거나 학습을 요구합니다.

 본 프로젝트를 수행하기 위해서는 .NET 리모팅에 관한 이해와 서비스 정의 및 서비스를 사용할 수 있거나 학습을 요구합니다.

 

 본 프로젝트를 수행하기 위해서는 CBD개발 방법론에 대한 기본적인 이해 및 UML을 사용할 수 있거나 학습을 요구합니다.

 

III. 개발 공정

 요구 분석 및 정의 – 10%

 아키텍쳐링 – 40%

 설계 – 30%

 구현 – 20%

 배포 – 해당 사항 없음