객체지향의 사실과 오해

 

개발서적 “객체지향의 사실과 오해”을 읽고 쓰는 서평입니다.


객체지향은 무엇인지 생각했을 때, 가장 먼저 떠오른 것은 클래스였다. 나와 같이 생각한 사람도 더러 있을 텐데 과연 “객체지향=클래스가 맞는걸까?” 라는 오해를 풀고 객체의 개념과 객체간 메세지를 주고받는 본질을 알려준다.

책을 읽고 난후 나만의 단어로 객체지향을 이해했다. 객체지향에서 중요한 것은 객체라는 이름의 역할을 할당하는 것이다. 객체지향에서 각 객체끼리는 스스로의 역할을 다하기도 하고, 다른 객체와 협력도 한다. 협력시에 메시지 전송(메소드)로 혹은 데이터를 요청한다. 이때 스스로에게 주어진 역할에 책임을 지고, 요청 외 자신이 가진 상태의 접근을 막는다.

클래스에 눈이 멀어 어떻게 중복된 코드를 없앨지에 매몰되어 수행하는 관점을 놓쳤다. 중복을 신경쓰다보니 무엇을 행할지 보다, 무엇을 들고 있고 들고있는 것을 줄일지 밖에 생각하지 않았다. 심지어 상태는 들고 있으면 있을 수록 클래스와 프로그램의 복잡도와 결합도를 올린다는 것을 알면서도 말이다. 상태는 필요로 따라오는 것이지 그 자체가 객체지향의 본질은 아니다.

뻔한 책일거라고 예상했지만, 기본기를 되짚어 본다는 점에서 좋은 환기가 됐다. 전반부는 오해를 지적하는 점에서 알차게 느껴졌다. 하지만 후반부는 다소 뻔한 객체지향 설명이었어서 나는 빠르게 넘겼다.

기본적으로 객체지향을 다뤄보고 이해하는 독자를 대상으로 하고 있다. 혹시나 이 리뷰를 보고 사려는 독자에게는 개발 경력초기에 읽기보다는 프로젝트와 다양한 구조를 경험하고, Back to the Basic차 읽는 것을 추천한다.