확장메뉴
주요메뉴


소득공제

디자인 패턴의 아름다움

: 객체지향 패러다임부터 설계 원칙, 코딩 규칙, 리팩터링 기법, 디자인 패턴까지

왕정 저 / 김진호 | 제이펍 | 2023년 05월 26일   저자/출판사 더보기/감추기
리뷰 총점9.1 리뷰 7건 | 판매지수 7,476
베스트
IT 모바일 top20 1주
정가
35,000
판매가
31,500 (10% 할인)
배송안내
서울특별시 영등포구 은행로 11(여의도동, 일신빌딩)
지역변경
  • 배송비 : 무료 ?
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청
  •  해외배송 가능
  •  최저가 보상
  •  문화비소득공제 신청가능

품목정보

품목정보
발행일 2023년 05월 26일
쪽수, 무게, 크기 528쪽 | 1014g | 188*245*26mm
ISBN13 9791192987101
ISBN10 1192987101

카드 뉴스로 보는 책

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

책 속으로 책속으로 보이기/감추기

우리는 종종 코드 품질에 주의를 기울여야 하고 코드를 작성하기 전에 코드 설계 단계를 무시하지 않아야 한다고 말한다. 코드를 설계하지 않는 것은 좋지 않지만, 과도하게 설계하는 것도 좋지 않다. 과거 업무 경험 동안 많은 동료를 겪었는데, 특히 코드를 과도하게 설계하고 디자인 패턴을 남용하는 것을 좋아하지만 개발 경험이 적은 엔지니어들이 있었다. 그들은 코딩을 시작하기도 전에 코드 설계 작업에 오랜 시간을 할애한다. 간단한 요구 사항이나 단순한 코드의 경우 코드가 더 유연하고 향후 확장을 위한 견고한 기반이 되기를 바라며 개발 프로세스에서 다양한 디자인 패턴을 적용하는 경우가 많다. 하지만 과도한 설계는 나중에 요구 사항이 변하지 않을 수도 있기 때문에, 이런 시도는 코드의 복잡성만 높일 뿐이다. 따라서 우리는 과도한 설계를 피하는 방법, 특히 객체지향 프로그래밍 패러다임, 설계 원칙, 코딩 규칙, 리팩터링과 같이 디자인 패턴의 남용을 피하는 방법에 대해 이야기할 필요가 있다.
--- p.18

그러나 일반적으로 대부분의 프로그래머는 종종 객체지향 분석과 객체지향 설계를 머릿속이나 간단한 스케치로 마친 후 바로 코드 작성을 시작할 뿐만 아니라, 코드 작성 도중에도 최적화와 리팩터링을 하는 경우가 많다. 반대로 코드를 작성하기 전에 객체지향 분석과 설계에 많은 시간을 할애하고 단단한 클래스 다이어그램과 UML 다이어그램을 그렸더라도, 모든 세부 사항과 상호 작용에 대해 한 번에 다 정의하는 것은 불가능하다. 코드를 작성하면서 여전히 코드를 뒤엎어 리팩터링하고, 또 이를 반복해야 한다. 결국 소프트웨어 개발은 본질적으로 지속적인 반복, 패치, 문제 발견, 문제 해결의 과정이며, 지속적인 리팩터링의 과정이다. 엄격하게 하나의 단계를 모두 마치고 다음 단계로 넘어가는 것이 불가능하다는 것을 알아야 한다.
--- p.55

리스코프 원칙에는 좀 더 이해하기 쉬운 설명 방식이 있는데, 바로 계약에 따른 설계(design by contract)라는 표현이다. 하위 클래스를 설계할 때는 상위 클래스의 동작 규칙을 따라야 한다. 상위 클래스는 함수의 동작 규칙을 정의하고 하위 클래스는 함수의 내부 구현 논리를 변경할 수 있지만 함수의 원래 동작 규칙은 변경할 수 없다. 여기서 말하는 동작 규칙에는 함수가 구현하기 위해 선언한 것, 입력, 출력, 예외에 대한 규칙, 주석에 나열된 모든 특수 사례 설명이 포함된다. 사실 여기에서 언급된 상위 클래스와 하위 클래스 간의 관계는 인터페이스와 구현 클래스 간의 관계로 대체될 수도 있다.
--- p.137

팩터리 패턴은 동일한 상위 클래스나 인터페이스를 상속하는 하위 클래스 그룹과 같이 유형은 다르지만 연관되어 있는 객체를 생성할 때 사용되며, 이때 어떤 유형의 객체를 생성할지는 미리 지정된 매개변수에 의해 결정된다. 반면에 빌더 패턴은 동일한 유형의 복잡도가 높은 객체를 생성하는데, 이때 선택적인 매개변수를 설정하거나 사용자 정의를 통해 다른 객체를 생성한다. / 두 패턴의 차이점은 고전적인 예를 통해 쉽게 이해할 수 있다. 고객이 식당에 들어가서 주문을 하면 팩터리 패턴을 사용하여 고객의 선택에 따라 피자, 버거, 샐러드와 같은 다양한 음식을 만들고, 빌더 패턴을 통해 치즈, 토마토, 베이컨 등 고객이 선택한 다양한 토핑을 얹은 피자를 만들 수 있다.
--- p.301

메멘토 패턴을 적용할 때, 백업할 객체가 상대적으로 크거나 백업 빈도가 높으면 스냅숏이 차지하는 메모리가 상대적으로 많아지고, 백업과 복구에 드는 시간이 상대적으로 길어진다. 이 문제를 해결하는 방법은 무엇일까? / 응용 시나리오마다 각각에 최적화된 다양한 해결 방안이 있기 마련이다. 예를 들어 8.10.1절에서 살펴본 예제는 메멘토 패턴을 이용하여 실행 취소 기능을 구현했는데, 이때 순차적인 실행 취소만 지원한다. 즉, 실행을 취소할 때 마지막에 입력한 텍스트만 취소할 수 있으며, 이를 건너뛰고 이전에 입력한 텍스트를 취소할 필요가 없다. 이 경우에는 메모리를 절약하기 위해 전체 텍스트를 스냅숏에 저장하는 대신 소량의 정보만 따로 기록할 수 있다. 스냅숏을 얻을 때 입력했던 텍스트의 길이를 얻어 오면 원본 텍스트에서 해당 길이만큼 잘라내는 방법을 쓰면 된다.
--- p.489

출판사 리뷰 출판사 리뷰 보이기/감추기

회원리뷰 (3건) 회원리뷰 이동

한줄평 (4건) 한줄평 이동

총 평점 9.0점 9.0 / 10.0

배송/반품/교환 안내

배송 안내
반품/교환 안내에 대한 내용입니다.
배송 구분 예스24 배송
  •  배송비 : 무료배송
포장 안내

안전하고 정확한 포장을 위해 CCTV를 설치하여 운영하고 있습니다.

고객님께 배송되는 모든 상품을 CCTV로 녹화하고 있으며, 철저한 모니터링을 통해 작업 과정에 문제가 없도록 최선을 다 하겠습니다.

목적 : 안전한 포장 관리
촬영범위 : 박스 포장 작업

  • 포장안내1
  • 포장안내2
  • 포장안내3
  • 포장안내4
반품/교환 안내

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

반품/교환 안내에 대한 내용입니다.
반품/교환 방법
  •  고객만족센터(1544-3800), 중고샵(1566-4295)
  •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
반품/교환 가능기간
  •  출고 완료 후 10일 이내의 주문 상품
  •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
  •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
반품/교환 비용
  •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
  •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

    단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

    •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
    •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
  •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

    단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

  •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
반품/교환 불가사유
  •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
  •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
  •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
  •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
  •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
  •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상
  •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
환불 지연에
따른 배상
  •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
  •  쿠폰은 결제 시 적용해 주세요.
1   31,500
뒤로 앞으로 맨위로 공유하기