[개발] 객체지향의 사실과 오해
https://product.kyobobook.co.kr/detail/S000001628109
이 책의 목적은 특정한 기술이나 언어를 설명하는 데 있지 않다. 대신 객체지향적으로 세상을 바라본다는 것이 무엇을 의미하는지를 설명하는 데 있다. 이를 위해 많은 사람들이 가지고 있는 객체지향에 관한 잘못된 편견과 선입견의 벽을 하나씩 무너트려가면서 객체지향이 추구하는 가치를 전달한다.
- 책 소개 중
책 소개에서 나와있는 것 처럼, 이 책은 철저하게 객체지향적으로 요구사항을 분석하고, 어플리케이션을 구성하는 "방법론"에 집중하고 있다. 그리고, 이 책에서 다루는 핵심 메시지들은 객체지향을 이해하는데 있어 정말 중요하다고 생각된다.
책에서는 반복해서 "객체지향의 핵심은 클래스가 아닌, 협력과 메시지이다." 라고 설명한다. 또, "어플리케이션은 각자 자율적으로 동작하는 객체들의 협력으로 이루어져야 한다."라고 설명하기도 한다. 객체지향적 설계에서 요구사항을 분석할 때 클래스 대신 협력에 집중하며 분석을 하는 것은 결과적으로 각 객체가 자율적으로 기능하도록 만들어 준다고 생각한다.
또, "메시지가 객체를 선택하도록 하라" 라는 설명을 통해 객체지향의 큰 특징인 다형성을 설명하기도 한다.
책은 250 페이지를 조금 넘는데, 말하고자 하는 핵심 메시지는 명확하기에 계속 같은 이야기만 반복하는 것 처럼 느껴질 수도 있다. 각 챕터마다 강조하는 내용이 조금씩 다르기는 하나, 전체적으로 설명을 전개하는 흐름에서 비슷한 내용이 여러번 반복 되기에 읽기에 루즈해진다고 느꼈다.
책의 상당부분이 코드를 사용한 설명이 아닌, 실생활의 예시를 활용하고 있는데, 이 부분은 호불호가 갈릴 수 있는 영역이라 생각한다. 나의 경우 "프로그래머는 코드로 이해한다" 라는 주의인지라, 책의 내용에 대한 보충 설명이 되어 줄 예제 코드가 없어 아쉬웠다. 반대로, 아직 프로그래밍 언어가 익숙하지 않은 독자에게는 코드를 통해 설명하는 부분이 적을수록 더욱 편하게 읽지 않을까 싶기도 하고...
이 책은 객체지향적 접근에 대한 정말 중요한 메시지들을 설명하고 있지만, 처음 객체지향을 접하는 독자가 읽기엔 꽤나 어려울 것 같다. 책에서 말하는 내용을 이해하기도 어려울 뿐더러, 크게 와닿지 않을 것 같다. 때문에 객체지향에 대해 조금이라도 고민을 해 보고 개발 경험이 조금은 있는 사람이 읽으면 크게 도움을 받을 수 있을 것 같다.
"객체지향을 모르는 사람"이 아닌, "객체지향을 오해하고 있는 사람"을 위한 책이라 생각한다.