이번에 객체지향의 사실과 오해라는 책에 대해서 읽게 되었다.
이는 객체지향적 설계를 잘하는 법에 관련하여 서술하고 있었고, 이로 인해 나도 많은 도움을 얻었다.
이 책에서 말하는 객체지향의 오해란 많은 사람들이 객체지향은 현실세계의 모방이라고 생각한다는 것이다.
하지만 책의 작가는 우리가 현실세계에는 없는 객체마저 객체지향의 세계에서는 생성이 가능하기에 객체지향은 현실세계의 모방이 아닌 은유라고 하였다.
예를 들자면 현실세계에서는 전구 스스로 불을 켰다 껐다 할 수 없지만 객체지향의 세계에서는 이것이 가능하며,
이상한 나라의 앨리스를 객체지향 세계로 만든다 하였을 때는 현실세계에서는 존재할 리 만무한 트럼프 인간등이 등장하게 되는 것이다.
따라서 우리는 현실세계의 객체들에 대해 중요한 포인트만 뽑아 객체로 만드는 일반화의 과정을 통해 현실의 객체를 은유하여 객체지향의 세계를 만든다는 것이다.
나 또한 객체지향은 현실세계의 모방이라고 생각하고 있었기에 다소 신선한 느낌을 받을 수 있었고, 이 신선한 느낌으로 다음으로 나오는 역할, 책임, 협력에 관한 내용을 읽을 때 더욱 쉽게 이해할 수 있었다.
객체지향의 설계에 있어 가장 중요한 것은 당연히 객체이다. 이름에서 알 수 있다 시피 객체지향의 주는 객체이며 설계를 할 때에도 어떻게 객체들을 나누어야 할까를 고민해야한다.
이 책은 여기서 객체를 효율적으로 나눌 수 있는 방법을 알려주었다.
객체를 구성하고 있는 역할과 책임, 그 역할과 책임을 분배시켜 주는 객체 간의 협력.
이 3가지가 가장 중요한 키워드 였다.
이 후기록에서 책에서 배운 객체 지향의 설계에 대해서 모두 서술할 수 는 없기에 요점만 간단히 하자면,
협력을 먼저 정하고, 그 협력에 맞는 책임을 나눈뒤, 책임에 맞게 객체를 정하는 순서이다.
설명에서 역할이 빠져서 이상해 보이겠지만, 책임의 집합이 역할이다.
예를 들면 축구선수라는 역할은 패스하기, 슛하기, 드리블하기등 여러가지 책임을 가지고 있는 것 처럼 말이다.
물론 내 필력이 모자라 설명이 난잡하고 중구난방 이겠지만, 이 책은 매우 쉽고 재밌게 객체지향의 세계를 풀어냈고, 요점을 잘 설명해 주었다. 만약 추후에 객체지향 설계에 어려움을 겪게 된다면 다시 이 책을 찾아볼 것 같다.
'백엔드 멘토링' 카테고리의 다른 글
Transaction이란? (0) | 2023.09.23 |
---|---|
2023-08-29 DB 관련 질문 정리 (0) | 2023.08.30 |
자바의 신 - 복습 정리(1) (0) | 2023.08.27 |
RestTemplate vs webClient vs openFeign 차이 (0) | 2023.08.27 |
Car-Racing 토이 프로젝트 step 1 회고록 (1) (0) | 2023.07.11 |