로직은 한 번만 쓴다
push, pop, top의 알고리즘은 타입과 무관하게 공유됩니다.
Stack<T>는 아직 완성된 클래스가 아니라 타입 자리가 비어 있는 설계도입니다.
Stack<int>처럼 타입 인자를 넣는 순간 컴파일러가 구체 클래스를 만듭니다.
push, pop, top의 알고리즘은 타입과 무관하게 공유됩니다.
Stack<int>, Stack<string>처럼 구체 타입을 지정합니다.
컴파일러는 필요한 조합만 인스턴스화합니다.