『객체지향의 사실과 오해』 리뷰 및 정리

Namu CHO
3 min readDec 25, 2023

--

The Essence of Object-Orientation — Roles, Responsibilities, and Collaborations

저는 처음에 안드로이드 개발을 위한 자바 공부를 시작으로 개발에 입문하였지만 그 뒤로는 주로 자바스크립트만 사용하였기 때문에 — 물론 자바스크립트가 멀티파라다임 언어이긴 하지만 — 사실 객체지향과 거리가 먼 개발 생활을 보내고 있었습니다. 따라서 이 책을 추천받아서 읽을 때 매우 가벼운 마음으로 읽게 되었지만 결론적으로는 그 안에 담긴 내용은 객체지향 외에 코딩 적으로도 배울점이 많은 책이었습니다.

『객체지향의 사실과 오해』는 개발 세계가 객체들이 서로의 협력으로 원하는 목표를 이루는 것으로 정의합니다.

객체들은 각자의 책임—행동 — 을 다해야합니다.

다른 객체에게 책임 수행을 요청하는 방법은 요청request가 유일합니다.

그리고 요청에는 무엇을 요청하는지에 대한 메시지와 그 메시지와 관련한 파라메터가 포함되어있습니다.

요청받은 메시지를 처리하는 것이 자신의 책임이기 때문에 메시지는 그 객체의 책임과 연관되어있습니다. — 수신하는 메시지가 그 객체의 책임이 됩니다. —

어떤식으로 책임을 수행할지는 객체가 자율적으로 결정하고, 그 구체적인 행위의 방식을 다른 객체들에게 알리지 않습니다. — 캡슐화 —

데이터는 단순히 책임을 수행하기 위한 행동에 따를 뿐입니다. 객체에서는 책임이 가장 중요합니다.

이 책은 객체지향에 대한 내용을 담고있지만, 저는 왜인지 모르게 『쏙쏙 들어오는 함수형 코딩』책이 생각이 났습니다. 말하는 파라다임은 다르지만 두 책에서 말하는 핵심은 비슷하다고 생각합니다.

『쏙쏙 들어오는 함수형 코딩』책의 핵심은 개발을 액션계산*, 데이터로 구분하는 것입니다.

함수(객체) 단위로 개발을 나누고 액션과 계산(책임, 행동)을 데이터와 분리하여 상호 작용을 하는 부분 및 추상화에 대해 이야기 하는 부분에서 유사성을 느꼈던 것 같습니다.

*액션은 외부에 영향을 주는 코드이며 호출하는 시점과 횟수에 의존합니다.

저자는 더 나아가 ‘분류'의 시초인 아리스토텔레스의 철학을 함께 간단히 설명하며 현재의 객체지향 패러다임은 아리스토텔레스의 분류법의 근간을 형성하는 아이디어에 기반한다고 설명합니다.

이런 본질적인 기원까지 설명해주는 저자의 해박함과 친절함에 매우 감동하였습니다.

자바스크립트처럼 클래스가 존재하지 않는 프로토타입 기반의 언어는 아리스토텔레스의 객관적인 분류 체계가 존재한다는 사상에 대한 철학적 의문에 그 뿌리를 두고 있다. -237 page

관련해서 읽을 거리를 함께 첨부힙니다.

clap을 현재(29 Dec 23) 기준 2.4k 나 받은 유명한 글입니다.

일반적인 기술서들과는 다르게 코드는 거의 없고 편하게 읽을 수 있는 스토리텔링위주로 책이 작성되었기 때문에 읽기가 너무 편했습니다. 다른 개발자분들에게도 추천합니다.

쉽게 읽히는 것에 반하여 책의 내용은 전혀 가볍지 않았습니다. 저자의 개발 내공이 느껴지는 정말 귀중한 지식이 집약된 책이었습니다.

많은 분들에게 강력 추천합니다.

--

--