2.1.5 이동, 대여, 소유권에 대해 훑어보기
처음에는 간단히 시작했는데 String과 &str을 더 파고들면 러스트의 주요 개념 중 하나인 소유권까지 이르게 된다. 단적으로 말해서 러스트는 가비지 컬렉터를 사용하지 않고, 개발자의 많은 주의를 필요로 하는 수동 작업을 하지 않더라도 메모리를 안전하게 관리하고자 한다.
모든 컴퓨터 프로그램은 가비지 컬렉터로 메모리를 정리해 빈 값을 가르키는 변수가 없게 하거나, 개발자가 이 프로세스를 철저히 꿰고 수동으로 관리하는 방식으로 메모리를 관리한다. 러스트는 이 가운데 어느 방안도 아닌 다른 개념을 도입한다.
다음 예제(코드 2-7에서 2-9까지)는 러스트 플레이그라운드에서 시험해 볼 수 있다(http://mng.bz/gRml). 다양한 조합으로 에러를 직접 수정해 보자.
코드 2-7 &str 값 할당하기
fn main() {
let x = "hello";
let y = x;
println!("{}", x);
}