RUST · CLI

minigrep 실행 책임 분리

main에 모든 일을 몰아넣으면 테스트와 에러 처리가 어려워집니다. 설정 파싱, 실행 로직, 에러 출력을 나누면 CLI 구조가 선명해집니다.

책임 분리 흐름

minigrep
env::args명령행 인자 목록을 가져옵니다.
Config::build검색어, 파일 경로, 옵션을 검증해 설정으로 만듭니다.
run(config)파일 읽기와 검색 로직을 수행합니다.
Result실패는 Err로 돌려 호출자가 처리합니다.
eprintln/exit오류 메시지를 표준 에러에 쓰고 종료합니다.
인자설정실행Result종료

구조 장점

separation
테스트 가능run과 검색 함수는 main 없이 테스트할 수 있습니다.
에러 경로panic보다 Result로 실패를 호출자에게 넘깁니다.
관심사 분리입력 파싱과 비즈니스 로직이 섞이지 않습니다.
확장성옵션이 늘어도 Config에 모아 관리할 수 있습니다.