호출 지점 수집
largest<T>, Option<T>가 어디에서 어떤 타입으로 쓰였는지 먼저 봅니다.
T는 런타임에 남는 이름이 아니라 컴파일 시점에 실제 타입별 코드로 펼쳐지는 설계 자리입니다.
largest<T>, Option<T>가 어디에서 어떤 타입으로 쓰였는지 먼저 봅니다.
i32, f64, String처럼 실제 타입 조합마다 별도 형태가 생깁니다.
실행 중 타입 분기는 줄지만, 컴파일 시간과 바이너리 크기는 사용 조합의 영향을 받을 수 있습니다.
제네릭 호출이 동적 디스패치인지, 단형성화된 정적 호출인지 구분합니다.
같은 알고리즘이 여러 타입에 반복된다면 제네릭으로 관계를 이름 붙입니다.
트레이트 바운드가 필요한 연산을 모두 설명하는지 컴파일 에러로 확인합니다.
제네릭은 추상화를 런타임 비용으로 미루지 않고 컴파일러가 구체 코드로 확정하게 하는 도구입니다.