제네릭 선언 위치 선택표
제네릭은 클래스, 인터페이스, 함수 중 어디에 붙이느냐에 따라 재사용 범위와 추론 방식이 달라집니다.
상태를 오래 보관할 때
Box 처럼 저장된 값과 메서드가 같은 타입 변수에 묶입니다.
도메인 저장소 생성
Repository 처럼 한 타입의 목록과 조회 결과를 유지합니다.
계약을 재사용할 때
KeyValuePair 처럼 구현과 분리된 데이터 계약을 둡니다.
입출력 관계 고정
콜백 시그니처에 제네릭을 두면 입력 타입에 맞는 반환 타입을 유지할 수 있습니다.
핵심제네릭 선언 위치 선택표은 각 요소의 관계와 선택 조건을 함께 읽어야 한다.