diff --git a/BokBonCheck/README.md b/BokBonCheck/README.md deleted file mode 100644 index e29d30c..0000000 --- a/BokBonCheck/README.md +++ /dev/null @@ -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 SearchAsync(string searchTerm) - { - // 검색 로직 구현 - } -} -``` - -그리고 `BookSearchService` 생성자에서: -```csharp -_searchers.Add(new NewLibrarySearcher()); -``` - -## 문제 해결 - -### Chrome 관련 오류 -- **Chrome 미설치**: Google Chrome을 설치하고 프로그램 재실행 -- **드라이버 다운로드 실패**: 인터넷 연결 확인 후 프로그램 재실행 -- **드라이버 테스트 실패**: 방화벽이나 보안 프로그램 설정 확인 - -### 검색 실패 -- 인터넷 연결 상태 확인 -- 해당 도서관 사이트가 정상 작동하는지 확인 -- 사이트 구조가 변경되었을 수 있으므로 검색 로직 업데이트 필요 - -### 성능 문제 -- 검색 중에는 다른 검색을 시작하지 마세요 -- 네트워크 상태에 따라 검색 시간이 달라질 수 있습니다 -- 첫 실행 시 드라이버 다운로드로 인한 지연이 있을 수 있습니다 - -## 업데이트 내역 -- v1.1.0: Chrome 드라이버 자동 관리 기능 추가 (WebDriverManager 사용) -- v1.0.0: 초기 버전 - 남구통합도서관 검색 기능 구현 - -## 라이선스 -이 프로젝트는 개인 및 교육 목적으로 사용할 수 있습니다. - -## 기여 -버그 리포트나 기능 제안은 이슈로 등록해 주세요. \ No newline at end of file diff --git a/README.md b/README.md index 1707478..e29d30c 100644 --- a/README.md +++ b/README.md @@ -1 +1,134 @@ -# BokBonCheck \ No newline at end of file +# 도서 검색 프로그램 (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 SearchAsync(string searchTerm) + { + // 검색 로직 구현 + } +} +``` + +그리고 `BookSearchService` 생성자에서: +```csharp +_searchers.Add(new NewLibrarySearcher()); +``` + +## 문제 해결 + +### Chrome 관련 오류 +- **Chrome 미설치**: Google Chrome을 설치하고 프로그램 재실행 +- **드라이버 다운로드 실패**: 인터넷 연결 확인 후 프로그램 재실행 +- **드라이버 테스트 실패**: 방화벽이나 보안 프로그램 설정 확인 + +### 검색 실패 +- 인터넷 연결 상태 확인 +- 해당 도서관 사이트가 정상 작동하는지 확인 +- 사이트 구조가 변경되었을 수 있으므로 검색 로직 업데이트 필요 + +### 성능 문제 +- 검색 중에는 다른 검색을 시작하지 마세요 +- 네트워크 상태에 따라 검색 시간이 달라질 수 있습니다 +- 첫 실행 시 드라이버 다운로드로 인한 지연이 있을 수 있습니다 + +## 업데이트 내역 +- v1.1.0: Chrome 드라이버 자동 관리 기능 추가 (WebDriverManager 사용) +- v1.0.0: 초기 버전 - 남구통합도서관 검색 기능 구현 + +## 라이선스 +이 프로젝트는 개인 및 교육 목적으로 사용할 수 있습니다. + +## 기여 +버그 리포트나 기능 제안은 이슈로 등록해 주세요. \ No newline at end of file