값을 살아 있게 해야 하는 방향만 Rc로 둡니다.
Cycle Guard
순환 참조 차단 기준
Rc끼리 서로 강하게 가리키면 카운트가 0이 되지 않아 메모리가 해제되지 않으므로 소유 관계와 관찰 관계를 분리해야 합니다.
소유는 Rc, 관찰은 Weak
부모, 캐시, 역참조는 Weak로 표현합니다.
대상이 사라졌을 때 None을 자연스럽게 다룹니다.
strong_count와 weak_count로 구조를 검증합니다.
판단 기준: 부모나 역참조처럼 값을 소유하지 않아도 되는 연결은 Weak<T>로 낮추고 upgrade 실패 가능성을 처리합니다.