`RefCell<T>`와 내부 가변성 패턴

외부에는 불변 참조만 보여 주면서 내부 상태는 바꿔야 할 때 RefCell<T>가 대여 규칙을 런타임으로 옮깁니다. 규칙은 같지만 위반 시점이 컴파일 단계에서 실행 단계로 바뀝니다.

RefCell과 내부 가변성: 컴파일 시점 대여 검사와 런타임 대여 검사의 차이를 확인합니다.

외부 APIsend(&self, msg)호출자는 불변 참조만 보유
런타임 대여문messages.borrow_mut()활성 대여 상태를 검사
내부 값 변경Vec::push(msg)RefMut이 사라지면 다시 미대여
여러 읽기borrow()는 동시에 여러 개 허용
하나의 쓰기borrow_mut()는 단독일 때만 허용
충돌읽기와 쓰기가 겹치면 런타임 패닉