제목: 객체지향의 사실과 오해
부제: 역할, 책임, 협력 관점에서 본 객체지향
저자: 조영호
객체지향의 사실과 오해
위키북스 IT Leaders 시리즈 23권. 객체지향이란 무엇인가? 이 책은 이 질문에 대한 답을 찾기 위해 노력하고 있는 모든 개발자를 위한 책이다.
www.aladin.co.kr
만약 프로그래밍은 한 번이라도 배운 적이 있다면, 객체지향이라는 단어를 접해본 적 있을 것입니다.
그리고 객체지향을 클래스로 설명하는 글을 본 적이 있을 것입니다.
하지만 객체지향을 공부할수록, 즉 상속과 다형성 등에 대해서 학습할수록 객체지향의 패러다임을 클래스로 설명하는 것에 묘한 괴리가 있다는 것을 느끼는 사람도 있을 수 있다고 생각합니다. 저도 공부를 하면서 혼란스럽고 정리되지 않는 묘한 불편함이 있었습니다.
객체지향은 클래스인가?
제가 생각하는 객체는 인간의 몸이라는 애플리케이션을 동작시킬 수 있도록 끊임없이 협력하는 세포에 가깝다고 생각했기 때문입니다. 그리고 세포를 구현하기 위해서 사용하는 도구 중 하나가 클래스라고 이해했습니다.
하지만 많은 책과 인터넷 강의에서는 객체지향을 클래스로 설명하고, 상속과 다형성에 대해서는 붕어빵과 붕어빵 틀, 자식과 부모에 빗대어 설명했습니다. 이러한 설명은 객체지향의 혼란만 가중시켰습니다.
그러던 중 소위 토끼 책이라고 불리는 객체지향의 사실과 오해라는 책을 접하게 되었습니다.
그리고 이 책을 통해서 묘한 괴리를 한방에 정리할 수 있었습니다.
책에서는 객체를 바라볼 때 상태와 행위를 가진 구현체가 아닌, 객체와 객체의 협력 관계에서부터 시작되어야 한다고 설명합니다.
단순히 상태와 행동에 기반해서 객체를 설계하는 것이 객체지향이 아니라, 객체지향의 핵심은 다음과 같다고 설명합니다.
객체지향의 핵심은 클래스를 어떻게 구현할 것인가가 아니라 객체가 협력 안에서 어떤 책임과 역할을 수행할 것인지 결정하는 것이다. [객체지향의 사실과 오해 p.128]
저는 이러한 협력, 역할, 책임의 개념을 통해, 하나의 애플리케이션을 구현하는 것은 작은 유기체들의 협력 관계가 바탕이 되어야 한다. 그리고 협력을 위해서 각 객체는 역할과 책임을 갖는다는 것을 정리할 수 있었습니다.
물론 책에서는 이러한 개념을 실제로 설계하기 위해 필요한 메시지와 메서드의 설계, 자율적인 책임, 구현과 인터페이스의 분리 등에 대해서도 자세하게 설명합니다. 그리고 부록에서는 추상화에 대해서 보다 자세하게 설명합니다.
만약 객체지향이라는 것에 대해서 쉽게 이해하기 힘들거나, 저처럼 묘한 괴리감을 가지고 계신다면 객체지향의 사실과 오해에 대한 책을 한 번쯤 읽어보는 것을 추천해 드립니다.
'Book Review' 카테고리의 다른 글
[짧은 책 리뷰] 성공과 실패를 결정하는 1%의 네트워크 원리 (0) | 2025.10.02 |
---|---|
[짧은 책 리뷰] LUVIT♥ 나의 첫 타입스크립트 프로젝트 (0) | 2025.09.14 |
[짧은 책 리뷰] 스프링 프레임워크 첫걸음 (1) | 2023.11.23 |
[짧은 책 리뷰] 요즘 우아한 개발 (2) | 2023.11.09 |
[짧은 책 리뷰] 모두의 네트워크 (1) | 2023.10.31 |