제네릭은 자바에서 제공해주는 기능으로 클레스나 메소드를 정의할때 미리 어떤타입인지 정하지않고
사용시점에서 타입을 지정하게해주는 기능입니다.
제가 가장 자주 사용해봤던 제네렉클래스의 예시로는 arraylist가 있는데, 처음생성할때 어떠한타입인지
정하지않고 괄호<>만 추가하여 제네릭으로 지정하여 사용합였습니다.
컬렉션클래스에서 제네릭을 사용하는 이유는 크게 4가지로,
컬렉션에 저장되는 요소를 미리 명시하여 런타임시점에서 타입불일치 오류를 방지할수있는 타입안정성보장
형변환등을 거치지않고 코드를 간결하게 할수있는 코드가독성향상
타입불일치방지를 통한 재사용성 향상
마지막으로 컴파일러가 타입검사를 수행할때 바로 타입오류를 발견할수있기때문에 빠른오류발견등이있습니다.