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로 낮춘다.