소유권(Ownership)
은 가비지 컬렉터가 없는 러스트에서 메모리 안정성을 보장하는 비결입니다.
이는 러스트에서 가장 특별한 기능이며, 어떻게 동작하는지 반드시 이해해 둬야 합니다.
따라서 이번 장에서는 소유권을 비롯해 소유권과 관련된 빌림(Borrowing)
, 슬라이스(Slice)
기능과 러스트에선 데이터를 메모리에 어떻게 저장하는지 알아보겠습니다.
4.1 소유권이 뭔가요?
- 모든 프로그램은 작동하는 동안 컴퓨터의 메모리 사용 방법을 관리해야 합니다.
- 몇몇 언어는 가비지 컬렉션으로 프로그램에서 더 이상 사용하지 않는 메모리를 끊임없이 찾는 방식을 채용했고, 다른 언어는 프로그래머가 직접 명시적으로 메모리를 할당하고 해제하는 방식을 택했습니다.
- 이때 러스트는 제 3의 방식을 택했습니다. '소유권(ownership)' 이라는 시스템을 만들고, 컴파일러가 컴파일 중 검사할 여러 규칙을 정해 메모리를 관리하는 방식이죠.
- 이 방식은 프로그램 실행 속도에 악영향을 줄 일이 없습니다. 컴파일 타임에 전부 해결하니까요.