ITERATOR REFACTOR Vec로 모아 clone하지 않고, 인수를 반복자로 바로 소비한다 Config가 query와 file_path를 소유해야 한다면, String을 복제하기보다 iterator에서 꺼낸 값을 그대로 이동시키는 편이 자연스럽습니다.
이전 방식 env::args를 Vec로 수집하고 슬라이스 인덱스로 접근한 뒤 String을 clone합니다.
let args: Vec<String> = env::args().collect();
Config::build(&args)
개선 방식 Config::build가 Iterator를 받아 next로 program name, query, file_path를 순서대로 소비합니다.
Config::build(env::args())
args.next(); args.next();
핵심 효과: 인덱스 접근과 clone이 줄고, 함수 시그니처가 “인수 흐름을 소비한다”는 의도를 직접 드러냅니다.