generic class

제네릭 클래스와 인터페이스는 저장될 값의 타입을 외부에서 받습니다

클래스나 인터페이스에 타입 매개변수를 두면 컨테이너, 저장소, 응답 모델이 담는 값의 타입을 재사용하면서 보존할 수 있습니다.

클래스 T

인스턴스 단위

Box<T>처럼 객체가 생성될 때 담을 값의 타입을 정하고 멤버 전체가 공유합니다.

class Box<T>
인터페이스 T

계약 재사용

Repository<T>는 엔티티 타입이 바뀌어도 같은 저장소 사용법을 유지합니다.

Repository<User>
제약 적용

필요 속성 보장

식별자 기반 저장소처럼 id가 필요한 경우 T에 구조 제약을 둡니다.

T extends Entity
활용 시나리오

응답과 상태

API 응답, 캐시, 큐처럼 담는 값이 달라지는 구조에 적합합니다.

ApiResponse<T>