Facts


Feelings


이펙티브 자바 제네릭 파트 2회독

이전에 포스팅을 이미 해뒀지만, 실습에 적용하려니 자주쓰는 기본적인 사용법을 제외하고는 잘 기억이 나지 않기에 포스팅 해 둔 글을 옆에 띄워놓고 계속 참고하다가 결국 처음부터 다시 2회독을 했다. 예전 교수님과 얘기를 할 때 나왔던 내용 중 하나가 사소한 것일지라도 키워드는 명확해야 한다는 것인데, 내가 계속 용어를 명확히 기억하지 못해서 List<String> 이런 매개변수화 타입을 제네릭 타입이라 지칭하기도 하고, String 이라는 실제 타입매개변수를 매개변수화 인수타입이라고 뭐 창작을 해서 부르기도 했는데, 하나 하나에 대한 이해가 깊지 못하고 다른 용어의 의미와 혼재되어 기억을 하고있으니 단어도 섞여서 기억되는 것 같다.

이펙티브 자바를 기준으로 다시 한 번 기억하도록 하자.

$\begin{array}{|c|c|c|c|}\hline \textbf{한글용어}&\textbf{영문 용어}&\textbf{예}&\textbf{아이템}\\\hline \text{매개변수화타입}&\text{parameterized type}&\text{List<String>}&\text{26}\\\hline \text{실제 타입매개변수}&\text{actual type parameter}&\text{String}&\text{26}\\\hline \text{제네릭 타입}&\text{generic type}&\text{List<E>}&\text{26, 29}\\\hline \text{정규 타입 매개변수}&\text{formal type parameter}&\text{E}&\text{26}\\\hline \text{비한정적 와일드카드 타입}&\text{unbounded wildcard type}&\text{List<?>}&\text{26}\\\hline \text{로 타입}&\text{raw type}&\text{List}&\text{26}\\\hline \text{한정적 타입 매개변수}&\text{bounded type parameter}&\text{<E extends Number>}&\text{29}\\\hline \text{재귀적 타입 한정}&\text{recursive type bound}&\text{<T extends Comparable<T>>}&\text{30}\\\hline \text{한정적 와일드카드 타입}&\text{bounded wildcard type}&\text{List<? extends Number>}&\text{31}\\\hline \text{제네릭 메서드}&\text{generic method}&\text{static <E> List<E> asList(E[] a)}&\text{30}\\\hline \text{타입 토큰}&\text{type token}&\text{String.class}&\text{33}\\\hline \end{array}$

코드숨 2주차 미션 진행

1주차의 혼란은 끝났고 이제 안정적으로 2주차 뿐 아니라 1주차의 피드백들도 다시 받아들이는 상황이다. 그동안 새로운 기술만 배우면서 뭔가 어려운 개념이나 모듈화, 새로운 라이브러리에 대해서 안다는 점을 이용해 최대한 여러가지를 구현하려 했는데, 이는 결국 나만의 지식자랑일 뿐인 것 같다.

1~ 2주차에서 실수를 줄일 수 있는 개발 습관들을 깨닫고, 협업에 필요한 주석 처리 및 무의식적으로 작성한 코드에서 생길수 있는 비용낭비를 막을 수 있는 시선을 배운것 같다.

나는 책이나 유명인의 말에 많이 휘둘리는 편이였는데, 예를들어 주석에 관련해서도 작년까지는 정말 주절거리는 식으로 엄청나게 많은 주석을 작성했다가, 클린코드에서 메서드나 동작만으로 이해할 수 있는 코드를 짜서 주석을 최소화 하라는말을 주석을 없애라! 라고 인지해서 이젠 주석을 거의 안쓰는 식으로 개발을 했는데, 이번 주차에는 필요한 곳에 필요한 주석을 작성해서 코드의 간결함과는 별개로 협업에 필요한 수준의 주석작성을 하는 법에 대해 학습한 것 같다.