IT Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 0. 책 소개 - 개발 도서 정독하기

잇트루 2023. 5. 15. 22:23
반응형

객체지향의 사실과 오해

객체지향에는 많은 사람들이 동의하는 공통적인 특징이 있다. 추상화, 캡슐화, 상속, 다형성은 객체지향을 다른 패러다임과 구분하는 중요한 특징이다.

SOLID로 대표되는 몇 가지 원칙들을 사용하면 훌륭한 객체지향 코드를 작성할 수 있다는 사실에 반박하는 개발자들은 그다지 많지 않다. 디자인 패턴 역시 객체지향 프로그래머들이 유용하다고 생각하는 도구 중 하나다.

 

그래서 객체지향이란 무엇일까?

저자는 위 질문에 정답이란 존재하지 않는다고 한다. 중요한 것은 이 질문에 대한 자신만의 견해를 가지고 있느냐다.

대부분의 사람들은 객체지향이란 무엇인가에 대해 자신 있게 대답하지 못한다. 실제로 상속이 무엇인지는 대답할 수 있지만 일반화가 무엇인지에 대해서는 대답하지 못하는 개발자들이 많다.

객체지향이 객체를 지향한다는 사실을 잘 알고 있으면서도 많은 분들이 여전히 클래스나 상속을 중심으로 객체지향을 바라보고 있다.

 

이 책은 객체지향이란 무엇인가라는 원론적이면서도 다소 위험스러운 질문에 대한 저자의 견해를 말하기 위해 쓰였다.

 

객체지향으로 향하는 길

  1. 클래스가 아니라 객체를 바라보는 것에서부터 시작한다.
  2. 객체를 독립적인 존재가 아니라 기능을 구현하기 위한 협력하는 공동체의 존재로 바라본다.
  3. 협력에 참여하는 객체들에게 적절한 역할과 책임을 부여할 수 있어야 한다.
  4. 위 개념들을 사용하는 프로그래밍 언어 틀에 흐트러짐 담아낼 수 있어야 한다.

 

이 책의 목적은 위 4가지 항목들을 재빠르게 내디딜 수 있도록 도움을 주는 것이다. 따라서 객체지향을 더 잘 이해하기 원하는 사람들 또는 객체지향에 대한 오해와 불신을 품고 있는 사람들을 위한 책이다.

 

 

대상 독자

객체지향 프로그래밍 언어를 사용하는 소프트웨어 개발자를 대상으로 한다. 하나 이상의 객체지향 프로그래밍 언어에 능숙하다면 도움이 될 것이다.

개발 경험이 전무하다고 해서 읽을 수 없는 것은 아니지만, 코드를 작성한 경험이 많으면 많을수록, 객체지향 프로그래밍 언어에 대한 지식이 많으면 많을수록 책에 숨겨져 있는 의미를 더 깊이 있게 이해할 수 있을 것이다.

 

 

책 구성

1장. 협력하는 객체들의 공동체

객체지향 패러다임의 핵심이 자율적인 객체들의 협력이라는 사실을 강조한다.

 

2장. 이상한 나라의 객체

‘객체란 무엇인가’라는 본질적인 질문에 대답하려고 한다. 객체가 상태와 행동, 식별자를 가진 존재라는 사실을 이해하게 될 것이다.

 

3장. 타입과 추상화

소프트웨어 개발에서 가장 중요한 개념인 추상화에 대해서 다룬다. 추상화는 동적인 객체들을 단순화시켜 정적인 타입으로 갈무리하는 것이다. 타입의 개념을 이해하고 객체를 구현하기 위해 클래스를 사용하는 이유에 대해 이해하게 될 것이다.

 

4장. 역할, 책임, 협력

객체지향 설계의 가장 중요한 재료인 역할, 책임, 협력에 관해 설명한다. 이는 객체지향의 핵심이라는 것을 알게 될 것이다.

 

5장. 책임과 메시지

훌륭한 메시지가 훌륭한 객체지향 설계의 기반이라는 사실을 강조한다. 객체의 자율성과 설계의 유연성은 얼마나 훌륭한 메시지를 선택하느냐에 달려 있다.

저자는 독자들이 이 책에서 단 하나의 장만 읽겠다고 한다면 5장을 읽기를 권한다.

 

6장. 객체 지도

객체지향이 구조와 기능이라는 두 가지 관점들을 어떻게 조화시키는지에 관해 설명한다. 도메인 모델과 객체지향 패러다임 사이의 관계를 이해할 수 있다.

 

7장 함께 모으기

처음이자 마지막으로 구현 코드가 등장하는 장으로 1장부터 6장까지 다룬 내용을 동작하는 코드를 통해 정리한다.

 

 

https://link.coupang.com/a/YkphA

 

객체지향의 사실과 오해 : 역할 책임 협력 관점에서 본 객체지향

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형