반응형

프로그래밍 기술 604

4. WSE Core 설계 및 구현

4. WSE Core 설계 및 구현 이번에는 EH WSE 솔루션의 여러 컴포넌트에서 공통적으로 사용할 형식들을 제공하는 WSE Core 라이브러리를 설계하고 구현합시다. WebCollect 시퀀스 다이어그램과 NeedGetUrls에서는 수집할 대상 사이트를 얻어오는 부분이 있습니다. 이를 Candidate 형식으로 정의합시다. 웹 로봇은 웹 사이트를 수집하였을 때 이를 DBM ForAll을 통해 DBMS에 저장을 요청합니다. 이를 위해 PostedUrl 형식을 정의합시다. 웹 사이트의 내용이나 검색 질의는 형태소 분석기에 의해 분석하고 이 결과를 사용하여 역 파일을 만드는 작업이나 검색에 사용합니다. 이를 Morpheme 형식으로 정의합시다. 검색 요청 시에 랭커는 검색 결과에 순위를 부여합니다. 이 때..

3.4.2 WSEManager 응용 프로토 타이핑

3.4.2 WSEManager 응용 프로토 타이핑 WSEManager는 관리자가 EH WSE를 구성하고 있는 각 엔진들의 상태를 제어하거나 엔진들에 의해 만들어지는 결과물을 모니터링 할 수 있는 윈도우즈 응용 프로그램입니다. WSEManager에서는 관리자가 Seed 사이트를 추가할 수 있어야 합니다. 그리고 웹 사이트 수집 주기를 설정하고 웹 사이트 수집을 가동하거나 멈출 수 있어야 합니다. 또한 현재까지 수집한 웹 페이지에서 발견한 형태소 목록을 확인할 수 있고 각 형태소를 선택하면 이를 포함하는 웹 페이지 목록을 확인할 수 있게 합시다. 그리고 정상적으로 검색 서비스를 할 수 있는지 확인할 수 있게 합시다. 먼저 WSEManager는 EH 응용처럼 검색할 수 있어야 합니다. 이 부분은 EH 응용 프..

3. 4 프로토 타이핑

3. 4 프로토 타이핑 프로젝트를 수행하다보면 이해 관계자의 요구 사항을 잘못 파악하거나 요구 사항이 바뀔 수 있습니다. 개발 초기에 이를 발견하였다면 큰 비용이 들지 않겠지만 개발 후기에 이를 발견하여 수정하려면 많은 비용이 들 수 있습니다. 이와 같은 부담을 줄이기 위해 이해 관계자의 요구 사항을 제대로 파악했는지 개발 초기에 확인해야 합니다. 그리고 이해 관계자의 요구 사항 중에 바뀔 확률이 높은 부분을 초기 단계에 확인하여 반영하여 전체 개발 비용을 줄일 수 있습니다. 이를 위해 사용자와 상호 작용에 관한 부분을 만들어 확인하는 작업을 프로토 타이핑이라고 합니다. 프로토 타이핑에서는 실제 엔진은 구현하지 않지만 사용자와 상호 작용하는 GUI 부분을 작성하여 이해 관계자의 요구 분석을 제대로 수행했..

3. 3 DB 설계

3. 3 DB 설계 일반적으로 아키텍쳐링 단계에서 DB설계를 진행합니다. 여기에서도 시퀀스 다이어그램을 통해 DBMS에 관리해야 할 것들이 무엇인지를 분석하여 DB 설계합시다. 3.3.1 웹로봇에서 수집해야 할 대상 웹 로봇에서는 관리자에 의해 Seed 사이트를 추가하면 이를 수집해야 할 대상으로 등록합니다. 그리고 웹 로봇은 주기적으로 수집해야 할 대상을 얻어와서 웹 페이지를 수집한 이후에 수집한 웹 페이지에 있는 링크를 다시 수집해야 할 대상으로 등록합니다. 여기에서는 Seed 사이트에서 특정 depth 내에 있는 웹 페이지를 수집할 수 있게 합시다. 이와 같은 정보를 반영하여 CandidateTable을 만들기로 합시다. 테이블의 컬럼에는 사이트 주소와 Seed 사이트에서의 상대적 깊이가 있어야겠죠..

3. 2 시퀀스 다이어그램

3. 2 시퀀스 다이어그램 이번에는 EH WSE 솔루션에서 요구하는 기능이 어떠한 컴포넌트와 관계가 있고 어떠한 흐름으로 수행하는지를 파악합시다. 이 과정을 통해 컴포넌트에서 외부 컴포넌트에 제공할 인터페이스를 약속하며 DB 설계를 위한 데이터를 정의합니다. 구현할 프로그램의 종류에 따라 어떠한 다이어그램을 작성할 것인지 선택할 수 있는데 여기에서는 시퀀스 다이어그램을 사용할게요. 여러분께서는 시퀀스 다이어그램과 비슷한 작업에 사용하는 상태 다이어그램, 협력 다이어그램, 액티비티 다이어그램도 있으니 관련 레퍼런스를 살펴보시기 바랍니다. 여기에서는 웹 수집에 관한 시퀀스 다이어그램부터 작성할 것입니다. 주의할 점은 앞쪽의 작업은 언제나 완벽하다는 생각에 빠지지 말아야 한다는 것입니다. 그리고 이번 작업을 ..

3. 1 컴포넌트 다이어그램

3. 1 컴포넌트 다이어그램 EH WSE 솔루션은 크게 일반 사용자가 검색 서비스를 사용하는 EH 응용 프로그램과 이를 위해 제공하는 WSE 패키지로 나눌게요. 그리고 WSE 패키지는 관리자가 사용하는 WSEManager 응용 프로그램과 다양한 엔진들과 서비스로 이루어진 WSE 엔진과 라이브러리로 구분하겠습니다. 특히 WSE 엔진과 라이브러리는 관리자와 일반 사용자가 검색에 사용하는 부분에서 필요한 부분과 그렇지 않은 부분으로 분리할게요. 여기에서는 검색에 필요한 부분을 WSE For Search라 부르고 나머지 부분을 WSE Robot이라고 부르기로 합시다. EH 응용 프로그램은 윈도우즈 응용 프로그램 형태로 일반 사용자가 검색 질의할 수 있고 원하는 결과 페이지로 이동할 수 있습니다. WSE Mana..

3. 아키텍쳐링

3. 아키텍쳐링 최근에 프로그램 제작에서 유지 보수 비용이 차지하는 비용이 늘어가는 추세입니다. 그리고 이미 전체 제작 비용의 3분의 2 정도가 유지 보수 비용에 들어간다고 합니다. 이는 프로그램 제작 시에 유지 보수 비용을 최소화할 수 있게 개발하는 것이 전체 개발비를 낮출 수 있음을 의미합니다. 프로그램을 제작할 때 유지 보수 비용을 줄이는 방법은 여러가지 방법이 존재하는데 그 중에 하나가 요소들 간의 종속성을 제거하여 관계를 느슨하게 만들어 유연성 높이는 것입니다. 아키텍쳐링 작업과 설계 작업은 구체적인 구현에 앞서 역할과 기능을 정의하고 관계를 느슨하게 만드는 작업 등을 수행합니다. 이 책의 많은 부분은 아키텍쳐링과 설계 작업을 다룰 것입니다. 필요하면 개발 방법론을 다루는 별도의 레퍼런스를 참고..

2. 요구 분석 및 정의

2. 요구 분석 및 정의 요구 분석 및 정의 단계에서는 시스템에서 제공해야 할 비지니스와 이해관계자의 요구 사항을 정확히 이해하는 작업이 필요합니다. 이를 위해 이해관계자의 요구 사항을 수집하고 이해해야 합니다. 그리고 수집한 요구사항을 바탕으로 시스템에서 제공해야 할 기능을 개괄적으로 파악하고 결정해야 합니다. 이 책에서는 어떠한 이해관계자가 있는지에 관한 조사와 이를 통해 요구 사항을 수집하는 부분은 간단히 요구 리스트를 보여주는 것으로 끝낼 것입니다. 대신 요구 리스트를 바탕으로 시스템에서 제공해야 할 기능을 파악하고 결정하기 위해서 Usecase 다이어그램을 작성하고 요구 사항과 Usecase 매핑 테이블을 작성하기로 할게요. 2.1 요구 리스트 번호 액터 이름 설명 1 End User 검색 서비..

1. 7 .NET 리모팅

1. 7 .NET 리모팅 .NET 리모팅 기술은 서버 측에 있는 개체를 클라이언트 측에서 마치 자신에게 있는 개체를 사용하는 것처럼 사용할 수 있게 서비스를 하는 기술입니다. .NET 리모팅 서비스를 위해서는 서비스를 제공하는 서버와 서비스를 제공받는 클라이언트가 필요하며 서버 측에서 클라이언트에 제공하는 개체를 정의한 클래스 라이브러리가 필요합니다. 서버 측에서 클라이언트에 제공하는 개체는 MashalByReference에서 파생한 개체로 원격 개체라고 말합니다. 서버 측에서는 채널을 등록하여 원격 개체를 사용할 수 있게 등록합니다. 클라이언트 측에서는 서버 측 채널에 접근하여 원격 개체를 참조하여 사용하는데 클라이언트 측에서 원격 개체를 참조하여 사용할 수 있는 개체를 Proxy 개체라 부릅니다. 클..

1.6.2 사용자 정의 컨트롤 만들기

1.6.2 사용자 정의 컨트롤 만들기 이번에는 사용자 정의 컨트롤을 만들고 이를 사용하는 Windows Forms 응용 프로그램을 만들어 봅시다. 실습은 도서 관리자 응용을 만드는 것으로 할게요. 도서 관리자 응용은 Windows Forms 응용 프로그램으로 사용자 정의 컨트롤인 BookControlLib와 BookLib 클래스 라이브러리를 참조합니다. 그리고 BookControlLib는 BookLib 클래스 라이브러리를 참조할 것입니다. [그림 1.22] 도서 관리자 컴포넌트 다이어그램 먼저 클래스 라이브러를 생성하여 디폴트로 제공하는 소스 파일명을 Book.cs로 변경하세요. Book 클래스는 도서 제목, ISBN, 저자, 출판사, 설명을 멤버 속성으로 캡슐화하는 아주 작은 클래스입니다. 이에 관한 ..

반응형