[dW리뷰]자바 이론과 실습: 제네릭스 해부, Part 1
원문기사: http://www.ibm.com/developerworks/kr/library/j-jtp04298.html
요즘은 이클립스 기사가 뜸해서 리뷰를 자꾸 미루게 되네요. ^^
최근 읽었던 책 Java Concurrency In Practice의 저자 Brian Goetz가 쓴 기사가 있어서 읽어보았습니다. JDK 5.0에서 추가된 Generics의 사용법 예시를 소개하는 기사입니다. Generics는 컬렉션 API 사용할 때나 그냥저냥 사용했던 것인데요. 뭐 그냥 귀찮은 타입 캐스팅을 줄이기 위한 것 정도로 이해해고 있었습니다만, 좀 더 명확한 의미와 JVM 내 구현 방법을 알게 되니 좀 달라보입니다.
Generics를 사용한 클래스를 만들 경우는 흔치 않지만 Generics 클래스의 오브젝트를 다룰 경우는 흔히 있는데(List<?> 등) 이때도 와일드카드의 사용은 특별히 고려해본 적이 없습니다. 제한적인 도메인 로직을 다루는 프로그래밍이 생업이다보니 굳이 와일드카드가 별 필요없기도 하고 제너릭 API을 쓰더라도 타입을 명시하는 편이 더 코드 가독성에 좋다고 생각했는데요. 기사를 읽고 생각해보니 와일드카드를 쓰면 적절한 부분도 있을 것 같습니다. 일단 컬렉션 API의 인터페이스를 구현하는 클래스인 경우에도 항상 타입제한을 걸었었는데요. 제너릭 팩토리 메서드를 이용해서 받는 쪽에서만 타입제한을 걸면 이래저래 활용범위도 넓어지고 쓰기도 더 편할 듯 합니다.
자바에서 autoboxing말고 타입 추론을 하는 경우가 있다는 것도 처음 알았구요. 어쨌든 재미있는 기사라 추천합니다~
함께 볼만한 기사 : Generics gotchas, Introduction to generic types in JDK 5
