로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

Head First Object Oriented Analysis & Design : 세상을 설계하는 객체지향 방법론

   
지은이 브렛 맥래프린/신광연   |   출판사 한빛미디어  |   발행일 2007년 05월 30일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 28,000원27,440원 2%
마일리지 0% 0원
발행일 2007-05-30
ISBN 8979144946 | 9788979144949
기타정보 번역서 | 636쪽
예상출고일
배송비 무료배송
   
프로그래밍
종합지수 15p 18 위
   
이 책의 원서
  Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to Ooa&d
O'REILLY | David Wood
 

객체지향 개발 방법론은 소프트웨어의 정적인 데이터 측면과 동적인 기능 측면을 모두 중시한 시스템을 개발할 때 요구되는 여러가지 강력한 모델링 개념과 캡슐화 개념 등을 잘 지원하고 있다.
이러한 객체 지향 방법론은 구조적 개발 방법론에 비해 소프트웨어 분석, 테스트, 유지보수, 확장 등을 쉽게 해주며, 분명하면서도 잘 이해할 수 있는 설계 결과를 만들어 낸다.
이 책은 객체 지향 분석 및 설계(object- orient analysis and design) 방법론을 처음 접하는 개발자들이 확실하게 개념을 잡을 수 있게 도움을 준다.

객체지향 분석 설계, 이제 이 책으로 시작하세요.
전문가들에게만 유용한 객체지향 분석 설계 책들에 질리셨죠? 객체지향 분석 설계가 당신의 상사와 고객을 만족시킬 수 있는 소프트웨어를 만드는데 도움을 준다고 말들을 합니다. 그런데 어떻게 하는 걸까요?
이 책은 복잡한 객체지향 소프트웨어(재사용성, 유지보수성, 확장성이 좋은 소프트웨어, 당신의 머리를 아프게 하지 않는 소프트웨어, 예전 기능을 손상시키지 않고 새로운 기능을 추가할 수 있게 하는 소프트웨어)를 어떻게 분석, 설계, 작성하는지를 보여줍니다.

어떤 독자를 위한 책인가?
. 객체지향 분석 설계를 처음 공부하는 소프트웨어 개발자에게 추천합니다.
. 레퍼런스 서적이 아니라 학습서이기 때문에 전문 객체지향 디자이너/개발자에게는 어울리지 않습니다.
. 이 책은 분석과 설계에 초점을 맞추고 있고, 독자가 자바의 기본은 안다고 가정하고 있습니다. 자바를 아주 잘 알아야 하는 것은 아니지만 Head First Java 한 권 정도를 읽거나 자바를 모르더라도 C#을 안다면 코드 예제의 대부분을 이해할 수 있습니다. 그리고 C++를 잘 알아도 괜찮습니다.
. 이 책은 앞에서 배운 내용을 알아야만 뒷부분의 내용을 이해할 수 있는 형태로 만들었기 때문에, 적어도 처음 읽을 때는 맨 앞부터 순서대로 읽어야 합니다.

여러분의 뇌를 객체지향 구조로 바꿔드립니다.
이 책은 재사용성, 유지보수성, 확장성 등이 우수한 객체지향 소프트웨어를 어떻게 분석, 설계, 작성하는지를 보여줍니다.
이 책에서 다음과 같은 내용을 배웁니다.

- 캡슐화, 위임 등의 객체지향 원리를 사용해서 유연한 소프트웨어를 만드는 방법
- OCP(Open-Closed Principle)와 SRP (Single Responsibility Principle)를 적용하여 코드의 재사용성을 높이는 방법
- 객체지향 원리와 디자인 패턴, 그리고 다양한 개발 방법론이 객체지향 분석 설계 프로젝트에 어떻게 들어 맞는지 배웁니다.
- UML과 유스케이스, 그리고 다양한 다이어그램들을 사용해 모든 프로젝트 참여자들의 의사소통을 명확히 하는 방법

이 책은 여러분 머리의 동작원리를 이용해 복잡한 정보를 배우면서 습득하는 시간을 단축시킵니다. 아마 재미있을 것이고, 많이 배울 것이며, 이 책을 마치면 계속해서 좋은 프로그램을 만들 수 있을 것입니다.

1장. 위대한 소프트웨어는 여기에서 시작된다

락앤롤은 영원하다!
릭의 빛나는 새 프로그램...
여러분이라면 무엇을 먼저 바꾸겠습니까?
위대한 소프트웨어는...
쉬운 3단계로 위대한 소프트웨어 만들기
우선 기능에 중점을 두세요
테스트 구동
문제점 찾아보기
분석
객체지향의 기본 원리 적용
설계 한 번하고, 설계 두 번하고
여러분의 프로그램을 수정하는 것이 어느 정도 쉬운가요?
변하는 것을 캡슐화하세요
위임
위대한 소프트웨어(지금에는)
OOA&D는 위대한 소프트웨어를 작성하는 방법에 관한 것입니다
핵심 정리

2장. 그들에게 원하는 것을 주세요

새로운 프로그래밍 일이 생겼습니다
테스트 구동
잘못된 사용(일종의)
요구 사항이 무엇입니까?
요구 사항 리스트 만들기
문제 발생에 대한 계획안
시스템의 문제는 대체 경로가 해결
유스케이스를 소개합니다
하나의 유스케이스, 세 가지 부분
유스케이스를 가지고 요구 사항 체크하기
여러분의 시스템은 실제 상황에서 동작해야 합니다
행복한 경로 알아보기
OOA&D 도구 상자

3장. 당신을 사랑해요. 당신은 완벽해... 그런데 이건 좀 바꿨으면

당신은 나의 영웅입니다!
당신은 바보입니다!
소프트웨어 분석과 설계에서 변하지 않는 한 가지
선택 경로? 대체 경로? 구별이 어려워요!
유스케이스는 여러분이 이해하기 쉬워야 합니다
시작부터 끝: 하나의 시나리오
대체 경로의 고백
요구 사항 리스트 끝내기
중복 코드는 나쁜 생각입니다
마지막 테스트 구동
여러분 스스로의 디자인 원리를 쓰세요
OOA&D 도구 상자

4장. 여러분의 소프트웨어를 실제 세상으로...

강아지 한 마리, 강아지 두 마리, 강아지 세 마리, 네 마리
프로그램은 동작 환경이 있습니다
문제 찾기
해결 방안의 계획
두 프로그래머의 이야기
위임으로 우회
느슨하게 결합된 프로그램의 힘
유스케이스에서 명사들에 주의를 기울이세요
분석을 잘해서 적당한 클래스 찾기
클래스 다이어그램의 분해
클래스 다이어그램이 전부는 아닙니다
핵심 정리

5장. (part1) 변하지 않는 것은 없다

릭의 기타는 번창하고 있습니다
추상 클래스
클래스 다이어그램 분석(다시)
UML 컨닝 페이퍼
디자인 문제 경고
위대한 소프트웨어로 향하는 3단계(예전에 한 내용)

(막간) 객체 지향 대참사!

(part2) 여러분의 소프트웨어를 운동시켜서 튼튼하게 만드세요

릭의 검색 도구로 다시 돌아가서
search() 메쏘드 자세히 살펴보기
분석을 통해 얻은 것
클래스들을 행동(behavior)에 관한 것입니다
디자인 (결정)의 죽음
잘못 내린 디자인 결정을 바꾸세요
릭 프로그램에서의 “이중 캡슐화”
실수하는 것을 두려워하지 마세요
릭의 유연한 프로그램
잘 디자인된 릭의 프로그램 시험 구동
릭의 소프트웨어를 변경하는 것이 얼마나 쉬운가요?
위대한 변경 용이성 문제
응집된 클래스는 하나의 일을 정말 잘합니다
디자인/응집도 생명 주기
위대한 소프트웨어는 “충분히 좋습니다”
OOA&D 도구 상자

6장. “내 이름은 아트 반델리... 나는 건축가예요”

큰 문제 해결하기
큰 문제를 어떻게 바라보는 가에 해답이 있습니다
요구 사항과 유스케이스로 시작하는 것도 좋습니다
공통점과 차별성
특징들 찾아 내기
특징과 요구 사항의 차이점
유스케이스는 개발 시스템 전체의 큰 그림을 보는 데 항상 도움이
되지는 않습니다
유스케이스 다이어그램
작은 액터
액터들도 사람입니다. (항상 그렇지는 않지만)
도메인 분석을 좀 해 봅시다
나눠서 정복하기
고객이 정말 누구인지 잊지 마세요
디자인 패턴이 뭐죠?
OOA&D(와 약간의 상식)의 힘
OOA&D 도구 상자

7장. 혼란스러운 세상에 질서를

어떻게 할지 좀 막막하죠?
우리는 아키텍처가 필요합니다
기능부터 시작합시다
무엇이 아키텍처적으로 중요합니까?
아키텍처에 관한 세 가지 질문
위험 줄이기
시나리오들이 위험요소를 줄이는 데 도움이 됩니다
한 번에 하나의 특징에 집중하세요
아키텍처는 디자인의 구조입니다
공통점 다시 보기
공통점 분석
무슨 뜻이죠? 고객에게 물어보라니
위험을 줄이는 것이 위대한 소프트웨어를 만드는 데 도움이 됩니다
핵심 정리

8장. 독창적인 디자인은 정도껏

디자인 원리 정리
개방-폐쇄의 원리(Open-Closed Principle, OCP)
OCP를 단계적으로 살펴보기
반복 금지의 원리(Don’t Repeat Yourself Principle-DRY)
DRY는 하나의 요구 사항은 한 곳에 두어야 한다는 원리입니다
단일 책임의 원리(Single Responsibility Principle, SRP)
여러 개의 책임을 찾아내기
여러 개의 책임들을 하나의 책임으로 바꾸기
리스코프 치환 원리(LSP)
잘못된 상속 사용: 사례 연구
LSP는 여러분이 설계한 상속 구조의 숨겨진 문제점을 찾아 줍니다.
자식 타입은 부모 타입이 사용되는 곳에 대체되어 사용될 수 있어야 합니다
LSP를 위반하면 혼란스러운 코드가 됩니다
다른 클래스에 기능을 위임(Delegation)하기
구성(Composition)을 사용해서 다른 클래스들의 행동을 조합하기
집합(Aggregation): 갑자기 사라지지 않는 구성(Composition)
집합 (Aggregation) 대 구성(Composition)
상속은 선택 사항 중 하나일 뿐
핵심 정리
OOA&D 도구 상자

9장. 소프트웨어는 여전히 고객을 위한 것입니다.

여러분의 도구 상자는 채워지고 있습니다
여러분은 반복 작업을 통해 위대한 소프트웨어를 작성합니다
반복 심화 작업: 두 가지 기본적인 선택
특징 주도 개발(Feature driven development)
유스케이스 주도 개발(Use case driven development)
개발의 두 가지 접근 방식
특징 분석
테스트 시나리오 작성하기
테스트 주도 개발(test driven development)
공통점 분석
공통점 강조하기
캡슐화 강조하기
테스트를 설계에 적용하세요
테스트 케이스 해부...
여러분 자신을 고객에게 입증해 보이세요
우리는 지금까지 약정(contract)에 의해 프로그램을 작성했습니다
약정에 의한 프로그래밍이란 정말로 모두 믿음에 관한 것입니다
방어적 프로그래밍(depensive programming)
어플리케이션을 기능의 작은 덩어리도 나누어 보세요
핵심 정리
OOA&D 도구 상자

10장. 종합하기

OOA&D 스타일로 소프트웨어 개발하기
객체 마을 지하철 문제
객체 마을 지하철 노선도
특징 리스트
유스케이스는 사용법을 반영하고, 특징은 기능을 반영합니다
반복 작업(iteration) 시작하기
지하철 표시하기에 대해 자세히 살펴보기
Line 클래스를 사용하느냐, 마느냐
객체 마을 Subway (클래스)의 흥미로운 점들
당신의 클래스들 보호하기
휴식 시간
요구 사항 단계로 돌아가기
코드에 집중하고, 다음 고객들에게 집중하세요
반복 작업은 문제를 쉽게 합니다
경로는 어떻게 생겼나요?
스스로 객체 마을 지하철 시스템을 점검해보세요
반복 작업 #3, 누구든지?
여행은 끝나지 않았습니다...

부록 A. 10개의 핵심 토픽 (우리가 다루지 않았던)

#1. IS-A와 HAS-A
#2. 유스케이스 형식
#3. 안티 패턴
#4. CRC 카드
#5. 메트릭(Metrics)
#6. 시퀀스 다이어그램(Sequence Diagram)
#7. 상태 다이어그램(State Diagram)
#8. 단위 테스팅(Unit testing)
#9. 코딩 규칙과 읽기 쉬운 코드
#10. 리팩토링(Refactoring)

부록 B. 객체지향 언어로 말하기

UML과 클래스 다이어그램
상속
다형성
캡슐화
핵심 정리
브렛 맥래프린
어쿠스틱 핑거스타일 블루스와 재즈,그리고 하이엔드 맞춤 악기에 빠져있는 사람들은 지갑을 잘 열지 않습니다. 브렛 맥래프린은 이런 현실을 여전히 거부하고 싶은 기타 연주가입니다. 그런데 그는 사람들을 더 나은 프로그래머로 만들 수 있는 그런 책을 쓴다면 돈을 벌 수 있다는 사실을 최근 깨달았습니다. 그는 이 사실에 행복해 합니다.
브렛이 Head First의 세상을 접한 것은 Nextel Communications and Allegiance Telecom에 엔터프라이즈 자바 애플리케이션을 만들어주고 있을 때였습니다. 일이 좀 시들해지자 브렛은 애플리케이션 서버를 뜯어보기로 했습니다. 그것은 루트리스 엔하이드라라는 이름의 서블릿 엔진이자 EJB 컨테이너였습니다. 그러면서 브렛은 오픈소스에도 관심을 갖게 되었고, 자카르타 터빈, JDOM 같은 멋진 프로그래밍 도구를 만드는데도 기여했습니다. 브렛에게 하고 싶은 말이 있다면 brett@oreilly.com으로 메일을 보내세요.

게리 폴리스
게리 폴리스는 업계에서 35년 이상을 커서 되고 싶은 사람이 어떤 사람인지 알아내려고 아직도 노력하는 자칭 심술쟁이(까다롭고, 성질이 고약하고, 대개 늙은 사람)입니다. 아직 다 크진 않았지만, 2003년 대학으로 옮겨 다음 세대의 소프트웨어 개발자들을 “ç고객을 위해 개발하라, 팀원으로 일하는 법을 배워라, 설계와 코드의 품질과 우아함, 정확성이 중요하다, 위대한 컴퓨터 매니아라면 바보 같다는 소리를 들어도 괜찮다”ç는 급진적인 생각을 전파하고 있습니다.
게리는 워세스터 폴리테크닉 대학의 실무 교수(교수가 되기 전에 실무 경험이 있음을 의미)입니다. 그의 아내 비키와 알로이시어스, 이크나티우스라는 두 마리의 개와 메사추세츠에 살고 있습니다. 그의 홈페이지는 http://web.cs.wpi.edu/~gpollice/에서 방문할 수 있습니다. 언제든지 방문해 책에 대한 불평이나 칭찬을 남겨 주세요.

데이브 웨스트
데이브 웨스트는 자신을 이슬람교도라고 설명하고 싶어 합니다. 하지만 아무도 그를 그렇게 설명하지 않습니다. 사람들은 그를 소프트웨어 개발 방법을 열정과 에너지를 가지고 설명하는 영국인이라고 합니다. 최근에 이바 야콥슨 컨설팅으로 옮겨서, 미국 지사를 경영하고 소프트웨어 개발에 대한 얘기와 럭비, 축구에 대한 얘기, 그리고 크리켓이 야구보다 더 재미있다는 주장을 하고 있습니다.
이바 야콥슨 컨설팅 미국 지사를 운영하기 전에, 래쇼날 소프트웨어(지금은 IBM에 합병)에서 오랫동안 일했습니다. 래쇼날과 IBM에서 RUP를 위한 프로덕트 매니저를 포함해 많은 경험을 하였고, 프로세스 플러그인과 RUP의 애질리티(agility)에 대한 개념을 소개했습니다. 데이브의 이메일은 dwest@ivarjacobson.com입니다.

신광연
삼섬 SDS(주)에서 웹서비스 개발을 담당하고 있습니다.

박종걸
(주)Visoft에서 BPMS(Business Process Management System) 관련 개발을 담당하고 있습니다.


잘 설계된 프로그램은 위대한 프로그램입니다
박민근님이 쓰신 서평보기 I 평점 I 조회수(2105) I 공감 (0) I 블로그
프로그램을 개발하는 사람의 필독서
설계에 취약한 개발자에게...
이성민님이 쓰신 서평보기 I 평점 I 조회수(1500) I 공감 (0) I 블로그
설계에 매우 취약한 3~4년차 개발자에게 추천하고 싶습니다. 이책을 보시고... 헤드퍼스트 디자인 패턴을 보시고... 그리고 UML DISTILLED를 보신다면.... 설계나 객체지향에 대한 자신감이 한층 증대될것입니다.
한번쯤은 볼만한 책...
정재열님이 쓰신 서평보기 I 평점 I 조회수(1449) I 공감 (0) I 블로그
분석설계를 설명한 서적으로는 이해 위주로 쉽게 설명되어있습니다. 다른 책과 달리 헤드퍼스트의 독특한 방식 저술로 만화책처럼 쉽게 이해할 수 있도록 구성되어 있어서 좋구요..  자바 실무를 3년 이상했습니다만, 헤드퍼스드를 구입해서 다시 읽어볼 생각으로  지금 한권 한권 구매하고 있지요.. 강추까지는 아니더라 한번씩 볼 필요가 있지 않을까  생각됩니다. 
괜찮은책
송재운님이 쓰신 서평보기 I 평점 I 조회수(1197) I 공감 (0) I 블로그
저번에 스토리가 있는 디자인 패턴도 그렇고..이번 세상을 설계하는 객체지향 방법론..도..스토리가 있어서 참 좋은거 같다. 예전에 헤드퍼스트 시리즈를 첨 사봤을때는..너무..정신없게..써놔서..싫었는데..이제는..그 정신없이 써놓은 글귀들이..참..주옥같은 글인거 같다. 기존 다른 책들은 모르겠지만..디자인 패턴 책이나..이번 책인 객체지향 방법론 책은각 챕터마다..하나의 프로젝트를 구현해가면서.. 그 챕터에 주제에 맞는 문제를 놓고..책속의 상반된 의견을 가진 개발자들...
도대체 OOA&D 가 뭐야?
장회수님이 쓰신 서평보기 I 평점 I 조회수(2182) I 공감 (0) I 블로그
이 책은 책의 제목 대로 OOA&D 를 어떻게 받아 들일것인가에 대한 내용이다. 지금껏 방법론에 대한 책들, 객체 지향 원론에 대한 책들, 클래스 설계에 대한 책들은 많으나 이렇게 상식적인 수준으로 그 과정들을 포괄해서 설명한 책은 내가 본 책들 중엔 처음인듯 싶다. 다만, 다 읽고 났을 때 남는 것은 “그래 과정은 알겠는데… 그럼 어떻게 해야 하는데?” 라는 의문이 생길 수 있다. 그럼에도 이 책이 정말 좋다고 느끼는 것은 객체지향적으로 접근 할 때 어떤 것에 주안점을 두고...
Node.js 교과서...
조현영
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
조슈아 블로...
리차드 리스...
마이클 밀튼...
 
전체평균(22)
회원평점   회원서평수 5
잘 설계된 프로그램은 위대한 프로그램입니다
박민근 님  2009-03-17
설계에 취약한 개발자에게...
이성민 님  2008-07-16
한번쯤은 볼만한 책...
정재열 님  2007-11-28
괜찮은책
송재운 님  2007-07-16
도대체 OOA&D 가 뭐야?
장회수 님  2007-06-15
한빛미디어 출판사의 신간
데이터 사이언스 스쿨(수학 편)
김도형 저
49,500원
(10%↓+5%)
 
미술관에 GAN 딥러닝 실전 프로젝트
데이비드 포스터 [옮긴이]박해선 저
0원
(0%↓+1%)
 
미술관에 GAN 딥러닝 실전 프로젝트
데이비드 포스터 [옮긴이]박해선 저
28,800원
(10%↓+5%)
 
C++ 최적화
커트 건서로스 [옮긴이]옥찬호 저
34,200원
(10%↓+5%)
 
리얼블라디보스톡

12,150원
(10%↓+5%)
 
이메일주소수집거부