품목정보
발행일 | 2015년 06월 17일 |
---|---|
쪽수, 무게, 크기 | 260쪽 | 590g | 172*235*14mm |
ISBN13 | 9788998139766 |
ISBN10 | 8998139766 |
발행일 | 2015년 06월 17일 |
---|---|
쪽수, 무게, 크기 | 260쪽 | 590g | 172*235*14mm |
ISBN13 | 9788998139766 |
ISBN10 | 8998139766 |
▣ 01장: 협력하는 객체들의 공동체 협력하는 사람들 - 커피 공화국의 아침 - 요청과 응답으로 구성된 협력 - 역할과 책임 역할, 책임, 협력 - 기능을 구현하기 위해 협력하는 객체들 - 역할과 책임을 수행하며 협력하는 객체들 협력 속에 사는 객체 - 상태와 행동을 함께 지닌 자율적인 객체 - 협력과 메시지 - 메서드와 자율성 객체지향의 본질 - 객체를 지향하라 ▣ 02장: 이상한 나라의 객체 객체지향과 인지 능력 객체, 그리고 이상한 나라 - 이상한 나라의 앨리스 - 앨리스 객체 객체, 그리고 소프트웨어 나라 - 상태 - 행동 - 식별자 기계로서의 객체 행동이 상태를 결정한다 은유와 객체 - 두 번째 도시전설 - 의인화 - 은유 - 이상한 나라를 창조하라 ▣ 03장: 타입과 추상화 추상화를 통한 복잡성 극복 객체지향과 추상화 - 모두 트럼프일 뿐 - 그룹으로 나누어 단순화하기 - 개념 - 개념의 세 가지 관점 - 객체를 분류하기 위한 틀 - 분류는 추상화를 위한 도구다 타입 - 타입은 개념이다 - 데이터 타입 - 객체와 타입 - 행동이 우선이다 타입의 계층 - 트럼프 계층 - 일반화/특수화 관계 - 슈퍼타입과 서브타입 - 일반화는 추상화를 위한 도구다 정적 모델 - 타입의 목적 - 그래서 결국 타입은 추상화다 - 동적 모델과 정적 모델 - 클래스 ▣ 04장: 역할, 책임, 협력 협력 - 요청하고 응답하며 협력하는 사람들 - 누가 파이를 훔쳤지? - 재판 속의 협력 책임 - 책임의 분류 - 책임과 메시지 역할 - 책임의 집합이 의미하는 것 - 판사와 증인 - 역할이 답이다 - 협력의 추상화 - 대체 가능성 객체의 모양을 결정하는 협력 - 흔한 오류 - 협력을 따라 흐르는 객체의 책임 객체지향 설계 기법 - 책임-주도 설계 - 디자인 패턴 - 테스트-주도 개발 ▣ 05장: 책임과 메시지 자율적인 책임 - 설계의 품질을 좌우하는 책임 - 자신의 의지에 따라 증언할 수 있는 자유 - 너무 추상적인 책임 - ‘어떻게’가 아니라 ‘무엇’을 - 책임을 자극하는 메시지 메시지와 메서드 - 메시지 - 메서드 - 다형성 - 유연하고 확장 가능하고 재사용성이 높은 협력의 의미 - 송신자와 수신자를 약하게 연결하는 메시지 메시지를 따라라 - 객체지향의 핵심, 메시지 - 책임-주도 설계 다시 살펴보기 - What/Who 사이클 - 묻지 말고 시켜라 - 메시지를 믿어라 객체 인터페이스 - 인터페이스 - 메시지가 인터페이스를 결정한다 - 공용 인터페이스 - 책임, 메시지, 그리고 인터페이스 인터페이스와 구현의 분리 - 객체 관점에서 생각하는 방법 - 구현 - 인터페이스와 구현의 분리 원칙 - 캡슐화 책임의 자율성이 협력의 품질을 결정한다 ▣ 06장: 객체 지도 기능 설계 대 구조 설계 두 가지 재료: 기능과 구조 안정적인 재료: 구조 - 도메인 모델 - 도메인의 모습을 담을 수 있는 객체지향 - 표현적 차이 - 불안정한 기능을 담는 안정적인 도메인 모델 불안정한 재료: 기능 - 유스케이스 - 유스케이스의 특성 - 유스케이스는 설계 기법도, 객체지향 기법도 아니다 재료 합치기: 기능과 구조의 통합 - 도메인 모델, 유스케이스, 그리고 책임-주도 설계 - 기능 변경을 흡수하는 안정적인 구조 ▣ 07장: 함께 모으기 커피 전문점 도메인 - 커피 주문 - 커피 전문점이라는 세상 설계하고 구현하기 - 커피를 주문하기 위한 협력 찾기 - 인터페이스 정리하기 - 구현하기 코드와 세 가지 관점 - 코드는 세 가지 관점을 모두 제공해야 한다 - 도메인 개념을 참조하는 이유 - 인터페이스와 구현을 분리하라 추상화 기법 |
한번만 읽지 마세요! 꼭 여러번 읽으세요!
컴퓨터공학 전공자들한테는 이미 유명한 서적이라 학부생때 구매해서 읽고 스터디도 했는데, 사실 처음볼땐 그렇게 와닿지는 않았습니다. 그냥 객체지향을 설명한 책이라고만 생각했어요.
취업 후 일년정도 지난 후 다시 읽었을땐 객체지향을 이것보다 더 잘 설명할 수 있는 책은 없다고 생각했습니다. 정말 객체지향의 본질을 꿰뚫습니다. 이해하면서 읽으면 정말 매 장마다 성장할 수 있는 책!
저자가 얻은 객체지향에 대한 통찰력을 이상한 나라의 앨리스 등에 비유해서 설명하려는 시도는 나쁘지 않았다.
저자가 객체지향의 핵심을 잘 이해해고 쓴 책이라는 점은 공감한다.
다만, 비유가 너무 장황하고, 설명이 반복적으로 등장해서 짧은 분량의 책임에도 읽는데 지루함이 느껴졌다.
말로 설명하는 대면 교육에서는 중요한 포인트는 여러 차례 강조해서 설명하는 방식을 사용하기도 하는데,
글, 특히 책에서는 반복적인 설명 보다는 중요한 부분을 여러 편집 기법으로 요약하거나 강조하고,
대신에 반복적인 비유를 줄였으면, 훨씬 전달이 잘되고 읽기도 편한 명서가 되지 않았을까 싶다.
한가지 덧붙이자면 객체지향의 기본 개념을 공부하지 않은채 이 책은 보는 것은 큰 도움이 못된다.
반대로 객체 지향의 개념과 함께 SOLID 5원칙을 통찰하고 있고,
디자인패턴도 실무에 적절히 활용 가능하며, 리팩토링과 TDD가 생활화된 개발자라면 이 책을 굳이 읽을 필요가 없다.
읽어봐야 처음에만 비유가 신선하지 이미 알고 있는(이해하고 있는) 내용을 여러 번 비유하면서 설명하는 것이 상당히 읽기 고되고 지루하다.
20대, 30대, 40대, 50대 뒤로 갈수록 평가 점수가 낮아지는 점도 아마도 이 때문일 것이다.
즉, 당신이 객체 지향을 어느 정도 공부했으나 아직 통찰력을 얻지 못해 제대로 객체지향적인 구현을 하고 있는지 확신하지 못하는 학습과 경험이 부족한 개발자라면 이 책은 도움이 될 가능성이 높고,
이미 객체 지향의 개념을 이해했고, 실무에 능숙하게 적용하는 개발자려면
이 책에서 추가로 얻을 통찰력이 많지 않을 것이다.