ownership default

스마트 포인터는 소유권이 필요한 만큼만 강하게 쓴다

shared_ptr는 편하지만 비용과 순환 참조 위험이 있어 unique_ptr가 기본 선택이다.

unique_ptr단일 소유
shared_ptr공유 소유
weak_ptr순환 끊기
raw view소유하지 않음
구분판단 기준다음 행동
기본 선택객체 소유자가 하나unique_ptr 사용
공유 필요여러 객체가 수명을 함께 결정shared_ptr 비용과 순환 확인
원시 포인터관찰만 하고 삭제 책임 없음get은 보기, release는 책임 이전

핵심 소유권이 하나면 unique_ptr, 공유가 실제 요구일 때만 shared_ptr, 관찰은 weak_ptr나 raw view로 낮춘다.