반응형

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

5.2.2 DBM ForAll 라이브러리 만들기

5.2.2 DBM ForAll 라이브러리 만들기 이제 예광탄에서 만든 EHDbmForAll 클래스로 DBM ForAll 라이브러리를 만듭시다. 만드는 방법은 클라스 라이브러리 템플릿으로 프로젝트 추가합니다. 그리고 제공하는 cs 파일의 이름을 EHDbmForAll로 변경한 후에 앞에서 작성한 EHDbmForAll 소스를 복사해서 붙여 넣습니다. EHDbmForAll에서는 WSE Core 라이브러리를 사용하므로 참조 추가하는 것을 잊지 마세요. 그리고 프로젝트 속성의 빌드 탭에서 XML 문서 파일 체크 박스를 체크하여 세 줄 주석 작성하는 것도 잊지 마시기 바랍니다. DBM ForAll 라이브러리는 예광탄으로 정상적으로 수행하는 것을 확인한 EHDbmForAll클래스로 만드는 것이라 별다른 추가 작업이 필..

5. 2 DBM ForAll 구현

5. 2 DBM ForAll 구현 이제 아키텍쳐 단계에서 작업한 시퀀스 다이어그램에 약속한 것 중에 DBM ForAll에서 사용할 저장 프로시저는 모두 작성하였습니다. 이제 DBM ForAll을 구현합시다. DBM ForAll은 라이브러리로 만들기로 하였습니다. 라이브러리를 만들 때는 응용 프로그램으로 작성한 후에 정상적으로 동작하는 것을 입증하는 작업을 선행하세요. 그리고 정상적으로 동작하는 것을 확인한 후에 라이브러리로 작성합시다. 빠르게 작성하고자 하는 욕구에 의해 이와 같은 과정을 생략하고 바로 라이브러리를 만들 때가 많습니다. 하지만 라이브러리를 잘못 만들었을 때 이를 사용하는 프로그램의 버그가 라이브러리 때문에 발생한 것인지 발견하는 것은 생각보다 비용이 많은 작업이며 빠르게 발견한다고 하더라..

5.1.19 AddInvertedItem 저장 프로시저

5.1.19 AddInvertedItem 저장 프로시저 이번에는 형태소와 웹 페이지 주소, 참조 카운터를 입력 인자로 받아 동적으로 생성한 형태소 테이블에 웹 페이지 주소와 참조 카운터를 추가하는 저장 프로시저를 구현해 봅시다. 저장 프로시저 이름은 AddInvertedItem으로 결정합시다. 입력 인자로 형태소 이름, 웹 페이지 주소, 참조 카운터를 받습니다. CREATE PROCEDURE dbo.AddInvertedItem ( @Morpheme varchar(50), @Url varchar(50), @Refcnt int ) 먼저 GetMIndex 저장 프로시저를 이용하여 형태소 이름으로 역 파일 테이블에 있는 형태소 항목 번호를 얻어옵니다. 형태소 항목 번호를 얻어오기 위한 변수도 선언합니다. dec..

5.1.18 AddMorphemeInfo 저장 프로시저

5.1.18 AddMorphemeInfo 저장 프로시저 이제 AddMorphemeInfo 저장 프로시저를 만듭시다. 입력 인자로 형태소 이름을 받고 OUTPUT 유형의 존재 여부를 설정할 인자를 받습니다. CREATE PROCEDURE dbo.AddMorphemeInfo ( @Morpheme varchar(200), @Existed int OUTPUT ) 먼저 ExistedMorpheme 저장 프로시저로 존재하는 형태소인지 확인합니다. exec ExistedMorpheme @Morpheme, @Existed OUTPUT 존재하지 않으면 AddMorpheme 저장 프로시저를 이용해 형태소를 추가합니다. 그리고 GetMIndex를 이용해 형태소 번호를 얻어온 후에 CreateInvertedFile로 형태소 ..

5.1.17 CreateInvertedFile 저장 프로시저

5.1.17 CreateInvertedFile 저장 프로시저 역 파일에 매핑하는 형태소 테이블을 동적으로 생성하는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 CreateInvertedFile로 합시다. 입력 인자로 역 파일 테이블의 형태소 항목 번호를 받습니다. CREATE PROCEDURE dbo.CreateInvertedFile ( @MIndex int ) 테이블을 동적으로 생성해야 하므로 쿼리문을 만들기 위한 변수와 테이블 이름을 동적으로 만들기 위한 변수를 선언합니다. declare @query nvarchar(200) declare @TName varchar(50) 테이블 이름은 MTB_를 prefix로 하고 뒤에 형태소 번호로 할 것입니다. 일단 형태소 항목 번호를 문자열로 변환하여 TN..

5.1.16 GetMIndex 저장 프로시저

5.1.16 GetMIndex 저장 프로시저 이번에는 형태소 이름으로 역 파일 테이블인 IndexInvFileTable의 항목 번호를 얻어오는 저장 프로시저를 작성합시다. 저장 프로시저 이름은 GetMIndex로 합시다. 입력 인자로 형태소 이름을 받고 OUTPUT 형태의 항목 번호를 설정할 인자를 선언합니다. CREATE PROCEDURE dbo.GetMIndex ( @Morpheme varchar(50), @MIndex int OUTPUT ) 존재하지 않을 수도 있어서 @MIndex를 -1로 초기 설정합니다. Set @MIndex = -1 select 구문을 이용하여 형태소의 번호를 구합니다. select @MIndex = MIndex from IndexInvFileTable where Morphem..

5.1.14 ExistedMorpheme 저장 프로시저

5.1.14 ExistedMorpheme 저장 프로시저 새로운 형태소를 추가하는 AddMorphemeInfo 저장 프로시저에서는 이미 존재하는 형태소인지 확인이 필요합니다. 그리고 없을 때 형태소를 추가하는 작업과 형태소 이름의 테이블을 만들기 위해 형태소의 일련 번호를 구하는 과정이 필요합니다. 그리고 역 파일에 매핑하는 형태소 테이블을 동적으로 생성하는 부분이 필요합니다. 여기에서는 이들을 저장 프로시저로 만들고 AddMorphemeInfo에서 이들을 사용합시다. 먼저 존재하는 형태소인지 확인하는 저장 프로시저를 만들기로 합시다. 저장 프로시저 이름은 ExistedMorpheme으로 할게요. 입력 인자로 형태소 이름를 받고 OUTPUT 유형의 존재 여부를 확인하는 인자를 선언합니다. CREATE PR..

5.1.13 AddMCPostedUrlInfo 저장 프로시저

5.1.13 AddMCPostedUrlInfo 저장 프로시저 역 파일 생성기에서 역 파일을 만드는 과정은 MakeInvertedFile 시퀀스 다이어그램에 약속하였습니다. 시퀀스를 보면 수집한 웹 페이지에 있는 전체 형태소 개수를 보관하기 위해 DBM ForAll은 AddMCPostedUrlInfo 저장 프로시저를 이용합니다. 그리고 수집한 웹 페이지에서 발견한 형태소마다 별도의 테이블을 생성하는 AddMorphemeInfo 저장 프로시저를 사용합니다. 마지막으로 형태소와 웹 페이지 주소, 웹 페이지에 해당 형태소가 존재하는 참조 개수를 저장하기 위해 AddInvertedItem 저장 프로시저를 사용합니다. 먼저 웹 페이지 주소와 전체 형태소 개수를 저장하는 AddMCPostedUrlInfo 저장 프로시..

5.1.12 AddPostedUrl 저장 프로시저

5.1.12 AddPostedUrl 저장 프로시저 이제 DBM ForAll에서 실제 수집한 정보를 추가할 때 사용하는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 AddPostedUrl로 합니다. 입력 인자는 InsertPostedUrl과 같습니다.CREATE PROCEDURE dbo.AddPostedUrl ( @Url varchar(200), @OriginUrl varchar(200), @Depth int, @PostedTime DateTime, @PostedContent varchar(MAX), @Title varchar(200) ) 먼저 수집 정보가 있는지 ExistedPostedUrl을 이용하여 확인합니다. 존재 여부를 기억하기 위한 변수 선언이 필요합니다.declare @Existed int..

반응형