main lib split

main.rs는 실행 경계, lib.rs는 재사용 가능한 작업을 맡는다

바이너리는 인수·환경·종료 코드를 다루고, 라이브러리는 설정 생성과 실제 검색 로직을 노출한다.

main.rs
  • args 수집
  • Config 생성 호출
  • 오류 출력
  • process::exit
lib.rs
  • Config 타입
  • run 함수
  • search 함수
  • 테스트 가능한 로직
구분의미판단
입출력 경계main.rs실행 환경과 연결
비즈니스 로직lib.rs테스트와 재사용
오류 전달Result 반환main이 표시 방식 결정

핵심 분리는 파일 이름이 아니라 “실행 책임”과 “로직 책임”을 나누는 것이다.