[카테고리:] <span>웹 검색 엔진 만들기 [C#]</span>

먼저 최종 사용자와 상호 작용에 관한 유즈케이스 다이어그램을 작성합시다. 최종 사용자는 검색할 때만 EH WSE와 상호 작용합니다. 검색 요청하면 내부 시스템에서는 검색 질의를 형태소로 분리하는 작업을 수행합니다(MorphemeParse). 그리고 색인 데이터에서 질의 요소를 포함하는 웹 페이지 정보를 얻어옵니다(GetInvertedFile). 검색 정보를 순위화하고(Ranking) 수집한 페이지의 정보를 보여줍니다(GetPostedUrl).

End User와 상호 작용

[그림 2.4] End User와 상호 작용
End User와 상호 작용하는 Usecase

[표 2.3] End User와 상호 작용하는 Usecase

관리자는 최종 사용자처럼 검색할 수 있습니다. 그리고 이 외에도 Seed 사이트 주소를 추가(AddSeedSite)하거나 수집 주기를 설정(SetInterval), 웹 로봇이 수집하는 것을 가동시키거나(Start) 멈추게 하고(Stop) 수집해야 할 사이트를 확인(NeedGetUrls), 수집한 색인 데이터를 확인(GetMorphemes)합니다.

관리자가 웹 수집을 가동하면 주기적으로 웹 페이지를 수집(WebCollect)합니다. 그리고 수집한 웹 페이지의 내용을 분석(MorphemeParse)하고 색인 데이터를 만드는 작업을 수행합니다(MakeInvertedFile).

Manager와 상호 작용
[그림 2.5] Manager와 상호 작용

참고로 특정 Usecase를 수행하면서 반드시 수행해야 하는 Usecase는 <<include>> 스테레오 관계로 표시하며 선택적으로 수행할 때는 <<extend>> 스테레오 관계로 표시합니다. <<include>> 스테레오는 반드시 수행해야 하는 Usecase로 화살표 방향을 표시하며 <<extend>> 스테레오는 선택적으로 수행하는 Usecase에서 시작하는 방향으로 표시합니다.

[표 2.4]는 Usecase별로 어떠한 역할을 수행하는지와 관련 액터 및 상호 작용 방향을 표로 정리한 것입니다.

이와 같이 작업한 내용을 파악하기 쉽게 문서로 작성해 놓으면 효과적으로 관리할 수 있습니다. 프로젝트의 종류와 목적에 따라 어느 수준으로 회의와 문서화, 개발 방법론 적용이 다를 수 있는데 중요한 것은 모든 작업이 개발에 득이 되는 수준으로 행해야 한다는 것입니다. 그 어떠한 작업도 많이 하면 독이 되고 부족하면 품질 수준 저하 및 전체 개발 비용이 많아질 수 있습니다. 어느 수준으로 적용해야 최소 비용으로 최대 품질의 서비스를 제공할 수 있을지 고민하고 상황에 맞는 개발 방법론을 판단할 수 있는 능력을 키우셔야 합니다.

Usecase 리스트
[표 2.4] Usecase 리스트

웹 검색 엔진 만들기 [C#]