객체지향 사고 프로세스

출처: 알라딘, aladin.co.kr

출처: 알라딘, aladin.co.kr

책을 읽게 된 동기

20년도 더 된 고전 책인데, 이제 5판이나 됐다. 옛날에 읽었던 기억이 있는데 개정판 나온 김에 다시 봄

후기

이 책이 5판인데, 제대로된 객체지향에 대한 이야기와 이해를 할 수 있는 책이다. 거의 국내 출판된 조영호님의 책과 견줄만 한데 이 책은 다음과 같은 특징이 있다.

단점이 한가지 눈에 띄는데 베타리더의 Java 코드에 대한 지적질 수준이 그리 썩 좋아보이지 않는다는 것이다. 옮긴이가 오죽하면 쓸데없는 논쟁은 그만하겠다고 책 코멘트에 달 정도니 그 지적질이 매우 과하다고 할 수 있다.

실제 책 저자는 특정 언어의 코드로 쓰지 않고 객체지향에 대해 이해할 수준으로 대략 적은 것은데 베타리더가 자바 프로그래머다 보니 이런 일이 일어난 듯 하다. 저자는 자바 외에도 .NET, C++, Objective-C, Swift 등 다양한 언어를 언급하지만 예제 코드가 자바문법에 맞지 않는다는 이유로 베타리더에게 지적질 당할 것 까지는 없어 보인다.

책을 읽으면서 사진을 좀 찍었는데, 생각해 보기에 좋은 문구 혹은 당연히 옳은 얘기인데 현실은 그렇지 않은 부분에 대해 추가해 본다.

옮긴이, 이 코드에 대해서도 베타리더의 지적이 있었다. return 문이 없는 데 왜 void는 빠져 있으며, 문법에도 맞지 않으며, 실행도 되지 않을 코드이며, 무슨 의미인지도 모르겠다는 것이었다. 그러나 거듭 말하지만, 이는 의사 코드다. 자바 언어로 작성한 코드가 아니다. 자바 언어와 비슷하게 표기했을 뿐이다. 본문의 내용을 보면 이 의사 코드의 의미를 충분히 이해할 수 있다. 이후로는 더 이상 이 책에 나오는 코드를 온전한 자바 코드로 보고 자바 언어 문법이나 관례에 맞지 않는다는 오해를 하지 않기를 바라며, 이에 대해서 더 이상 언급하지 않겠다.

옮긴이가 의사 코드라고 밝히고, 자바 언어 문법이나 관례에 맞지 않는다는 오해에서 비롯된 언급은 안하겠다는 글이 있다. 오죽하면 옮긴이가 이걸 책에다 적었을까?

그런데 놀라운건 이 이후에도 베타리더의 자바 언어 지적질의 코멘트가 몇 개 더 나오긴 한다. 의사 코드라고 얘기해줘도 자바랑 맞지 않는다고 난리치는 모습이란 으흠 별로 좋아보이지 않는다.

문서화의 중요성, 아무리 강조해도 지나치지 않다.

대부분의 개발자는 코드를 철저히 문서화해야 한다는 점을 알고 있지만, 일반적으로 이런 일에 시간을 내고 싶어하지 않는다. 그러나 문서화를 잘 하는 좋은 습관이 없이는 훌륭하게 설계하기는 사실상 불가능하다.

너무 주옥같은 말이라, 감동의 물결이 그냥 밀려온다.