자바 5에서는 enum, 어노테이션, 제네릭이 도입되었습니다. 이 중에서 처음 자바를 접하는 사람들이 가장 부담 없이 사용하는 기능은 아마 enum일 것입니다. 클래스를 생성하는 것만으로도 왜 필요한지, 어떻게 사용해야 하는지가 비교적 직관적으로 드러나기 때문입니다. 반면 어노테이션과 제네릭은 다릅니다. 문법 자체는 사용할 수 있지만, 사용한다고 해서 코드에 즉각적인 변화가 생긴다고 느끼기는 어렵습니다.그래서 실제로는 사용하고 있음에도 불구하고, 왜 필요한지에 대해서는 깊이 고민하지 않고 넘어가는 경우가 많습니다. 하지만 자바 표준 라이브러리나 스프링 프레임워크 내부를 살펴보면, 어노테이션과 제네릭이 사용되지 않는 영역을 찾기 어려울 정도로 널리 활용되고 있다는 사실을 확인할 수 있습니다. 그만큼 이 두..