‘출발 전 장비 점검하기’는 서로 연결된 기록을 근거가 분명한 장비 점검 결과로 만드는 Rust 프로젝트입니다. 이동 계획과 스캔된 물품 기록을 비교하면서 장비 종류, 개별 물품의 식별 정보, 상태를 구분합니다. 손전등 2개를 스캔했더라도 하나가 손상되었다면 정상 손전등 2개가 필요하다는 조건을 충족하지 못합니다.
가이드 실습 2개에서 물품 식별부터 부족 수량과 초과 수량의 설명까지 배웁니다. 챌린지 1개에서는 같은 규칙을 다른 이동 계획에 적용합니다. 각 실습에는 독립적으로 준비된 프로젝트와 입력 데이터가 있으며, 이전 환경의 파일이나 프로세스에 의존하지 않습니다.
학습 내용
과정을 마치면 다음을 수행할 수 있습니다.
- 종류 ID를 계획의 필요 수량과 연결하고 물품 ID를 개별 물건과 연결하여, 서로 다른 종류의 이름이 같아도 올바르게 구분합니다.
- 지정된 경로의 TSV를 원본 변경 없이 읽고, 내용이 완전히 같은 반복 스캔을 한 번만 세며, 같은 물품의 서로 모순되는 기록을 거부합니다.
good상태의 물품만 필요 수량에 반영하고, 특정 물품을 임의로 초과 물품으로 지정하지 않으면서 종류별 부족 수량과 초과 수량을 계산합니다.- 종류별 필요 수량, 정상 수량, 부족 수량, 초과 수량과 정상·손상 물품의 전체 ID 집합을 제시하고, 모든 물품을 계획에 포함된 물품과 포함되지 않은 물품으로 분류합니다.
- 계획에 있는 종류의 스캔 기록이 없는 경우와 필요 수량이 0인 경우도 유효한 입력으로 처리하며, 손상되거나 계획에 없는 장비를 결과에 남깁니다.
추천 대상
컬렉션, 타입으로 정의한 레코드, 복구 가능한 오류를 작은 파일 처리 프로그램으로 조합할 준비가 된 Rust 학습자를 위한 과정입니다.
선수 지식: 기본 터미널 사용법과 Rust 구조체, enum, HashMap, Result, 파일 작업, 기본 반복 처리를 알아야 합니다.
학습 환경: LabEx는 브라우저의 Linux Terminal, 준비된 Rust 프로젝트, 합성 데이터 파일 plan.tsv와 scans.tsv를 제공합니다. 범용 CSV 리더가 아닌, 범위가 정해진 탭 구분 형식을 다룹니다. 터미널 레이블과 프로그램 출력은 영어로 유지됩니다.
자주 묻는 질문
스캐너나 실제 장비가 필요한가요?
아니요. 합성된 스캔 기록을 사용합니다. 결과는 해당 기록을 설명할 뿐, 실제 물리적 장비의 상태를 인증하지 않습니다.
추가 물품이나 손상된 물품은 입력 오류인가요?
아니요. 결과에 계속 표시해야 합니다. 손상된 물품은 필요 수량을 충족하는 데 사용하지 않으며, 계획에 없는 정상 물품은 초과 수량에 포함됩니다. 같은 물품의 종류나 상태가 서로 모순되는 기록은 오류이며, 마지막 행을 말없이 채택해서는 안 됩니다.
시간을 얼마나 잡아야 하나요?
저자는 읽기와 일반적인 실수에 대응하는 시간을 포함해 115–155분으로 예상합니다. 이 예상 시간은 초보자의 전체 학습 과정으로 검증되지 않았습니다.

