본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

객체지향의 사실과 오해 상세페이지

컴퓨터/IT 개발/프로그래밍

객체지향의 사실과 오해

역할, 책임, 협력 관점에서 본 객체지향
소장종이책 정가20,000
전자책 정가25%15,000
판매가15,000
객체지향의 사실과 오해 표지 이미지

객체지향의 사실과 오해작품 소개

<객체지향의 사실과 오해> 객체지향에 대한 선입견을 버려라!

『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 널리 퍼져있는 오해는 클래스가 객체지향 프로그래밍의 중심이라는 것이다. 객체지향으로 향하는 첫 걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두 번째 걸음은 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 바라보는 것이다. 세 번째 걸음을 내디딜 수 있는지 여부는 협력에 참여하는 객체들에게 얼마나 적절한 역할과 책임을 부여할 수 있느냐에 달려 있다. 객체지향의 마지막 걸음은 앞에서 설명한 개념들을 프로그래밍 언어라는 틀에 흐트러짐 없이 담아낼 수 있는 기술을 익히는 것이다.

객체지향이란 무엇인가? 이 책은 이 질문에 대한 답을 찾기 위해 노력하고 있는 모든 개발자를 위한 책이다.


출판사 서평

현재의 소프트웨어 개발에 있어 가장 중요한 패러다임이 객체지향이라는 사실에 대부분 이견이 없을 것이다. 절차형 패러다임을 접목한 C++나 함수형 패러다임을 접목한 Scala나 Java 8과 같은 멀티패러다임 언어들이 인기를 끌고 있지만 여전히 그 중심에는 객체지향 패러다임이 위치한다. 그러나 객체지향이 소프트웨어 개발 패러다임에 대한 패권을 쥔 이후로 많은 시간이 흘렀음에도 소프트웨어 개발 커뮤니티는 여전히 객체지향이란 무엇인가라는 질문에 정확하게 대답하지 못하고 있다.

『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 널리 퍼져있는 오해는 클래스가 객체지향 프로그래밍의 중심이라는 것이다. 객체지향으로 향하는 첫 걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두 번째 걸음은 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 바라보는 것이다. 세 번째 걸음을 내디딜 수 있는지 여부는 협력에 참여하는 객체들에게 얼마나 적절한 역할과 책임을 부여할 수 있느냐에 달려 있다. 객체지향의 마지막 걸음은 앞에서 설명한 개념들을 프로그래밍 언어라는 틀에 흐트러짐 없이 담아낼 수 있는 기술을 익히는 것이다.

이 책의 목적은 특정한 기술이나 언어를 설명하는 데 있지 않다. 대신 객체지향적으로 세상을 바라본다는 것이 무엇을 의미하는지를 설명하는 데 있다. 이를 위해 많은 사람들이 가지고 있는 객체지향에 관한 잘못된 편견과 선입견의 벽을 하나씩 무너트려가면서 객체지향이 추구하는 가치를 전달한다.

이 책을 읽고 나면 기존의 선입견에서 벗어나 다음과 같은 객체지향의 진실과 마주하게 될 것이다.

- 객체지향의 핵심은 역할, 책임, 협력이다.
- 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다.
- 객체지향은 클래스를 지향하는 것이 아니라 객체를 지향하는 것이다. 클래스는 단지 구현 메커니즘일 뿐이다.
- 자율적인 책임이 자율적인 객체와 유연한 설계를 낳는다.
- 객체지향은 안정적인 도메인 구조에 불안정한 기능을 통합한 것이다.
- 객체가 메시지를 선택하는 것이 아니라 메시지가 객체를 선택하게 해야 한다.


저자 프로필

조영호

  • 경력 개발자

2021.09.16. 업데이트 작가 프로필 수정 요청

객체지향 설계와 도메인-주도 설계에 관심이 많으며 행복한 팀과 깔끔한 코드, 존중과 협력이 훌륭한 소프트웨어를 낳는다는 믿음을 가지고 있는 평범한 개발자다. 개발자, 교육자, 관리자를 오가며 익힌 다양한 경험을 바탕으로 좋은 코드와 함께 좋은 프로덕트를 만들기 위해 노력하고 있다. 저서로 《객체지향의 사실과 오해》가 있다.


저자 소개

객체지향 설계와 도메인-주도 설계에 관심이 많으며 행복한 팀과 깔끔한 코드가 훌륭한 소프트웨어를 낳는다는 믿음을 증명하기 위해 노력하고 있다. LG-CNS, 네이버, 쿠팡을 거치며 개발이라는 창조적인 작업의 즐거움을 만끽했으며, NHN NEXT에서 후배들을 양성하며 지식을 공유하는 즐거움을 누리기도 했다. 현재는 다음카카오에서 사용자에게 가치를 제공할 수 있는 다양한 서비스 개발에 참여하고 있다. 소프트웨어 개발과 관련된 경험과 정보를 공유하기 위해 ‘이터너티(Eternity)’라는 필명으로 블로그(http://aeternum.egloos.com/)를 운영하고 있다.

목차

▣ 01장: 협력하는 객체들의 공동체
협력하는 사람들
- 커피 공화국의 아침
- 요청과 응답으로 구성된 협력
- 역할과 책임
역할, 책임, 협력
- 기능을 구현하기 위해 협력하는 객체들
- 역할과 책임을 수행하며 협력하는 객체들
협력 속에 사는 객체
- 상태와 행동을 함께 지닌 자율적인 객체
- 협력과 메시지
- 메서드와 자율성
객체지향의 본질
- 객체를 지향하라

▣ 02장: 이상한 나라의 객체
객체지향과 인지 능력
객체, 그리고 이상한 나라
- 이상한 나라의 앨리스
- 앨리스 객체
객체, 그리고 소프트웨어 나라
- 상태
- 행동
- 식별자
기계로서의 객체
행동이 상태를 결정한다
은유와 객체
- 두 번째 도시전설
- 의인화
- 은유
- 이상한 나라를 창조하라

▣ 03장: 타입과 추상화
추상화를 통한 복잡성 극복
객체지향과 추상화
- 모두 트럼프일 뿐
- 그룹으로 나누어 단순화하기
- 개념
- 개념의 세 가지 관점
- 객체를 분류하기 위한 틀
- 분류는 추상화를 위한 도구다
타입
- 타입은 개념이다
- 데이터 타입
- 객체와 타입
- 행동이 우선이다
타입의 계층
- 트럼프 계층
- 일반화/특수화 관계
- 슈퍼타입과 서브타입
- 일반화는 추상화를 위한 도구다
정적 모델
- 타입의 목적
- 그래서 결국 타입은 추상화다
- 동적 모델과 정적 모델
- 클래스

▣ 04장: 역할, 책임, 협력
협력
- 요청하고 응답하며 협력하는 사람들
- 누가 파이를 훔쳤지?
- 재판 속의 협력
책임
- 책임의 분류
- 책임과 메시지
역할
- 책임의 집합이 의미하는 것
- 판사와 증인
- 역할이 답이다
- 협력의 추상화
- 대체 가능성
객체의 모양을 결정하는 협력
- 흔한 오류
- 협력을 따라 흐르는 객체의 책임
객체지향 설계 기법
- 책임-주도 설계
- 디자인 패턴
- 테스트-주도 개발

▣ 05장: 책임과 메시지
자율적인 책임
- 설계의 품질을 좌우하는 책임
- 자신의 의지에 따라 증언할 수 있는 자유
- 너무 추상적인 책임
- ‘어떻게’가 아니라 ‘무엇’을
- 책임을 자극하는 메시지
메시지와 메서드
- 메시지
- 메서드
- 다형성
- 유연하고 확장 가능하고 재사용성이 높은 협력의 의미
- 송신자와 수신자를 약하게 연결하는 메시지
메시지를 따라라
- 객체지향의 핵심, 메시지
- 책임-주도 설계 다시 살펴보기
- What/Who 사이클
- 묻지 말고 시켜라
- 메시지를 믿어라
객체 인터페이스
- 인터페이스
- 메시지가 인터페이스를 결정한다
- 공용 인터페이스
- 책임, 메시지, 그리고 인터페이스
인터페이스와 구현의 분리
- 객체 관점에서 생각하는 방법
- 구현
- 인터페이스와 구현의 분리 원칙
- 캡슐화
책임의 자율성이 협력의 품질을 결정한다

▣ 06장: 객체 지도
기능 설계 대 구조 설계
두 가지 재료: 기능과 구조
안정적인 재료: 구조
- 도메인 모델
- 도메인의 모습을 담을 수 있는 객체지향
- 표현적 차이
- 불안정한 기능을 담는 안정적인 도메인 모델
불안정한 재료: 기능
- 유스케이스
- 유스케이스의 특성
- 유스케이스는 설계 기법도, 객체지향 기법도 아니다
재료 합치기: 기능과 구조의 통합
- 도메인 모델, 유스케이스, 그리고 책임-주도 설계
- 기능 변경을 흡수하는 안정적인 구조

▣ 07장: 함께 모으기
커피 전문점 도메인
- 커피 주문
- 커피 전문점이라는 세상
설계하고 구현하기
- 커피를 주문하기 위한 협력 찾기
- 인터페이스 정리하기
- 구현하기
코드와 세 가지 관점
- 코드는 세 가지 관점을 모두 제공해야 한다
- 도메인 개념을 참조하는 이유
- 인터페이스와 구현을 분리하라
추상화 기법


리뷰

구매자 별점

4.5

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

25명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전