도서 검색 프로그램 (BokBonCheck)

개요

이 프로그램은 여러 도서관 웹사이트에서 도서명을 검색하여 각 사이트별로 검색된 도서 수를 확인할 수 있는 C# WinForms 애플리케이션입니다.

주요 기능

  • 다중 사이트 검색: 여러 도서관 사이트에서 동시에 도서 검색
  • 실시간 결과 표시: 검색 결과를 테이블 형태로 실시간 표시
  • 확장 가능한 구조: 새로운 도서관 사이트를 쉽게 추가 가능
  • 비동기 처리: 검색 중에도 UI가 응답 가능
  • 자동 Chrome 드라이버 관리: Chrome 버전에 맞는 드라이버 자동 다운로드 및 관리

현재 지원하는 도서관

기술 스택

  • .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에 등록하면 됩니다.

예시:

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
No description provided
Readme 83 KiB
Languages
C# 100%