5. 1 DBM ForAll에 필요한 저장 프로시저 구현

DBM ForAll은 웹 로봇과 형태소 분석기, 역 파일 생성기 등에서 수집 결과나 분석 결과 등을 저장하는 작업을 수행하는 컴포넌트입니다. 검색 서비스에서 검색 결과를 얻어오는 부분은 DBM ForSearch 컴포넌트가 담당하기로 하였습니다.

여기에서는 DBM ForAll 컴포넌트를 설계하고 이를 구현할 것입니다. 그리고 구현에 필요한 저장 프로시저가 있으면 같이 구현합시다. 물론 개발 과정에서 필요할 때마다 테스트 응용도 구현합시다.

DBM ForAll 컴포넌트 개발에 앞서 아키텍쳐링 단계에서 작업한 결과물인 시퀀스 다이어그램을 토대로 DBM ForAll에서 사용하는 저장 프로시저를 구현합시다.

수집 대상이 존재하는지 확인하는 저장 프로시저는 ExistedCandidate로 정합시다. 입력 인자로 사이트 주소를 받고 OUTPUT 형태의 존재 여부가 필요합니다. 저장 프로시저 내부에서는 CandidateTable에 사이트가 있는지 확인하여 결과를 설정하면 되겠죠.

수집한 사이트인지 확인하는 저장 프로시저는 ExistedPostedUrl이라고 정합시다. 입력 인자로 사이트 주소를 받고 OUT 형태의 존재 여부가 필요합니다. 여기에서도 전달받은 사이트 주소가 PostedUrlTable에 있는지 확인하여 결과를 설정합니다.

먼저 ExistedCandidate 저장 프로시저를 구현합시다.

저장 프로시저는 Microsoft Visual Studio.NET의 서버 탐색기를 이용하여 추가할 수 있습니다. SQL Server Management Studio에서 보다 강력하게 사용할 수 있지만 이 책에서는 Microsoft Visual Studio.NET의 서버 탐색기를 이용하는 방법을 소개할게요.

서버 탐색기에서 저장 프로시저 항목을 선택하여 컨텍스트 메뉴(오른쪽 마우스 버튼을 클릭했을 때 나오는 메뉴)에서 새 저장 프로시저 추가를 선택하세요.

새 저장 프로시저 추가 화면
[그림 5.1] 새 저장 프로시저 추가 화면

추가하였을 때 CREATE PROCEDURE 구문은 변경하지 마시고 프로시저 명부터 작성합니다.

저장 프로시저의 구조는 다음과 같습니다.

ALTER PROCEDURE dbo.저장 프로시저 이름
    (
    인자 리스트
    )
AS
   수행 구문
RETURN

저장 프로시저 생성할 때 CREATE PROCEDURE 부분은 저장하면 ALTER PROCEDURE로 바뀝니다.