첫 번째 Rust CLI 만들기는 초보자를 위한 Rust 다음에 이어지는 프로젝트 중심 과정입니다. 6개의 실습 활동에서 작은 Rust 프로그램부터 외부 의존성, 반복 가능한 품질 점검, 파일 기반 상태, 테스트, 릴리스 실행 파일을 갖춘 완전한 명령줄 애플리케이션까지 발전합니다.
이 과정은 3개의 가이드형 랩과 3개의 집중 챌린지를 짝지어 구성합니다. 긴 소스 파일, 모듈 트리, 테스트 하네스, 매니페스트는 시작 프로젝트로 제공됩니다. 터미널에 긴 프로그램을 복사하는 대신 nano를 사용해 배우는 경계에 작고 의미 있는 변경을 적용합니다.
학습 내용
- Cargo로 크레이트를 추가하고
Cargo.toml과Cargo.lock의 서로 다른 역할 설명하기 - 크레이트 기능을 활성화하고
clapderive 매크로로 타입이 있는 인수, 옵션, 하위 명령 만들기 - 생성된 도움말을 읽고 타입 기반 명령줄 검증 사용하기
- rustfmt, 엄격한 Clippy, 테스트, rustdoc을 반복 가능한 인계 품질 흐름으로 적용하기
- 모든 책임을
main.rs에 모으지 않고 작은 다중 모듈 Rust 프로젝트 탐색하기 - 명확한 파일 경계를 통해 데이터를 영속화하고 문맥이 포함된 오류 전파하기
- 잠긴 의존성 그래프로 최적화된 릴리스 실행 파일을 빌드, 테스트, 실행하기
- 기존 동작을 유지하면서 파서, 라이브러리, 저장소, 출력 경계에 걸쳐 CLI 확장하기
추천 대상
초보자를 위한 Rust를 마쳤거나 소유권, 빌림, 구조체, 열거형, 컬렉션, 이터레이터, Result, 파일, 모듈, 테스트, 제네릭, 트레이트, 기본 명령줄 프로세스 동작에 대한 동등한 지식이 있는 학습자를 위한 과정입니다.
선수 지식: Cargo 프로젝트를 읽고 작은 변경을 할 수 있어야 합니다. 외부 크레이트 선택, clap, Clippy, rustdoc 또는 완전한 CLI 프로젝트 구성 경험은 필요하지 않으며 사용 전에 소개합니다.
학습 환경: 각 활동은 Rust와 필요한 시작 프로젝트가 준비된 새로운 LabEx Linux 터미널에서 실행됩니다. 기본 편집기는 nano입니다. 활동 간 파일 시스템 상태를 공유하지 않으므로 각 챌린지는 독립 프로젝트를 포함합니다.
자주 묻는 질문
빈 파일에서 완전한 애플리케이션을 작성해야 하나요?
아니요. 프로젝트 구조, 긴 구현, 파서 상용구, 테스트, fixture는 setup에서 준비합니다. 가이드 단계에서는 작은 저장소, 명령 또는 도메인 경계를 한 번에 하나씩 완성합니다.
왜 clap을 사용하나요?
선행 과정에서 다룬 간단한 인수 수집에는 표준 라이브러리로 충분합니다. clap은 타입이 있는 옵션, 하위 명령, 생성된 도움말, 일관된 오류를 추가하므로 실제 CLI 프로젝트의 첫 의존성으로 적합합니다.
여기서 “인계 준비 완료”는 무엇을 의미하나요?
다른 개발자가 의존성 그래프를 재현하고 공개 인터페이스를 읽으며 테스트를 실행하고 일관된 포맷과 깨끗한 린트를 확인할 수 있다는 뜻입니다. 과정에서는 이를 구체적인 Cargo 명령으로 바꿉니다.
무엇을 만들게 되나요?
add, list, done 하위 명령이 있는 파일 기반 작업 추적기를 완성하고 테스트한 뒤 릴리스 실행 파일을 만듭니다. 이어서 새로운 버전에 열린 작업 필터와 요약 출력을 추가합니다.


