RUST · CLI
minigrep 실행 책임 분리
main에 모든 일을 몰아넣으면 테스트와 에러 처리가 어려워집니다. 설정 파싱, 실행 로직, 에러 출력을 나누면 CLI 구조가 선명해집니다.
책임 분리 흐름
minigrep
env::args
명령행 인자 목록을 가져옵니다.
Config::build
검색어, 파일 경로, 옵션을 검증해 설정으로 만듭니다.
run(config)
파일 읽기와 검색 로직을 수행합니다.
Result
실패는 Err로 돌려 호출자가 처리합니다.
eprintln/exit
오류 메시지를 표준 에러에 쓰고 종료합니다.
인자
→
설정
→
실행
→
Result
→
종료
구조 장점
separation
테스트 가능
run과 검색 함수는 main 없이 테스트할 수 있습니다.
에러 경로
panic보다 Result로 실패를 호출자에게 넘깁니다.
관심사 분리
입력 파싱과 비즈니스 로직이 섞이지 않습니다.
확장성
옵션이 늘어도 Config에 모아 관리할 수 있습니다.