List userNames = new ArrayList(); 자바로 프로그래밍을 하는 분들이라면 굉장히 흔하게 볼 수 있는 구문이다. '제네릭'이라는 용어를 들어본 적이 없더라도 다들 자연스럽게 위와 같은 형태로 String 리스트를 선언하는 방식을 사용하고 있을 텐데, 여기서 꺽쇠(, )는 무엇이고 어떤 역할을 하고 있는 걸까? 제네릭이란? 클래스나 메서드에서 사용할 내부 데이터 타입을 외부에서 지정하는 방법으로, 자바 5부터 추가되었다. 꺽쇠 안에 타입 매개변수를 위치시켜() 제네릭 타입을 선언하고, 해당 객체의 타입은 컴파일 타임에 지정한다는 특징이 있다. 타입 매개변수에는 보통 T, E, K, V 등의 시그니처를 사용하지만, 굳이 따르지 않아도 된다. 외부에서 지정하는 것이 뭔지, 컴파일 타임에 ..
1. 일급 컬렉션이란? 소트웍스 앤솔러지의 9가지 객체지향 생활체조 중 8번째 규칙으로 처음 언급된 단어이다. 규칙 8: 일급 컬렉션 사용 이 규칙의 적용은 간단하다. 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 컬렉션과 관련된 동작은 근거지가 마련된 셈이다. 필터가 이 새 클래스의 일부가 됨을 알 수 있다. 필터는 또한 스스로 함수 객체가 될 수 있다. 또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다. 이는 인스턴스 변수에 대한 규칙의 확실한 확장이지만 그 자체를 위해서도 중요하다. 컬렉션은 실로 매우 유용한 원시 타입이다. 많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에 ..