관심사 분리

모듈성과 에러 처리 향상을 위한 리팩터링

main이 커지지 않도록 Config, run, lib.rs, Result 반환을 도입해 CLI 프로젝트의 책임을 나눕니다.

Config

query와 file_path처럼 함께 다니는 설정 값을 묶습니다.

build

인수 파싱 실패를 Result로 돌려 호출자가 처리하게 합니다.

run

파일 읽기와 검색 실행을 담당하는 작업 함수입니다.

eprintln!

오류 메시지는 표준 에러로 보내 정상 출력과 분리합니다.

리팩터링 순서

모듈성과 에러 처리 읽기 기준
묶기

관련 변수를 구조체와 생성 함수로 모읍니다.

옮기기

프로그램 로직을 run과 라이브러리 쪽으로 분리합니다.

전파

panic! 대신 Result를 반환해 main에서 종료 방식을 결정합니다.

이 리팩터링은 코드를 예쁘게 나누는 작업이 아니라, 오류가 어디서 생기고 어디서 사용자에게 전달되는지 분명히 하는 과정입니다.