프로그래밍 기술/웹 검색 엔진 만들기

3. 2 시퀀스 다이어그램

언제나휴일 2017. 12. 5. 16:05
반응형

3. 2 시퀀스 다이어그램



 

 이번에는 EH WSE 솔루션에서 요구하는 기능이 어떠한 컴포넌트와 관계가 있고 어떠한 흐름으로 수행하는지를 파악합시다.

 

 이 과정을 통해 컴포넌트에서 외부 컴포넌트에 제공할 인터페이스를 약속하며 DB 설계를 위한 데이터를 정의합니다. 구현할 프로그램의 종류에 따라 어떠한 다이어그램을 작성할 것인지 선택할 수 있는데 여기에서는 시퀀스 다이어그램을 사용할게요. 여러분께서는 시퀀스 다이어그램과 비슷한 작업에 사용하는 상태 다이어그램, 협력 다이어그램, 액티비티 다이어그램도 있으니 관련 레퍼런스를 살펴보시기 바랍니다.

 

 여기에서는 웹 수집에 관한 시퀀스 다이어그램부터 작성할 것입니다. 주의할 점은 앞쪽의 작업은 언제나 완벽하다는 생각에 빠지지 말아야 한다는 것입니다. 그리고 이번 작업을 완벽하게 해야 한다는 생각에 빠질 필요도 없다는 것입니다. 언제나 각 단계에서 최선을 다하려고 노력하세요. 그럼에도 불구하고 이후 단계에서 부족하거나 잘못 작성한 부분이 있으면 다시 검토하고 수정하세요.

 

 단계마다 어느 수준으로 작업해야 하는지를 결정하는 것은 많은 경험을 통해 쌓아야 할 부분입니다. 앞으로 보다 공학적으로 결정하기 위한 수 많은 연구와 경험을 통해 보다 나은 개발 방법이 나올 것입니다. 여러분께서는 다양한 개발 방법론을 학습하고 실제 프로젝트에 적용하는 노력 속에서 상황에 맞는 여러분의 최적화 개발 공정과 방법을 만들어 나가세요.

 

 

3.2.1 AddSeedSite 시퀀스 다이어그램

 

 AddSeedSite 유즈케이스는 관리자가 사용하는 작업입니다. 관리자는 WSE Manager 응용 프로그램으로 웹 로봇의 수집할 시드 사이트를 추가할 수 있습니다. 관리자는 수집할 시드 사이트 주소를 입력하여 추가 버튼을 누르면 WSE Manager 응용은 DBM ForAll 라이브러리를 이용하여 DB에 추가할 것을 요청합니다. DBM ForAll 라이브러리는 DBMS에 미리 작성한 저장 프로시저를 이용하여 시드 사이트를 추가합니다. 만약 이미 수집 사이트 리스트에 존재하면 추가 실패를 알려줍니다.

 

 특히 DBMS에 미리 작성한 AddCandidate 저장 프로시저는 웹 로봇에 의해 사용할 수 있는 기능입니다. 웹 로봇은 시드 사이트부터 웹 페이지를 수집하는데 수집한 페이지의 내용으로 하이퍼 링크가 있으면 이 또한 수집 사이트에 추가합니다. 이 때 AddCandidate를 사용합니다. 여기에서는 수집한 페이지가 시드 사이트에서 몇 단계를 거쳐서 수집한 것인지를 표시할 것이며 이를 위해 AddCandidate 저장 프로시저에는 입력 인자로 사이트 주소와 시드 사이트에서 상대적 깊이를 받습니다. 그리고 결과를 출력 인자로 설정합니다.

 

[그림 3.5] AddSeedSite 시퀀스 다이어그램

[그림 3.5] AddSeedSite 시퀀스 다이어그램

  

3.2.2 SetInterval 시퀀스 다이어그램

 

 SetInterval 유즈케이스는 관리자가 사용하는 기능입니다. 관리자는 이 기능을 통해 웹 로봇의 웹 페이지 수집 주기를 설정할 수 있습니다. 관리자가 WSE Manager 응용으로 수집 주기를 요청하면 WSE Manager는 웹 로봇이 수집을 수행 중인지 확인합니다. 그리고 수행 중이면 먼저 수행을 멈추고 수집 주기를 설정합니다. 또한 이전 수집을 수행 중이었다면 다시 수집 수행을 재개합니다.

[그림 3.6] SetInterval 시퀀스 다이어그램

[그림 3.6] SetInterval 시퀀스 다이어그램

  

 

3.2.3 Start 시퀀스 다이어그램

 

 Manager WSEManager 응용의 웹 수집 시작 버튼을 클릭하면 웹 로봇에게 이를 전달합니다. 웹 로봇은 웹 수집 타이머를 활성화합니다. 참고로 웹 수집 타이머 이벤트가 발생하면 웹 페이지를 수집하는 WebCollect 시퀀스를 수행합니다.

[그림 3.7] Start 시퀀스 다이어그램

[그림 3.7] Start 시퀀스 다이어그램

 

3.2.4 Stop 시퀀스 다이어그램

 

 Manager WSEManager응용으로 WebRobot의 웹 수집 타이머 이벤트를 멈춥니다.

[그림 3.8] Stop 시퀀스 다이어그램

[그림 3.8] Stop 시퀀스 다이어그램

 

3.2.5 WebCollect 시퀀스 다이어그램

 

 Manager WSEManager 응용을 통해 웹 페이지 수집 타이머를 활성화시킵니다. 이번에는 웹 페이지 수집 타이머 이벤트가 발생하면 수행하는 WebCollect 시퀀스를 정의합시다.

 

 WebCollect시퀀스는 WebRobot의 웹 페이지 수집 타이머 이벤트가 발생하면서 가동합니다. WebRobot DBM ForAll을 통해 수집해야 할 예약 주소 중에 맨 앞의 주소를 얻어와서 웹 페이지 수집을 요청합니다. DBM ForAll GetFrontCandidate 저장 프로시저로 수집할 주소 정보를 얻어옵니다.

 

 WebRobot에서는 얻어온 주소의 웹 사이트 수집을 요청합니다. 웹 페이지 수집은 비동기적으로 진행하고 수집이 끝나면 StorePostedUrl 시퀀스를 통해 수집한 정보를 저장합니다.

 

[그림 3.9] WebCollect 시퀀스 다이어그램

[그림 3.9] WebCollect 시퀀스 다이어그램 

 

 

3.2.6 StorePostedUrl 시퀀스 다이어그램

 

 WebCollect 시퀀스에서 수집 요청한 웹 페이지를 수집 완료하면 수집한 웹 페이지의 내용을 DBMS에 저장합니다. 수집 요청한 웹 페이지가 프레임 구조로 되어 있으면 여러 페이지를 수집합니다. 따라서 원래 요청한 Url(OriginUrl)과 수집한 Url(PostedUrl) 정보와 페이지의 내용과 Seed 사이트에서의 깊이 및 수집한 시각, 페이지 제목을 DBM ForAll에게 저장을 요청하면 DBM ForAll은 저장 프로시저를 통해 DBMS에 저장합니다.

 

 그리고 수집한 웹 페이지에 다른 웹 페이지 주소로의 링크는 수집해야 할 예약 주소입니다. 따라서 WebRobot DBM ForAll을 통해 수집해야 할 예약 주소를 추가합니다. 마찬가지로 DBM ForAll은 저장 프로시저를 이용하여 DBMS에 추가합니다.

[그림 3.10] StorePostedUrl 시퀀스 다이어그램

[그림 3.10] StorePostedUrl 시퀀스 다이어그램

 

 

 

3.2.7 NeedGetUrls 시퀀스 다이어그램

 

 Manager WSEManager 응용으로 수집 후보 사이트를 조회할 수 있습니다. Manager 요청을 받으면 WSEManager 응용은 DBM ForAll에게 DB에 저장한 수집해야 할 후보 사이트 목록을 요청합니다. 그리고 이를 Manager에게 알려줍니다.

 

[그림 3.11] NeedGetUrls 시퀀스 다이어그램

[그림 3.11] NeedGetUrls 시퀀스 다이어그램

 

3.2.8 GetMorphemes 시퀀스 다이어그램

 

 Manager WSEManager에게 수집한 웹 페이지 내에 있는 형태소 목록을 조회할 수 있습니다. WSEManager DBM ForAll을 통해 DBMS에 저장한 형태소 목록을 요청합니다.

 

[그림 3.12] GetMorphemes 시퀀스 다이어그램

[그림 3.12] GetMorphemes 시퀀스 다이어그램

 

 

 

3.2.9 MorphemeParse 시퀀스 다이어그램

 

 WebRobot의 웹 페이지 수집 완료 이벤트가 발생하면 StorePostedUrl 시퀀스를 수행합니다. 그리고 MorphemeParse 시퀀스도 수행합니다.

 

 웹 로봇은 MorphemeParser 라이브러를 통해 수집한 웹 페이지의 내용을 인자로 포함하고 있는 형태소 목록을 알아냅니다. 참고로 반환하는 형태소 목록의 각 형태소에는 형태소의 내용과 참조 개수를 포함하고 있습니다.

 

[그림 3.13] Morpheme Parser 시퀀스 다이어그램

[그림 3.13] Morpheme Parser 시퀀스 다이어그램

 

  

 

3.2.10 MakeInvertedFile 시퀀스 다이어그램

 

 수집한 웹 페이지의 내용을 분석기에 의해 분석하면 분석 결과와 페이지의 주소를 입력 인자로 색인기에게 역 파일 생성을 요청합니다. 이 작업을 수행하는 이유는 수 많은 웹 페이지에서 우리가 원하는 결과를 검색하려면 너무 많은 문자열 비교가 필요하여 검색 비용이 많이 들기 때문입니다.

 

 역 파일 생성기(색인기)는 웹 페이지에 포함한 모든 형태소 개수를 DBM ForAll을 이용하여 DBMS에 저장합니다. 그리고 분석한 모든 형태소의 정보를 DBM ForAll을 통해 저장하게 합니다.

 

 이 정보는 검색 서비스에서 질의 내용에 있는 형태소 별로 검색하고 순위화하여 빠른 검색을 가능하게 할 것입니다.

 

[그림 3.14] MakeInvertedFile 시퀀스 다이어그램

[그림 3.14] MakeInvertedFile 시퀀스 다이어그램

  

3.2.11 Search 시퀀스 다이어그램

 

 검색 시퀀스는 사용자가 EH 응용을 통해 사용하거나 관리자가 WSEManager 응용을 사용할 수 있는 기능의 시퀀스입니다. 여기에서는 사용자가 EH 응용을 통해 사용하는 부분을 소개할게요.

 

 사용자는 EH 응용에게 검색을 질의합니다. EH 응용은 Search 서비스에게 검색을 질의하면 Search 서비스는 랭커에게 다시 검색을 질의합니다. 랭커는 형태소 분석기에게 질의 내용을 분석 요청합니다. 그리고 랭커는 DBM ForSearch를 통해 질의 형태소를 가지고 역 파일 요소를 얻어옵니다.

 

 랭커는 질의에 포함한 형태소 별로 전체 수집 페이지 중에서 형태소를 포함한 페이지 수와 각 페이지 별로 질의 형태소의 참조 수를 얻어와서 순위를 부여합니다. 랭커는 순위화한 결과를 검색 서비스에게 반환하고 이를 다시 EH 응용에 전달하면 EH 응용은 결과를 시각화하여 최종 사용자에게 알려줍니다.

 

[그림 3.15] Search 시퀀스 다이어그램

[그림 3.15] Search 시퀀스 다이어그램

반응형