This commit is contained in:
2025-06-28 22:15:22 +09:00
parent ab7a315b04
commit 27f48422ed
2 changed files with 134 additions and 135 deletions

View File

@@ -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
View File

@@ -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: 초기 버전 - 남구통합도서관 검색 기능 구현
## 라이선스
이 프로젝트는 개인 및 교육 목적으로 사용할 수 있습니다.
## 기여
버그 리포트나 기능 제안은 이슈로 등록해 주세요.