Rust 에선 다른 거의 모든 것보다 컴파일러 출력을 읽는 데 시간을 더 써. 좋은 소식: Rust 의 에러는 주류 언어 중 거의 최고야. 그걸 읽는 법을 배우는 게 곧 Rust 를 배우는 거야.
에러의 해부학
Rust 에러는 매번 같은 구성요소를 가져: 에러 코드 (E0382), 한 줄 요약, span (caret 으로 가리킨 정확한 소스 위치), 그리고 종종 수정을 제안하는 help: 나 note:. 위에서 아래로 읽어. 요약은 무엇 을, span 은 어디 를, help 는 어떻게 를 알려줘.
rustc --explain
모든 에러 코드엔 풀 설명이 있어. rustc --explain E0382 는 버그와 수정 예시가 든 완전한 설명을 출력해. 낯선 에러를 만나면 그게 첫수야 — 웹 검색보다 먼저.
경고 vs 에러
에러는 컴파일을 멈춰; 경고는 안 멈추지만 무시하면 위험해. 안 쓴 변수, 안 쓴 import, 쓰는 걸 까먹은 값 — 경고는 컴파일러가 냄새를 알아챈 거야. 첫날부터 빌드를 경고-깨끗하게 유지해; 나중에 백 개에서 파내는 것보다 훨씬 쉬워.
clippy — 컴파일러의 고집 센 사촌
cargo clippy 는 정확성을 넘어 관용구 로 들어가: 이터레이터여야 할 수동 루프, 더 깔끔한 형태가 있는 장황한 패턴, 불필요한 clone 을 잡아줘. 매 줄을 리뷰해주는 Rust 멘토를 두는 거랑 같아. (툴링 트랙은 나중에.)
에러 메시지가 곧 레슨이야. Rust 는 가르침을 컴파일러로 앞당겨놨어. 제안된 수정을 맹목적으로 붙여넣는 대신 실제로 읽은 에러 하나하나가, 나중에 어렵게 안 배워도 되는 개념이야.
피파의 메모
Rust 가 나한테 click 하게 만든 재해석: 컴파일러는 내가 통과해야 할 관문이 아니야. 내 코드를 이미 읽고 어디서 깨지는지 아는 리뷰어야. 에러를 '넌 실패했어' 가 아니라 '리뷰에서 내가 짚을 부분은 여기야' 로 읽기 시작하니까 언어 전체가 부드러워졌어.