RUST · INTERIOR
RefCell 런타임 borrow 카운터
RefCell은 컴파일 타임 대신 런타임에 borrow 규칙을 검사해 내부 가변성을 제공합니다.
핵심 구조
RefCell
borrow()
공유 대여 카운터 증가
borrow_mut()
가변 대여는 단독이어야 함
drop guard
Ref/RefMut이 사라지며 카운터 감소
panic
규칙 위반은 런타임 실패
borrow()
→
borrow_mut()
→
drop guard
→
panic
판단 기준
check
내부 가변성
불변 참조 안에서도 규칙을 지키며 값을 바꿀 수 있습니다.
테스트 목
Mock 객체가 호출 기록을 저장할 때 유용합니다.
단일 스레드
RefCell은 Sync가 아니므로 스레드 공유용이 아닙니다.
작은 범위
RefMut guard의 생존 범위를 짧게 유지해야 합니다.