제네릭 타입 어느 특정 데이터 형식에 의존하지 않고, 하나의 값이 여러 데이터 타입들을 가질 수 있도록 하는 방법 ex) ArrayList => ArrayList 객체명 new ArrayList(); 제네릭 타입은 불공변 제네릭 타입은 하위 객체가 상위 객체의 하위 타입이더라도 호환이 되지 않습니다. 아래와 같이 사용하면 컴파일 오류가 납니다. 이를 불공변 하다고 합니다. ArrayList objectList = new ArrayList(); 제네릭 타입이 불공변하기 때문에 컴파일 타임에서 타입 안전성을 보장해줄 수 있습니다. 제네릭 타입을 사용했을 때 좋은 점 잘못된 타입이 들어왔을 때 컴파일 단계에서 오류를 확인 할 수 있습니다. 제일 좋은 오류는 컴파일 단계에서 알 수 있는 오류이기 때문에 제네릭 ..