간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (23,090원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (17,010원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (19,440원)
(최대할인 4만원 / 2만원 이상 결제)
Close

오브젝트 디자인 스타일 가이드 : 팀의 생산성을 높이는 고품질 객체지향 코드 작성법

소득공제

2013년 9월 9일 이후 누적수치입니다.

공유하기
정가

27,000원

  • 24,300 (10%할인)

    1,350P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 7/5(화) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(14)

  • 상품권

AD

책소개

잘 작성한 객체지향 코드는 읽고 변경하고 디버그하기 즐겁다. 이 책에서 보여주는 객체 디자인에 대한 보편적 모범 사례를 익혀 코딩 스타일을 향상하자. 이 명확한 규칙은 어떤 객체지향 언어에도 적용할 수 있으며, 여러분이 작성하는 코드 전체(code base)의 명확성과 내구성을 최대화하고 여러분과 팀의 생산성을 높인다.

《오브젝트 디자인 스타일 가이드》는 객체지향 코드를 작성하는 많은 전문 기법을 제시한다. 이 책에서 노련한 개발자 마티아스 노박은 객체 구성, 메서드 정의, 상태 변경과 노출 등을 위한 디자인 규칙을 제시한다. 모든 예는 보는 즉시 익숙하게 느낄 의사 코드를 사용하므로 선호하는 언어로 따라갈 수 있다. 객체 디자인에 대한 중요한 시나리오와 도전적인 문제를 사례별로 탐구하고, 여러 객체 타입이 어떻게 함께 효과적으로 작동할 수 있는지 시연하는 간단한 웹 응용 프로그램을 살펴본다.

출판사 서평

★ 이 책에서 다루는 내용 ★

◎ 광범위한 객체에 대한 보편적 디자인 규칙
◎ 객체 테스트 모범 사례
◎ 공통 객체 타입 일람
◎ 객체 디자인 기술을 테스트하기 위한 장별 연습 문제

목차

▣ 01장: 객체로 프로그래밍하기 - 기초
1.1 클래스와 객체
1.2 상태
1.3 행위
1.4 의존성
1.5 상속
1.6 다형성
1.7 구성
1.8 클래스 조직
1.9 반환문과 예외
1.10 단위 테스트
1.11 동적 배열
요약

▣ 02장: 서비스 생성하기
2.1 객체의 두 종류
2.2 의존성과 설정값은 생성자 인자로 주입한다
___2.2.1 짝 지은 설정값은 함께 둔다
2.3 필요한 것의 위치가 아니라 필요한 것 자체를 주입한다
2.4 모든 생성자 인자는 필수여야 한다
2.5 생성자 주입만 사용한다
2.6 선택적인 의존성 같은 건 없다
2.7 모든 의존성을 명시한다
___2.7.1 정적 의존성을 객체 의존성으로 바꾼다
___2.7.2 복잡한 함수를 객체 의존성으로 바꾼다
___2.7.3 시스템 호출을 명백히 한다
2.8 작업 관련 데이터는 생성자 인자가 아니라 메서드 인자로 전달한다
2.9 서비스의 인스턴스를 만든 후에는 행위를 바꾸지 못하게 한다
2.10 생성자에서는 속성에 할당하는 일만 한다
2.11 인자가 유효하지 않으면 예외를 일으킨다
2.12 서비스는 적은 수의 진입점이 있는 변경 가능 객체 그래프로 정의한다
요약
[연습 문제 해답]

▣ 03장: 다른 객체 생성하기
3.1 일관성 있는 행위에 필요한 최소한의 데이터를 요구한다
3.2 의미 있는 데이터를 요구한다
3.3 유효하지 않은 인자에 대한 예외로 사용자 정의 예외 클래스를 사용하지 않는다
3.4 예외 메시지를 분석해 유효하지 않은 인자에 대한 특정 예외를 테스트한다
3.5 도메인 불변속성을 여러 곳에서 검증하지 않게 새 객체를 추출한다
3.6 복합 값은 새로운 객체로 추출해 나타낸다
3.7 단언으로 생성자 인자 유효성을 확인한다
3.8 의존성을 주입하지 말고 선택적인 메서드 인자로 전달한다.
3.9 명명한 생성자를 사용한다
___3.9.1 기본 타입 값으로 생성하기
___3.9.2 toString, toInt() 등을 즉시 추가하지 말자
___3.9.3 도메인별 개념을 도입한다
___3.9.4 선택적으로 비공개 생성자를 사용해 제약을 강제한다
3.10 속성 채움자를 사용하지 않는다
3.11 무엇이든 필요 이상으로 객체에 넣지 않는다
3.12 생성자는 테스트하지 않는다
3.13 예외 규칙: 데이터 전송 객체
___3.13.1 공개 속성을 사용한다
___3.13.2 예외를 일으키지 말고 유효성 오류를 수집한다
___3.13.3 속성 채움자는 필요할 때 사용한다
요약
[연습 문제 해답]

▣ 04장: 객체 다루기
4.1 개체: 변경을 추적하고 이벤트를 기록하는 식별 가능한 객체
4.2 값 객체: 교체할 수 있고 익명이며 변경 불가능한 값
4.3 데이터 전송 객체: 디자인 규칙이 적은 단순한 객체
4.4 변경 불가능 객체가 우선이다
___4.4.1 값을 변경하는 대신 교체한다
4.5 변경 불가능 객체의 변경자는 변경한 복사본을 반환해야 한다
4.6 변경 가능 객체의 변경자 메서드는 명령 메서드여야 한다
4.7 변경 불가능 객체의 변경자 메서드 이름은 서술형이어야 한다
4.8 객체 전체를 비교한다
4.9 변경 불가능 객체를 비교할 때는 동일성이 아닌 상등을 확인한다
4.10 변경자 메서드를 호출한 결과는 항상 유효한 객체여야 한다
4.11 변경자 메서드는 상태 변경 요청이 유효한지 확인해야 한다
4.12 내부에 기록한 이벤트를 사용해 변경 가능 객체의 변경을 확인한다
4.13 변경 가능 객체에는 흐름식 인터페이스를 구현하지 않는다
요약
[연습 문제 해답]

▣ 05장: 객체 사용하기
5.1 메서드를 구현하는 템플릿
___5.1.1 사전 조건 확인
___5.1.2 실패 시나리오
___5.1.3 행복한 경로
___5.1.4 사후 조건 확인
___5.1.5 반환 값
5.2 예외의 몇 가지 규칙
___5.2.1 사용자 정의 예외 클래스는 필요할 때만 사용한다
___5.2.2 유효하지 않은 인자나 논리 예외 클래스 명명하기
___5.2.3 실행 중 예외 클래스 명명하기
___5.2.4 명명한 생성자를 사용해 실패 이유를 나타낸다
___5.2.5 상세한 메시지를 추가한다
요약
[연습 문제 해답]

▣ 06장: 정보 가져오기
6.1 질의 메서드를 사용해 정보를 가져온다
6.2 질의 메서드의 반환 값은 단일 타입이어야 한다
6.3 초기 상태를 노출하는 질의 메서드를 피한다
6.4 원하는 질의에 대한 특정 메서드와 반환 타입을 정의한다
6.5 시스템 경계를 넘는 질의에는 추상화를 정의한다
6.6 질의 메서드에 테스트 대역용 스텁을 사용한다
6.7 질의 메서드는 명령 메서드가 아니라 다른 질의 메서드를 사용해야 한다
요약
[연습 문제 해답]

▣ 07장: 작업 수행하기
7.1 이름이 명령형인 명령 메서드를 사용한다
7.2 명령 메서드 유효 범위를 제한하고 이벤트를 사용해 부차적인 작업을 수행한다
7.3 서비스는 안팎으로 변경 불가능하게 한다
7.4 무언가 잘못되면 예외를 일으킨다
7.5 정보 수집에는 질의를, 다음 단계로 진행은 명령을 사용한다
7.6 시스템 경계를 넘는 명령에는 추상화를 정의한다
7.7 명령 메서드 호출은 목으로만 검증한다
요약
[연습 문제 해답]

▣ 08장: 책임 나누기
8.1 읽기와 쓰기 모델을 분리한다
8.2 사용 사례에 맞는 읽기 모델을 생성한다
8.3 읽기 모델은 해당 데이터 근원에서 직접 생성한다
8.4 도메인 이벤트에서 읽기 모델을 만든다
요약
[연습 문제 해답]

▣ 09장: 서비스 행위 변경하기
9.1 생성자 인자를 도입해 행위를 설정할 수 있게 한다
9.2 생성자 인자를 도입해 행위를 교체할 수 있게 한다
9.3 추상화를 구성해 더 복잡한 행위를 이룬다
9.4 기존 행위를 장식한다
9.5 추가 행위에는 통지 객체나 이벤트 수신자를 사용한다
9.6 객체 행위를 변경하는 데 상속을 사용하지 않는다
___9.6.1 상속은 언제 사용해도 될까?
9.7 클래스는 기본적으로 최종 상태로 표시한다
9.8 메서드와 속성은 기본적으로 비공개로 표시한다
요약
[연습 문제 해답]

▣ 10장: 객체에 대한 현장 가이드
10.1 제어기
10.2 응용 프로그램 서비스
10.3 쓰기 모델 저장소
10.4 개체
10.5 값 객체
10.6 이벤트 수신자
10.7 읽기 모델과 읽기 모델 저장소
10.8 추상화, 구체화, 계층 그리고 의존성
요약

▣ 11장: 끝맺으며
11.1 아키텍처 패턴
11.2 테스트
___11.2.1 클래스 테스트 대 객체 테스트
___11.2.2 하향식 기능 개발
11.3 도메인 주도 설계
11.4 결론

▣ 부록: 예제 코드에 대한 코딩 표준

저자소개

마티아스 노박 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이상주 [역] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이 상품의 시리즈

(총 15권 / 현재구매 가능도서 15권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크 안전결제시스템 (에스크로) 안내

    (주)인터파크의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용