query와 file_path를 하나의 설정 값으로 묶어 함수 인수를 줄입니다.
커맨드 라인 예제를 유지보수 가능한 프로그램으로 만들기 위해 인수 파싱, 설정, 실행 로직, 오류 출력을 분리합니다.
panic!으로 중단하는 대신 Result를 반환하면 호출자가 오류 메시지와 종료 코드를 제어할 수 있습니다.
query와 file_path를 하나의 설정 값으로 묶어 함수 인수를 줄입니다.
인수 개수와 값 추출 실패를 Result로 표현합니다.
설정을 받아 프로그램의 실제 작업을 수행하고 I/O 오류를 전파합니다.
오류를 stderr에 출력하고 process::exit로 종료 상태를 분명히 합니다.
인수 파싱 코드를 Config::build로 옮깁니다.
검색 실행 로직을 run 함수로 떼어 테스트 가능한 형태로 둡니다.
실패는 Result로 올리고 main에서 사용자 메시지로 바꿉니다.
이 리팩터링은 코드를 예쁘게 나누는 일이 아니라, 실패 책임과 실행 책임을 각자 맞는 위치에 두는 작업입니다.