객체지향의 사실과 오해 : 역할, 책임, 협력 관점에서 본 객체지향 - 위키북스 IT Leaders 23

객체지향의 사실과 오해 : 역할, 책임, 협력 관점에서 본 객체지향 - 위키북스 IT Leaders 23

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

조영호

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

목차

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

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

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

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

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

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

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

출판사 서평

현재의소프트웨어개발에있어가장중요한패러다임이객체지향이라는사실에대부분이견이없을것이다.절차형패러다임을접목한C++나함수형패러다임을접목한Scala나Java8과같은멀티패러다임언어들이인기를끌고있지만여전히그중심에는객체지향패러다임이위치한다.그러나객체지향이소프트웨어개발패러다임에대한패권을쥔이후로많은시간이흘렀음에도소프트웨어개발커뮤니티는여전히객체지향이란무엇인가라는질문에정확하게대답하지못하고있다.
『객체지향의사실과오해』는객체지향이란무엇인가라는원론적면서도다소위험한질문에답하기위해쓰여진책이다.안타깝게도많은사람들이객체지향의본질을오해하고있다.가장널리퍼져있는오해는클래스가객체지향프로그래밍의중심이라는것이다.객체지향으로향하는첫걸음은클래스가아니라객체를바라보는것에서부터시작한다.객체지향으로향하는두번째걸음은객체를독립적인존재가아니라기능을구현하기위해협력하는공동체의일원으로바라보는것이다.세번째걸음을내디딜수있는지여부는협력에참여하는객체들에게얼마나적절한역할과책임을부여할수있느냐에달려있다.객체지향의마지막걸음은앞에서설명한개념들을프로그래밍언어라는틀에흐트러짐없이담아낼수있는기술을익히는것이다.
이책의목적은특정한기술이나언어를설명하는데있지않다.대신객체지향적으로세상을바라본다는것이무엇을의미하는지를설명하는데있다.이를위해많은사람들이가지고있는객체지향에관한잘못된편견과선입견의벽을하나씩무너트려가면서객체지향이추구하는가치를전달한다.

이책을읽고나면기존의선입견에서ㅁ벗어나다음과같은객체지향의진실과마주하게될것이다.
◎객체지향의핵심은역할,책임,협력이다.
◎객체지향설계의목표는자율적인객체들의협력공동체를만드는것이다.
◎객체지향은클래스를지향하는것이아니라객체를지향하는것이다.클래스는단지구현메커니즘일뿐이다.
◎자율적인책임이자율적인객체와유연한설계를낳는다.
◎객체지향은안정적인도메인구조에불안정한기능을통합한것이다.
◎객체가메시지를선택하는것이아니라메시지가객체를선택하게해야한다.