본문 바로가기
행위 돌아보기/독후감상문

[책] 엘레강트 오브젝트(Elegant object) - 조영호 역

by simplify-len 2021. 2. 20.

그림 1 - 엘리강트 오브젝트 - 조영호 역

오랜만에 객체지향 프로그래밍에 대해서 당연시 여겼던 부분에 대해서 다시 한번 생각할 수 있게끔 도와준 책을 만났다.

  읽고 생각하며, 직접 나의 생각을 적는 그 과정속에서, 이전에 내 몸에 내재화 되어있던 여러 개발 패턴들을 의심할 수 있었다. ‘getter, setter 메서드를 왜 써야 하는가?’, ‘C 언어에는 자료구조라고 선언할 수 있는 키워드가 있지만, 왜 자바는 없었을까?’ 이런 의구심 부터, ‘클래스 이름에 -er 이 붙은 객체들은 좋은 객체가 아니다.’ 라는 절로 여러 부분에서 생각할 수 있도록 만들어 준 책 이였다.

 종종 저자는 말을 너무 강하게 해서 읽고 있는 내 생각마저도 휩쓸리는 경향이 있었지만,(러시아 사람들은 글을 강하게 쓴다고 한다.) 그러지 않기 위해서 남에게 나의 생각을 이야기하면서 계속 정제해 나갔다.

 내용들 중 인상 깊었던 부분으로, 객체지향 프로그래밍과 절차지향 프로그래밍에 대한 생각도 인상깊었다. 나의 생각으로는 위에서 아래로, 코드가 동작되는 것이 절차 지향 프로그래밍, 객체간 통신이 객체지향 프로그래밍이라는 막연한 생각을 가졌었다. 그러나, 저자는 나의 막연한 생각을 구체화 시켜 줄 수 있는 경험담과 생각을 많이 전해줬다. 그 가운데, 이해하기 힘든 부분도 있었지만 이해하기 위해서 남에게 설명하려는 시도를 해보니, 저자가 말하고자하는 바를 조금 더 이해할 수 있었다.

아래는 저자가 줄곧 주장하는 한 줄이다.

 객체지향은 수동적으로 행동하고, 절차지향은 능동적으로 행동한다

 그 외에도 Immutable Class의 장점에 대해서 구체적으로 설명해준다. 그 부분도 꽤 인상깊었다. 키워드 몇 개로 알고 있는 나의 지식에 살을 입혀줬다

 그 외에도 다양한 관점으로 생각 해볼만한 주제들이 가득해, 읽는 내내 상상의 나라를 펼칠 수 있는 좋은 기회였다.

 자세한 내용과 각 절에 대한 나의 이해, 그리고 저자가 하고자 하는 말을 정리하여 아래 Github Repo 로 정리했다.

혹시라도 읽고, 상반되는 의견은 코멘트를 달아주면 좋겠다. 그럼 나도 나의 생각을 또다시 정제하는 시간을 가질수 있을 테니.

저장소 링크

 

댓글