입력·검색·출력을 분리하면 이전 장의 개념이 하나의 도구로 조립된다

minigrep은 새 문법을 많이 배우는 예제가 아니다. 인수와 파일을 경계에서 처리하고, 순수한 검색 로직을 분리해 오류와 테스트가 흐르는 자리를 익힌다.

env::argsquery · path
Config::build검증된 설정
run파일 I/O 경계
searchVec<&str>
출력 분리결과 stdout · 오류 stderr
01

인수를 받는다

검색어와 파일 경로를 CLI에서 수집한다.

Vec·String
02

설정을 만든다

파싱과 검증을 Config 책임으로 모은다.

struct·Result
03

파일을 읽는다

I/O 실패를 호출자에게 전달해 종료 정책과 분리한다.

모듈·오류 전파
04

줄을 검색한다

문자열을 빌리지 않고 일치한 줄의 참조를 돌려준다.

반복자·라이프타임
05

채널을 나눈다

성공 결과는 stdout, 진단은 stderr로 보낸다.

테스트·리디렉션

실행 흐름과 정책을 작은 함수·모듈로 나누면 검색 로직은 파일 없이 테스트할 수 있고, I/O 실패와 사용자 메시지는 바깥 경계에서 일관되게 처리할 수 있다.