main.rs는 실행 경계, lib.rs는 재사용 가능한 작업을 맡는다
바이너리는 인수·환경·종료 코드를 다루고, 라이브러리는 설정 생성과 실제 검색 로직을 노출한다.
- args 수집
- Config 생성 호출
- 오류 출력
- process::exit
- Config 타입
- run 함수
- search 함수
- 테스트 가능한 로직
| 구분 | 의미 | 판단 |
|---|---|---|
| 입출력 경계 | main.rs | 실행 환경과 연결 |
| 비즈니스 로직 | lib.rs | 테스트와 재사용 |
| 오류 전달 | Result 반환 | main이 표시 방식 결정 |
핵심 분리는 파일 이름이 아니라 “실행 책임”과 “로직 책임”을 나누는 것이다.