본문 바로가기
728x90
반응형

- Why?

이 책을 현재 중간(3장)까지 봤다...! 흔히들 자바에서 객체지향은 class를 잘 설계하는거라고 말한다

이건 틀린말이다!! C++, JAVA에서의 객체지향적인것은 우리가 뻘코딩을 하고 프레임워크에서 아키텍처를 나누는거보다 좀 더 심오하더라

그리고 개발자라면 한번쯤은 꼭 읽어야 할 책이라서 주제로 선정했다.

추가로 총 페이지도 250페이지 정도로 가볍게 읽을 책으로 충분했다. 하지만 정말로 개발을 해 본 사람이라면 말 그대로 객체지향에 대한 '사실'과 '오해'를 알 수 있는 내용이었다.

- 목차

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

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

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

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

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

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

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

 

728x90
반응형

'Study > 객체지향의 사실과 오해' 카테고리의 다른 글

5장: 책임과 메시지  (0) 2021.09.10
4장: 역할, 책임, 협력  (0) 2021.08.18
3장: 타입과 추상화  (0) 2021.08.16
2장: 이상한 나라의 객체  (0) 2021.08.06
1장: 협력하는 객체들의 공동체  (1) 2021.08.02

댓글