https://www.learncpp.com/cpp-tutorial/partial-template-specialization-for-pointers/
optional reading으로 생략한다