한빛출판네트워크

IT/모바일

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

한빛미디어

번역서

절판

Head First Object-Oriented Analysis & Design : 세상을 설계하는 객체지향 방법론
좋아요: 26
  • 저자 : 브렛 맥래프린 , 게리 폴리스 , 데이비드 웨스트
  • 역자 : 신광연 , 박종걸
  • 출간일 : 2007-06-28
  • 페이지 : 636쪽
  • ISBN : 9788979144949
  • 물류코드 :1494

합계 : 25,200

  • 여러분의 뇌를 객체지향 구조로 바꿔드립니다.

    이 책은 재사용성, 유지보수성, 확장성 등이 우수한 객체지향 소프트웨어를 어떻게 분석, 설계, 작성하는지를 보여줍니다. 이 책에서 다음과 같은 내용을 배웁니다.
    • 캡슐화, 위임 등의 객체지향 원리를 사용해서 유연한 소프트웨어를 만드는 방법
    • OCP(Open-Closed Principle)와 SRP (Single Responsibility Principle)를 적용하여 코드의 재사용성을 높이는 방법
    • 객체지향 원리와 디자인 패턴, 그리고 다양한 개발 방법론이 객체지향 분석 설계 프로젝트에 어떻게 들어 맞는지 배웁니다.
    • UML과 유스케이스, 그리고 다양한 다이어그램들을 사용해 모든 프로젝트 참여자들의 의사소통을 명확히 하는 방법
    이 책은 여러분 머리의 동작원리를 이용해 복잡한 정보를 배우면서 습득하는 시간을 단축시킵니다. 아마 재미있을 것이고, 많이 배울 것이며, 이 책을 마치면 계속해서 좋은 프로그램을 만들 수 있을 것입니다.

    추천평

    이 책은 객체지향 분석 설계를 새롭게 바라본다. 정말 개발자들이 객체지향 분석 설계를 재미있게 배우고 쉽게 사용할 수 있도록 내용을 구성했다. -이바 야콥슨 (이바 야콥슨 컨설팅)

    재미있는 그림과 폰트 이면에 객체지향 분석 설계에 대한 중요한 개념들이 재치있게 잘 표현되어 있다. 책을 읽으면서, 각 단계별로 어떤 이슈들이 중요한지를 설명해주는 전문 소프트웨어 설계자를 어깨 너머로 바라보는 듯한 느낌을 받았다. - 에드워드 시요르(보스톤 대학, 컴퓨터과학과 부교수)

    이제 막 이 책을 다 읽었는데 너무 좋습니다. 가장 좋은 것은 왜 우리가 객체지향 분석 설계를 하는가에 대해 초점을 맞추었다는 것입니다. (바로 좋은 소프트웨어를 만드는 것이죠)
    - 카일 브라운 (IBM 수석 엔지니어)
  • [저자] 브렛 맥래프린

    저자는 자바와 자바 관련 기술로 애플리케이션 인프라스트럭처를 전문으로 만들어 왔다. 그리고 웹 애플리케이션 개발에서 다시 사용할 수 있도록 자바 서블릿으로 컴포넌트 구조를 작성하는 자바 아파치 프로젝트 터빈(Turbine)의 창립자 중 한 명이다. 또한 오픈 소스 EJB 애플리케이션 서버인 EJBoss 프로젝트와 오픈 소스 XML 웹 출판 엔진인 코쿤의 공헌자이다. 그의 모든 프로젝트는 미션 크리티컬, 고성능을 가진 분산 시스템에서 XML과 J2EE 플랫폼을 사용하는 것에 중점을 둔다. 제이슨 헌터(Jason Hunter)와 함께 자바 프로그램에서 XML을 처리하기 위한 JDOM API를 정의하였다.

    [저자] 게리 폴리스

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

    [저자] 데이비드 웨스트

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

    [역자] 신광연

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

    [역자] 박종걸

    역자 박종걸은 (주)Visoft에서 BPMS(Business Process Management System) 관련 개발을 담당하고 있습니다.
  • 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과 클래스 다이어그램
    상속
    다형성
    캡슐화
    핵심 정리
  •  

  • 내용이 없습니다.
    • 리팩토링: 코드 품질을 개선하는 객체지향 사고법

      마틴 파울러

    • Elemental Design Patterns : 객체지향과 디자인 패턴의 연결 고리

      제이슨 맥컴 스미스

닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?