규도자 개발 블로그

객체지향의 사실과 오해 - 조영호 (2015) 본문

Review/Book

객체지향의 사실과 오해 - 조영호 (2015)

규도자 (gyudoza) 2019. 3. 20. 21:59

"객체지향은 현실세계의 모방, 추상화하는 것은 아니다. 소프트웨어 안에 구현된 상품 객체는 실제 세계의 상품과는 전혀 다른 양상을 띤다. 오히려 현실세계를 기반으로 새로운 세계를 창조하는 것과 같다."


이 말이 이 책의 모든 내용을 함축하고 있다. 현실세계의 객체들은 수동적인 자세를 취하고 "인간"이라는 능동적인 객체가 직접적인 영향을 미치지만 소프트웨어세계에는 인간이 없다. 그래서 객체는 스스로 움직여야 한다.

 현실세계에서는 사람이 음료수를 마시지만 소프트웨어세계에서는 사람이 음료수를 직접 마실 수 없다. 사람은 음료수에게 음료수를 이만큼 먹겠다는 메시지를 보내고 음료수는 그 메세지를 수신해서 스스로 그만큼의 양을 줄인다. 이것이 소프트웨어세계에서 객체들이 동작하는 방식이다.

 소프트웨어세계에서는 모든 객체들이 의인화되어 능동적으로 움직이는데 객체의행동은 곧 책임으로 정의할 수 있다. 사람은 음료수를 마실 책임이 있고 음료수를 사람이 먹었다는 메세지를 보냈을 때 줄어들어야 할 책임이 있다.


 이러한 내용들이 이 책의 주내용들이다. 아주 일분일 뿐더러 내가 많이 축약하였다. 이 책은 코드가 아닌 이야기로 객체지향이 무엇이고 어떻게 써야하는지 설명한다. 코드는 마지막단에 한 몇십 줄 정도 있다. 하지만 나도 개발자가 다 됐는지 백날 설명보다 몇 줄의 코드가 훨씬 더 머리에 잘 박히더라.

 소프트웨어가 사람의 삶에 점점 깊숙히 침투하면 할수록 객체지향 패러다임이 점점 각광받는다. class나 object, interface등이 없던 언어들도 객체지향 패러다임을 수용하기 위해 위 기능들을 추가하는 것만 봐도 객체지향이라는 패러다임이 소프트웨어에 얼마나 많은 영향을 끼치고 있는지 알 것이다. 하지만 쓸려면 제대로 알고 써야하지 않을까. 객체지향 패러다임을 적용하여 소프트웨어를 개발하고 있는 개발자들 모두가 읽었으면 하는 책이다. 나도 객체지향이라는 패러다임을 완전히 완전히 소화할 정도로 읽고 또 읽을 예정이다. 나중에 기회가 되면 나도 나만의 시점으로 객체지향이라는 패러다임을 정리하여 블로그에 업로드해야겠다. 아주 좋은 책이다.

Comments