본문내용 바로가기
MD의선택 무료배송 이벤트 소득공제

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

위키북스 IT Leaders 시리즈 30
마티아스 노박 지음 | 이상주 옮김 | 위키북스 | 2020년 07월 22일 출간
클로버 리뷰쓰기
  • 정가 : 27,000원
    판매가 : 24,300 [10%↓ 2,700원 할인]
  • 통합포인트 :
    [기본적립] 1,350원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2천원 추가적립 안내 [회원혜택] 실버등급 이상, 3만원 이상 구매 시 2~4% 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(27일,수) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
상품상세정보
ISBN 9791158392147(1158392141)
쪽수 352쪽
크기 188 * 240 * 24 mm /804g 판형알림

책소개

이 책이 속한 분야

잘 작성한 객체지향 코드는 읽고 변경하고 디버그하기 즐겁다. 이 책에서 보여주는 객체 디자인에 대한 보편적 모범 사례를 익혀 코딩 스타일을 향상하자. 이 명확한 규칙은 어떤 객체지향 언어에도 적용할 수 있으며, 여러분이 작성하는 코드 전체(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 결론

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

출판사 서평

★ 이 책에서 다루는 내용 ★

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

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면
결제 90일 이내 300원, 발송 후 5일 이내 400원, 이 상품의 첫 리뷰 500원의 포인트를 드립니다.

포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
북로그 리뷰는 본인인증을 거친 회원만 작성 가능합니다.
(※ 외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외) 안내
  • 해당도서의 리뷰가 없습니다.

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품