..
This commit is contained in:
@@ -1,134 +0,0 @@
|
||||
# 도서 검색 프로그램 (BokBonCheck)
|
||||
|
||||
## 개요
|
||||
이 프로그램은 여러 도서관 웹사이트에서 도서명을 검색하여 각 사이트별로 검색된 도서 수를 확인할 수 있는 C# WinForms 애플리케이션입니다.
|
||||
|
||||
## 주요 기능
|
||||
- **다중 사이트 검색**: 여러 도서관 사이트에서 동시에 도서 검색
|
||||
- **실시간 결과 표시**: 검색 결과를 테이블 형태로 실시간 표시
|
||||
- **확장 가능한 구조**: 새로운 도서관 사이트를 쉽게 추가 가능
|
||||
- **비동기 처리**: 검색 중에도 UI가 응답 가능
|
||||
- **자동 Chrome 드라이버 관리**: Chrome 버전에 맞는 드라이버 자동 다운로드 및 관리
|
||||
|
||||
## 현재 지원하는 도서관
|
||||
- 남구통합도서관 (https://lib.namgu.gwangju.kr/main/bookSearch)
|
||||
|
||||
## 기술 스택
|
||||
- **.NET Framework 4.8**
|
||||
- **C# WinForms**
|
||||
- **Selenium WebDriver**
|
||||
- **WebDriverManager** (Chrome 드라이버 자동 관리)
|
||||
|
||||
## 설치 및 실행
|
||||
|
||||
### 필수 요구사항
|
||||
1. .NET Framework 4.8 이상
|
||||
2. Google Chrome 브라우저 (최신 버전 권장)
|
||||
3. 인터넷 연결 (Chrome 드라이버 다운로드용)
|
||||
4. Visual Studio 2019 이상 (개발용)
|
||||
|
||||
### 빌드 및 실행
|
||||
1. 프로젝트를 Visual Studio에서 열기
|
||||
2. NuGet 패키지 복원 (자동으로 실행됨)
|
||||
3. 프로젝트 빌드 (Ctrl+Shift+B)
|
||||
4. 실행 (F5)
|
||||
|
||||
### 배포
|
||||
1. Release 모드로 빌드
|
||||
2. `bin/Release` 폴더의 모든 파일을 배포 대상 폴더에 복사
|
||||
3. BokBonCheck.exe 실행
|
||||
|
||||
## 사용법
|
||||
|
||||
### 프로그램 시작
|
||||
1. 프로그램 실행 시 Chrome 드라이버 자동 설정
|
||||
2. Chrome 설치 확인 및 적절한 드라이버 다운로드
|
||||
3. 드라이버 테스트 완료 후 검색 가능
|
||||
|
||||
### 기본 검색
|
||||
1. 검색창에 도서명 입력
|
||||
2. "검색" 버튼 클릭 또는 Enter 키 입력
|
||||
3. 검색 결과 확인
|
||||
|
||||
### 결과 해석
|
||||
- **도서관**: 검색한 도서관 이름
|
||||
- **도서 수**: 해당 도서관에서 검색된 도서의 총 개수
|
||||
- **검색 시간**: 검색이 완료된 시간
|
||||
- **상태**: 검색 성공/실패 여부
|
||||
|
||||
## 프로젝트 구조
|
||||
|
||||
```
|
||||
BokBonCheck/
|
||||
├── Form1.cs # 메인 UI 폼
|
||||
├── BookSearchService.cs # 검색 서비스 관리
|
||||
├── NamguLibrarySearcher.cs # 남구통합도서관 전용 검색기
|
||||
├── ChromeDriverManager.cs # Chrome 드라이버 자동 관리
|
||||
├── ILibrarySearcher.cs # 검색기 인터페이스
|
||||
└── Program.cs # 프로그램 진입점
|
||||
```
|
||||
|
||||
## Chrome 드라이버 자동 관리
|
||||
|
||||
### WebDriverManager 기능
|
||||
- **자동 버전 감지**: 설치된 Chrome 버전 자동 감지
|
||||
- **드라이버 자동 다운로드**: Chrome 버전에 맞는 드라이버 자동 다운로드
|
||||
- **캐시 관리**: 다운로드된 드라이버 캐시 관리
|
||||
- **업데이트 지원**: Chrome 업데이트 시 드라이버 자동 업데이트
|
||||
|
||||
### 동작 과정
|
||||
1. 프로그램 시작 시 Chrome 설치 확인
|
||||
2. Chrome 버전 정보 수집
|
||||
3. WebDriverManager를 통한 적절한 드라이버 다운로드
|
||||
4. 드라이버 테스트 실행
|
||||
5. 검색 기능 활성화
|
||||
|
||||
## 새로운 도서관 추가하기
|
||||
|
||||
새로운 도서관을 추가하려면 `ILibrarySearcher` 인터페이스를 구현하는 클래스를 생성하고 `BookSearchService`에 등록하면 됩니다.
|
||||
|
||||
### 예시:
|
||||
```csharp
|
||||
public class NewLibrarySearcher : ILibrarySearcher
|
||||
{
|
||||
public string SiteName => "새로운도서관";
|
||||
public string SiteUrl => "https://newlibrary.com/search";
|
||||
|
||||
public async Task<BookSearchResult> SearchAsync(string searchTerm)
|
||||
{
|
||||
// 검색 로직 구현
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
그리고 `BookSearchService` 생성자에서:
|
||||
```csharp
|
||||
_searchers.Add(new NewLibrarySearcher());
|
||||
```
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### Chrome 관련 오류
|
||||
- **Chrome 미설치**: Google Chrome을 설치하고 프로그램 재실행
|
||||
- **드라이버 다운로드 실패**: 인터넷 연결 확인 후 프로그램 재실행
|
||||
- **드라이버 테스트 실패**: 방화벽이나 보안 프로그램 설정 확인
|
||||
|
||||
### 검색 실패
|
||||
- 인터넷 연결 상태 확인
|
||||
- 해당 도서관 사이트가 정상 작동하는지 확인
|
||||
- 사이트 구조가 변경되었을 수 있으므로 검색 로직 업데이트 필요
|
||||
|
||||
### 성능 문제
|
||||
- 검색 중에는 다른 검색을 시작하지 마세요
|
||||
- 네트워크 상태에 따라 검색 시간이 달라질 수 있습니다
|
||||
- 첫 실행 시 드라이버 다운로드로 인한 지연이 있을 수 있습니다
|
||||
|
||||
## 업데이트 내역
|
||||
- v1.1.0: Chrome 드라이버 자동 관리 기능 추가 (WebDriverManager 사용)
|
||||
- v1.0.0: 초기 버전 - 남구통합도서관 검색 기능 구현
|
||||
|
||||
## 라이선스
|
||||
이 프로젝트는 개인 및 교육 목적으로 사용할 수 있습니다.
|
||||
|
||||
## 기여
|
||||
버그 리포트나 기능 제안은 이슈로 등록해 주세요.
|
||||
135
README.md
135
README.md
@@ -1 +1,134 @@
|
||||
# BokBonCheck
|
||||
# 도서 검색 프로그램 (BokBonCheck)
|
||||
|
||||
## 개요
|
||||
이 프로그램은 여러 도서관 웹사이트에서 도서명을 검색하여 각 사이트별로 검색된 도서 수를 확인할 수 있는 C# WinForms 애플리케이션입니다.
|
||||
|
||||
## 주요 기능
|
||||
- **다중 사이트 검색**: 여러 도서관 사이트에서 동시에 도서 검색
|
||||
- **실시간 결과 표시**: 검색 결과를 테이블 형태로 실시간 표시
|
||||
- **확장 가능한 구조**: 새로운 도서관 사이트를 쉽게 추가 가능
|
||||
- **비동기 처리**: 검색 중에도 UI가 응답 가능
|
||||
- **자동 Chrome 드라이버 관리**: Chrome 버전에 맞는 드라이버 자동 다운로드 및 관리
|
||||
|
||||
## 현재 지원하는 도서관
|
||||
- 남구통합도서관 (https://lib.namgu.gwangju.kr/main/bookSearch)
|
||||
|
||||
## 기술 스택
|
||||
- **.NET Framework 4.8**
|
||||
- **C# WinForms**
|
||||
- **Selenium WebDriver**
|
||||
- **WebDriverManager** (Chrome 드라이버 자동 관리)
|
||||
|
||||
## 설치 및 실행
|
||||
|
||||
### 필수 요구사항
|
||||
1. .NET Framework 4.8 이상
|
||||
2. Google Chrome 브라우저 (최신 버전 권장)
|
||||
3. 인터넷 연결 (Chrome 드라이버 다운로드용)
|
||||
4. Visual Studio 2019 이상 (개발용)
|
||||
|
||||
### 빌드 및 실행
|
||||
1. 프로젝트를 Visual Studio에서 열기
|
||||
2. NuGet 패키지 복원 (자동으로 실행됨)
|
||||
3. 프로젝트 빌드 (Ctrl+Shift+B)
|
||||
4. 실행 (F5)
|
||||
|
||||
### 배포
|
||||
1. Release 모드로 빌드
|
||||
2. `bin/Release` 폴더의 모든 파일을 배포 대상 폴더에 복사
|
||||
3. BokBonCheck.exe 실행
|
||||
|
||||
## 사용법
|
||||
|
||||
### 프로그램 시작
|
||||
1. 프로그램 실행 시 Chrome 드라이버 자동 설정
|
||||
2. Chrome 설치 확인 및 적절한 드라이버 다운로드
|
||||
3. 드라이버 테스트 완료 후 검색 가능
|
||||
|
||||
### 기본 검색
|
||||
1. 검색창에 도서명 입력
|
||||
2. "검색" 버튼 클릭 또는 Enter 키 입력
|
||||
3. 검색 결과 확인
|
||||
|
||||
### 결과 해석
|
||||
- **도서관**: 검색한 도서관 이름
|
||||
- **도서 수**: 해당 도서관에서 검색된 도서의 총 개수
|
||||
- **검색 시간**: 검색이 완료된 시간
|
||||
- **상태**: 검색 성공/실패 여부
|
||||
|
||||
## 프로젝트 구조
|
||||
|
||||
```
|
||||
BokBonCheck/
|
||||
├── Form1.cs # 메인 UI 폼
|
||||
├── BookSearchService.cs # 검색 서비스 관리
|
||||
├── NamguLibrarySearcher.cs # 남구통합도서관 전용 검색기
|
||||
├── ChromeDriverManager.cs # Chrome 드라이버 자동 관리
|
||||
├── ILibrarySearcher.cs # 검색기 인터페이스
|
||||
└── Program.cs # 프로그램 진입점
|
||||
```
|
||||
|
||||
## Chrome 드라이버 자동 관리
|
||||
|
||||
### WebDriverManager 기능
|
||||
- **자동 버전 감지**: 설치된 Chrome 버전 자동 감지
|
||||
- **드라이버 자동 다운로드**: Chrome 버전에 맞는 드라이버 자동 다운로드
|
||||
- **캐시 관리**: 다운로드된 드라이버 캐시 관리
|
||||
- **업데이트 지원**: Chrome 업데이트 시 드라이버 자동 업데이트
|
||||
|
||||
### 동작 과정
|
||||
1. 프로그램 시작 시 Chrome 설치 확인
|
||||
2. Chrome 버전 정보 수집
|
||||
3. WebDriverManager를 통한 적절한 드라이버 다운로드
|
||||
4. 드라이버 테스트 실행
|
||||
5. 검색 기능 활성화
|
||||
|
||||
## 새로운 도서관 추가하기
|
||||
|
||||
새로운 도서관을 추가하려면 `ILibrarySearcher` 인터페이스를 구현하는 클래스를 생성하고 `BookSearchService`에 등록하면 됩니다.
|
||||
|
||||
### 예시:
|
||||
```csharp
|
||||
public class NewLibrarySearcher : ILibrarySearcher
|
||||
{
|
||||
public string SiteName => "새로운도서관";
|
||||
public string SiteUrl => "https://newlibrary.com/search";
|
||||
|
||||
public async Task<BookSearchResult> SearchAsync(string searchTerm)
|
||||
{
|
||||
// 검색 로직 구현
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
그리고 `BookSearchService` 생성자에서:
|
||||
```csharp
|
||||
_searchers.Add(new NewLibrarySearcher());
|
||||
```
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### Chrome 관련 오류
|
||||
- **Chrome 미설치**: Google Chrome을 설치하고 프로그램 재실행
|
||||
- **드라이버 다운로드 실패**: 인터넷 연결 확인 후 프로그램 재실행
|
||||
- **드라이버 테스트 실패**: 방화벽이나 보안 프로그램 설정 확인
|
||||
|
||||
### 검색 실패
|
||||
- 인터넷 연결 상태 확인
|
||||
- 해당 도서관 사이트가 정상 작동하는지 확인
|
||||
- 사이트 구조가 변경되었을 수 있으므로 검색 로직 업데이트 필요
|
||||
|
||||
### 성능 문제
|
||||
- 검색 중에는 다른 검색을 시작하지 마세요
|
||||
- 네트워크 상태에 따라 검색 시간이 달라질 수 있습니다
|
||||
- 첫 실행 시 드라이버 다운로드로 인한 지연이 있을 수 있습니다
|
||||
|
||||
## 업데이트 내역
|
||||
- v1.1.0: Chrome 드라이버 자동 관리 기능 추가 (WebDriverManager 사용)
|
||||
- v1.0.0: 초기 버전 - 남구통합도서관 검색 기능 구현
|
||||
|
||||
## 라이선스
|
||||
이 프로젝트는 개인 및 교육 목적으로 사용할 수 있습니다.
|
||||
|
||||
## 기여
|
||||
버그 리포트나 기능 제안은 이슈로 등록해 주세요.
|
||||
Reference in New Issue
Block a user