bookseek.
◎ 한국어 ⌄
오브젝트 책 표지

BOOKSEEK BOOK NOTES

오브젝트

조영호 지음

객체지향 개념을 실제 코드의 관계와 설계 판단으로 연결하는 책입니다. 책임 배분과 의존성, 응집도와 결합도, 상속과 합성의 선택을 살피며, 변경할 기능을 가정해 예제를 비교하고 설계의 비용을 질문하는 읽기를 안내합니다.

책의 기본 정보

출판사
위키북스
출간일
2019-06-17
분량
656쪽
ISBN
9791158391409

책의 내용과 읽을 거리

『오브젝트』는 객체지향 개념이 실제 코드에서 어떤 선택으로 나타나는지 살펴보는 설계서입니다. 책임을 배분하는 방법과 의존성 관리, 상속과 합성의 구분을 코드 예제와 연결합니다. 언어의 클래스 문법은 알고 있지만 변경 요청이 올 때마다 여러 곳을 고치게 되는 이유가 궁금한 독자에게 맞습니다.

티켓 판매와 영화 예매 같은 예제를 읽을 때는 완성된 클래스 구조보다 코드가 바뀌는 이유에 주목해 보세요. 같은 기능을 제공해도 한 객체가 너무 많은 사정을 알아야 한다면 변경의 영향이 넓어질 수 있습니다. 예제를 따라가며 어떤 정보가 어디로 이동했는지 표시하면 설계 용어를 실제 수정 지점과 연결할 수 있습니다.

응집도와 결합도는 책에서 설계를 비교하는 판단 기준입니다. 두 용어를 좋은 설계의 구호로 외우기보다 어떤 변경에 함께 움직이는 코드인지 살펴보는 편이 도움이 됩니다. 한 정책이 바뀔 때 수정할 위치를 예상하고 이유를 적어 보세요. 변화의 종류가 다르면 유리한 구조도 달라질 수 있다는 점을 놓치지 않아야 합니다.

의존성 관리 부분은 객체 사이의 연결을 없애는 데 목적이 있지 않습니다. 프로그램은 협력해야 하므로 필요한 연결을 남기면서 무엇을 구체적인 구현에 의존하게 할지 판단해야 합니다. 책의 예제를 읽은 뒤 자신이 예상하는 변경과 아직 예상하지 않는 변경을 나누면 무조건 추상화를 늘리는 독서를 피할 수 있습니다.

상속과 합성은 코드를 다시 사용하는 문제와 타입 관계를 표현하는 문제를 나누어 읽게 합니다. 문법적으로 상속할 수 있다는 사실만으로 그 관계가 적절한지는 알 수 없습니다. 저자의 설명과 코드에서 대체 가능성과 변경 영향을 살펴보고, 더 복잡한 구조를 선택한 대가가 무엇인지 함께 묻는 방식으로 활용하세요.

설계 비교 메모에는 장점만 적지 않는 편이 좋습니다. 의존성을 줄이려고 간접 단계를 추가하면 코드를 처음 읽는 사람에게는 새로운 부담이 생길 수 있습니다. 예제의 선택을 본 뒤 지금 요구하는 변경과 아직 오지 않은 변경을 구별하고, 어느 쪽을 위해 비용을 지불하는지 적어 보세요. 좋은 설계를 한 가지 모양으로 외우기보다 상황에 따라 이유를 설명하는 능력을 점검하는 방법입니다.

소개하는 것은 2019년 종이책이며 최신 프레임워크의 프로젝트 생성이나 배포를 안내하는 책은 아닙니다. 코드 예제를 읽을 수 있는 기본기는 필요합니다. 모든 장의 원칙을 곧바로 팀 규칙으로 만들기보다 작은 예제의 변경 전후를 비교하고, 자신의 프로젝트에서 같은 조건이 성립하는지 검토하는 읽기를 권합니다.

이 책에서 공부할 수 있는 내용

책임 할당, 응집도와 결합도의 비교, 의존성 관리와 유연한 설계를 공부할 수 있습니다. 상속이 표현하는 타입 관계와 합성을 통한 재사용도 주요 범위입니다. 독서 과제로는 기능 변경 한 가지를 정하고 수정할 클래스와 그 이유를 예측한 뒤 실제 예제의 변경과 비교해 보기를 제안합니다.

설명 방식에서 눈여겨볼 특징

  • 구체적 코드 예제: 설계 원칙이 코드의 어느 부분을 바꾸는지 확인합니다.
  • 변경 비용의 비교: 응집도와 결합도를 이용해 구조 선택의 대가를 생각합니다.
  • 의존성의 방향: 객체 간 연결을 무조건 없애기보다 관리하는 이유를 다룹니다.
  • 상속과 합성의 구분: 타입 관계와 코드 재사용을 별개의 질문으로 읽습니다.

이런 독자에게 권합니다

언어 입문을 마치고 작은 프로그램을 작성해 본 독자에게 적합합니다. 개념만 먼저 정리하고 싶다면 『객체지향의 사실과 오해』가 더 가벼운 출발점이 될 수 있습니다. 이 책은 예제를 고치고 비교하는 시간이 필요한 설계 공부용으로 선택하세요.

이 책에서 주로 다루는 내용

  • 사례 코드에서 책임을 나누는 방법
  • 응집도·결합도와 의존성
  • 상속·합성·다형성의 설계 선택

작가 소개

조영호는 객체지향과 도메인 주도 설계를 다뤄 온 개발자이며 『객체지향의 사실과 오해』의 저자입니다. 이 책에서는 코드와 변경 요구를 통해 설계 선택을 설명합니다.

이 책과 함께 읽는 주제