shared_ptr는 편하지만 비용과 순환 참조 위험이 있습니다. 소유권이 하나라면 unique_ptr가 기본 선택입니다.
단독 소유라면 make_unique로 시작합니다.
make_unique
여러 소유자가 수명을 함께 책임질 때만 사용합니다.
서로 참조하는 관계의 한쪽은 weak_ptr로 낮춥니다.
make_unique, make_shared가 기본입니다.
make_shared