
Memory Management
Stack vs heap, allocator, Drop trait, RAII, Rc 사이클로 인한 메모리 누수, Pin<T>
20 면접 질문·
Senior
1Rust에서 i32나 bool 같은 기본 타입의 지역 변수는 어디에 저장됩니까?
1
Rust에서 i32나 bool 같은 기본 타입의 지역 변수는 어디에 저장됩니까?
답변
기본 타입의 지역 변수는 stack에 저장됩니다. stack은 LIFO(Last In, First Out) 원칙으로 동작하기 때문에 매우 빠른 할당과 해제를 제공합니다. 기본 타입은 컴파일 타임에 크기를 알 수 있으므로 컴파일러가 현재 함수의 stack frame에 필요한 공간을 예약할 수 있습니다.
2단일 소유자로 heap에 값을 할당하려면 어떤 smart pointer를 사용해야 합니까?
2
단일 소유자로 heap에 값을 할당하려면 어떤 smart pointer를 사용해야 합니까?
답변
Box<T>는 heap에 데이터를 할당하기 위한 가장 단순한 smart pointer입니다. 단일 소유권을 보장하며 Box가 scope를 벗어나면 자동으로 메모리를 해제합니다. Box는 컴파일 타임에 크기를 알 수 없는 타입, stack에 복사하고 싶지 않은 큰 구조체, 또는 재귀적 타입에 유용합니다.
3Rust의 RAII(Resource Acquisition Is Initialization) 패턴이란 무엇입니까?
3
Rust의 RAII(Resource Acquisition Is Initialization) 패턴이란 무엇입니까?
답변
RAII는 리소스(메모리, 파일, 연결)를 객체 생성 시 획득하고 소멸 시 자동으로 해제하는 패턴입니다. Rust에서는 값이 scope를 벗어날 때 자동으로 호출되는 Drop trait를 통해 이를 수행합니다. 이 패턴은 어떤 리소스도 잊히지 않도록 보장하며 메모리 누수를 방지합니다.
4
Rust에서 Drop trait는 언제 자동으로 호출됩니까?
5
Rust에서 Rc<T>로 메모리 누수(memory leak)를 어떻게 만들 수 있습니까?
+17 면접 질문
기타 Rust 면접 주제
Rust 기초
Junior
25개 질문Ownership & Borrowing
Junior
22개 질문Structs & Enums
Junior
20개 질문에러 처리
Junior
18개 질문컬렉션
Junior
20개 질문모듈과 패키지
Junior
18개 질문Traits
Mid-Level
22개 질문Generics
Mid-Level
20개 질문Lifetimes
Mid-Level
20개 질문Iterators & Closures
Mid-Level
22개 질문Smart Pointers
Mid-Level
22개 질문Concurrency Basics
Mid-Level
20개 질문async/await
Mid-Level
22개 질문Testing
Mid-Level
18개 질문Cargo & Ecosystem
Mid-Level
18개 질문Pattern Matching
Mid-Level
18개 질문매크로
Mid-Level
20개 질문Serde와 직렬화
Mid-Level
20개 질문Unsafe Rust
Senior
20개 질문고급 트레잇
Senior
22개 질문고급 lifetime
Senior
20개 질문Type System
Senior
20개 질문Tokio & Async I/O
Senior
22개 질문성능 최적화
Senior
20개 질문Web Frameworks
Senior
22개 질문Database Integration
Senior
20개 질문Rust 디자인 패턴
Senior
20개 질문