LabHub

Rust — 컴파일러가 막는 것들 · 소유권과 빌림 · 실습

컴파일러와 대화한다

LabHub 에서 이어서 보기

목표

Rust 컴파일러가 무엇을 왜 막는지를 오류 메시지를 읽으며 익힙니다.
이 실습에는 일부러 빌드를 실패시키는 단계가 있습니다 — 그 메시지가
배울 것이기 때문입니다.

왜 중요한가

Rust 를 어렵게 만드는 것은 문법이 아니라 소유권입니다. 그리고 소유권을
배우는 가장 빠른 길은 컴파일러에게 막혀 보는 것입니다.

막히는 두 가지가 실제로는 미래의 버그입니다.

C++ 에서는 둘 다 조용히 통과하고 나중에 이상한 값이 나옵니다.

환경

네트워크가 없어 cargo add 는 동작하지 않습니다. 이 실습은 표준
라이브러리만 쓰므로 상관없습니다.

cargo build --offline     빌드cargo run --offline       실행cargo clippy --offline    더 나은 방법 제안

단계

모든 파일은 /root/work/own 안에 만듭니다.

1. cargo init --name own
2. examples/move_err.rs — 일부러 실패 → 02-move.txt
3. examples/move_ok.rs — help 를 따라 고치기
4. examples/borrow_err.rs — 일부러 실패 → 04-borrow.txt
5. examples/borrow_ok.rs — 범위를 좁혀 통과
6. Result 로 에러 다루기 → 06-result.txt
7. clippy → 07-clippy.txt
8. 무엇이 막혔고 왜였는지 → 08-notes.md

examples/ 인가cargo build 는 examples 를 건드리지 않습니다.
일부러 깨뜨린 코드를 거기 두면 프로젝트 전체 빌드는 계속 통과합니다.

참고

단계 8개

  1. 프로젝트를 만든다
  2. 일부러 옮겨 보고 오류를 읽는다
  3. 컴파일러가 말한 대로 고친다
  4. 빌림 규칙에 부딪혀 본다
  5. 범위를 좁혀 통과시킨다
  6. 에러를 Result 로 다룬다
  7. clippy 에게 물어본다
  8. 무엇이 막혔고 왜였는지