interior mutability

내부 가변성을 선택하는 판단 기준

RefCell<T>는 겉으로는 불변 참조를 유지하면서 내부 값을 바꿀 수 있게 해 컴파일러가 보수적으로 거절하는 일부 패턴을 표현합니다.

불변 외피

공개 API는 &self를 유지하면서 내부 상태 기록을 바꿀 수 있습니다.

런타임 검사

borrow와 borrow_mut 호출 시점에 대여 규칙 위반을 확인합니다.

단일 스레드

RefCell은 Sync가 아니므로 스레드 간 공유에는 Mutex 같은 타입을 고려합니다.

조합

Rc<RefCell<T>>는 여러 소유자가 같은 값을 공유하고 바꾸는 패턴을 만듭니다.