• 프로세스 둘 이상이 동시에 데이터를 변경하는 것을 방지해야 한다.
• 변경이 필요한 경우 각 경로 핸들러에 데이터 저장소의 소유권을 부여해야 한다.
데이터를 변경하기 위해 Store에 대기 명단을 두는 것을 고민하기 전에, 먼저 러스트가 상태의 소유권을 공유할 수 있는지 확인하자. 그럼 먼저 두 번째 문제를 해결해 보자.
이전 장에서 우리는 코드에서 변수를 전달할 때 러스트가 소유권을 이전하는 방법에 대해 설명했다. 그림 4-2는 복잡한 값(예를 들어 String)을 다른 변수에 전달할 때 컴파일러가 이를 uninit(https://doc.rust-lang.org/nomicon/drop-flags.html)로 표시하는 방법이다. 러스트는 힙에 있는 이 구조의 소유권을 스택에 있는 여러 포인터 중 하나만 가질 수 있도록 한다. 그리고 소유권을 가진 포인터만 수정할 수 있다.