Rust

Memory Management

Stack vs heap, allocator, Drop trait, RAII, Rc 사이클로 인한 메모리 누수, Pin<T>

20 면접 질문·
Senior
1

Rust에서 i32나 bool 같은 기본 타입의 지역 변수는 어디에 저장됩니까?

답변

기본 타입의 지역 변수는 stack에 저장됩니다. stack은 LIFO(Last In, First Out) 원칙으로 동작하기 때문에 매우 빠른 할당과 해제를 제공합니다. 기본 타입은 컴파일 타임에 크기를 알 수 있으므로 컴파일러가 현재 함수의 stack frame에 필요한 공간을 예약할 수 있습니다.

2

단일 소유자로 heap에 값을 할당하려면 어떤 smart pointer를 사용해야 합니까?

답변

Box<T>는 heap에 데이터를 할당하기 위한 가장 단순한 smart pointer입니다. 단일 소유권을 보장하며 Box가 scope를 벗어나면 자동으로 메모리를 해제합니다. Box는 컴파일 타임에 크기를 알 수 없는 타입, stack에 복사하고 싶지 않은 큰 구조체, 또는 재귀적 타입에 유용합니다.

3

Rust의 RAII(Resource Acquisition Is Initialization) 패턴이란 무엇입니까?

답변

RAII는 리소스(메모리, 파일, 연결)를 객체 생성 시 획득하고 소멸 시 자동으로 해제하는 패턴입니다. Rust에서는 값이 scope를 벗어날 때 자동으로 호출되는 Drop trait를 통해 이를 수행합니다. 이 패턴은 어떤 리소스도 잊히지 않도록 보장하며 메모리 누수를 방지합니다.

4

Rust에서 Drop trait는 언제 자동으로 호출됩니까?

5

Rust에서 Rc<T>로 메모리 누수(memory leak)를 어떻게 만들 수 있습니까?

+17 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기