CLI
file_path두 번째 인수로 읽을 파일 경로를 받는다.
지금은 CLI 인수와 파일 I/O를 한 함수에서 이어 붙여 동작을 확인하고, 다음 절에서 책임과 오류 처리를 나눈다.
두 번째 인수로 읽을 파일 경로를 받는다.
경로의 파일 전체를 문자열로 읽는다.
성공은 문자열, 실패는 I/O 오류가 된다.
지금은 읽기 실패를 곧바로 중단한다.
문자열 출력으로 정상 흐름을 확인한다.
인수 파싱, 파일 읽기, 검색 준비를 main 밖으로 옮긴다.
expect 대신 호출자에게 실패 이유를 돌려준다.
contents를 검색 함수에 넘길 수 있게 구조를 정돈한다.