Box
는 stack에 있는 데이터를 heap으로 옮길 수 있게 해주는 데이터 구조입니다.
Box
는 smart pointer로도 알려진 struct이며 heap에 있는 데이터를 가리키는 포인터를 들고 있습니다.
Box
는 크기가 알려져 있는 struct이므로 (왜냐하면 그저 포인터만 들고 있으므로)
field의 크기를 알아야 하는 struct에 뭔가의 참조를 저장할 때 종종 사용됩니다.
Box
는 어디서나 사용될 정도로 흔합니다:
Box::new(Foo { ... })