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