Generic class 계약

제네릭 계약은 타입 매개변수의 역할을 고정한다

제네릭 클래스와 인터페이스는 저장할 값, 외부 계약, 반환 타입을 하나의 타입 매개변수 흐름으로 묶습니다.

01

상태 대표

컬렉션이나 저장소가 담는 값 전체를 T가 대표하면 add, get, find 반환 타입이 일관됩니다.

02

계약 제한

T extends HasId처럼 필요한 속성을 제약하면 구현 내부에서 안전하게 접근할 수 있습니다.

03

외부 확장

인터페이스에 제네릭을 두면 같은 구조를 User, Product, DTO 같은 도메인별 타입으로 재사용합니다.

1

이름

T가 무엇을 대표하는지 이름이나 문맥에서 보이는지 확인합니다.

2

제약

구현이 요구하는 속성은 extends로 드러냅니다.

3

메서드

입력과 반환이 같은 타입 흐름에 묶이는지 봅니다.

4

재사용

새 도메인 타입을 넣어도 계약이 유지되는지 점검합니다.