개발자 99% 커뮤니티에서 수다 떨어요!
맨날 봐야지 봐야지 해놓고 첫 장을 열자마자 잠에 들곤 했던 책...
역시 나같은 게으름뱅이는 외적인 압력이 있어야 뭔가를 하나보다.
가장 기억에 남는 장은 아래와 같다.
6장. 객체와 자료구조
10장. 클래스
6장에서는 명확히 구분지었던 객체와 자료구조의 개념. 최근 프로젝트에서 상속을 사용할 것인지 조합을 사용할 것인지를 두고 논쟁했던 기억이 있다. 나는 왜인지 상속을 사용하고 싶었는데 이것을 달리 논리있게 설명할 수가 없어서 취향이라고 말했다. 이 장을 읽고 다시 생각해보니 "새로운 변수나 함수의 추가"가 발생했을 때 공수를 분석해 근거를 가지고 논의를 했어야 했다. 상속을 사용하는 객체라면 변수 추가가 쉽고 사실 공통메소드가 자주 필요한 경우에는 함수 추가도 강제하기 쉬워지기 때문에 우리의 요구사항에 적절할 것이다. 조합을 사용하는 자료구조였다면 ... 사실 중복이 크게 늘고 그다지 이점이 없다고 생각했다. 조합으로 덩어리 만들 구분도 명확하지 않고... 아 이런 식으로 논의할걸... 취향이라고 말하는 버릇을 버리고 최대한 사실의 근거한 논의를 하도록 해야겠다고 다짐했다.
10장에서는 객체지향 관점에서 코드를 리팩토링 하는 방법을 제시하는데, 직접 코드로 예시를 알려주니 이해가 잘 되고 코드가 읽히는 흐림이 달라지는 것이 놀라웠다. 책에 나왔던 개념은 이론적으로는 다 알고 있었지만 그래서 어떻게 적용해야 하는 것인지 몰랐다. 한 번 생각이 트이고 나니 내가 지금 작업하고 있는 코드를 어떻게 재구성 해야하는지 살짝 눈에 보이기 시작했다. 하나의 파일이라도 기회가 올 때 잘 재정비 해야겠다.