usage rule

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

shared_ptr는 편하지만 비용과 순환 참조 위험이 있습니다. 소유권이 하나라면 unique_ptr가 기본 선택입니다.

1

기본은 unique

단독 소유라면 make_unique로 시작합니다.

2

공유가 필요할 때만 shared

여러 소유자가 수명을 함께 책임질 때만 사용합니다.

3

순환은 weak

서로 참조하는 관계의 한쪽은 weak_ptr로 낮춥니다.

4

new/delete 숨기기

make_unique, make_shared가 기본입니다.

판단 순서: “누가 소유하는가”를 먼저 정하고, 그다음 포인터 타입과 생성 함수를 고릅니다.