확장메뉴
주요메뉴


소득공제

대규모 C++ 1 : 절차와 아키텍처

[ 23주년 개정판 ]
리뷰 총점9.7 리뷰 3건 | 판매지수 726
정가
75,000
판매가
67,500 (10% 할인)
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청

품목정보

품목정보
발행일 2023년 12월 28일
쪽수, 무게, 크기 800쪽 | 188*257*33mm
ISBN13 9791140707768

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

목차 목차 보이기/감추기

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

쉽게 유지보수할 수 있는 대규모 소프트웨어 시스템은 저절로 만들어지지 않는다. 개발자 한 명이 자신만을 위해 사용하는 방법이, 많은 정합 작업이 수반되는 대규모 소프트웨어에서도 같은 효과가 있기를 기대하기는 어렵다. 이 책은 대규모 소프트웨어 개발을 위한 엔지니어링(engineering) 방법론 및 소프트웨어의 종류나 규모와 상관없이 공통적으로 적용할 수 있는 테크닉과 요령을 다룬다. 그러한 테크닉과 요령은 한 번 학습하고 나면 본능처럼 각인되어 추가적인 노력과 시간을 들이지 않아도 된다. 각인된 테크닉과 요령은 이해하고, 검증하고, 유지보수하기 쉬운 잘 조직화된 시스템을 만들어 내는 데 반복적으로 기여한다.
--- p.26

이제 소프트웨어 개발의 최종 결과물인 소프트웨어 자체를 생각해 보자. 시간이 지남에 따라 소프트웨어는 계속해서 커진다. 미래의 프로젝트에 기존 소프트웨어의 상당 부분을 재사용할 수 있다면 생산성을 무한정 높일 수 있다. 즉, 소프트웨어를 오래 개발할수록 새로운 요구 사항이 생겼을 때 그냥 가져다 쓰기만 하면 되는 경우가 많이 생긴다. 문제는 “소프트웨어를 어떻게 구조화해야 효과적으로 재사용할 수 있는가?”다.
--- p.29

애플리케이션 개발은 단편적이고 목적 지향적인 경우가 많다. 이 때문에 여러 애플리케이션을 개발하는 큰 조직에서는 중복 코드와 상호 의존적인 애플리케이션을 쉽게 볼 수 있다. 개별적으로 문제가 없지만 전체적인 코드 베이스는 엉망이 되기 때문에 코드를 수정하거나 새롭게 추가하는 일이 점점 더 어려워진다. 이러한 현상은 너무나 흔해서 디자인 패턴 분야에서 별도로 이름(Big Ball of Mud)을 붙였을 정도다.
코드 베이스에는 어떤 구조화된 구심점이 없음은 물론, 조직 전체에 이용될 것으로 계획된 코드임에도 너무 주관적으로 일반화되어 있거나, 특정 애플리케이션에 과도하게 종속적이다. 그러한 코드들에 의존해서는 마스터 코드를 빠르게 변경하는 일이 너무나 위험해진다. 그럼에도 속도가 사업의 성공에 핵심적인 경우가 많기 때문에 전통적인 리팩터링 관례나 인터페이스 설계 방법론 같은 것은 사치스러운 것으로 치부된다. 급하게 대충 작업하면 단기적으로는 필요한 애플리케이션을 만들 수 있겠지만 장기적으로는 심각한 유지보수 부담으로 돌아온다. 시간이 흐를수록 코드 베이스에 개선이 없는 것은 당연하고, 유지보수 비용이 감당할 수 없을 정도로 계속 불어난다.
--- p.29

재사용 가능한 소프트웨어는 애플리케이션을 개발했다고 해서 저절로 생기지 않는다. 애플리케이션의 좁은 관점과 짧은 개발 일정 때문에 여러 애플리케이션에 걸친 공용 부분을 분리하여 코드를 작성할 여유는 없다. 라이브러리 전담 개발자(참조: 0.10절)가 있으면 좋겠지만 그런 경우는 극히 드물다. 이러한 현상은 애플리케이션 개발자의 탓이 아닌 현실적인 경제적 압력 때문에 일어난다. 애플리케이션 개발팀의 성공 여부는 주어진 시간과 예산 범위에서 필요한 비즈니스 요구를 만족시킬 수 있느냐에 달려 있다. 코드 재사용 때문에 비즈니스 목표를 달성하지 못한다면 상을 받기는커녕 일자리 자체가 위태로워질 수 있다. 장기적으로 미래의 적기 시장에 대응하기 위해 애플리케이션 개발자가 자발적으로 본인의 고유 업무를 넘어서서 다른 모듈에서의 재사용을 고려한 일반화된 코드를 작성하는 일은 극히 드물다.
--- p.31

소프트웨어 엔지니어링이라는 용어는 사람들마다 다른 의미로 받아들인다. 재능 있고 열정적인 개발자는 소프트웨어를 창조하는 일을 예술이라 생각한다. 안타깝게도 이러한 개발자는 모두에게 이익이 되는 것이 분명한 것이라도 무언가 제약이 주어지면 숨막혀 한다. 하지만 이런 태도는 비정형적인 것을 산재하게 하고 소프트웨어 개발 과정 전반에 걸쳐 효율성을 해친다. 개인이 아닌 조직으로서 최고 수준의 생산성에 도달하려면 물리 법칙과 같은 어떤 기초 규칙을 지켜야 한다고 믿는다. 이 장의 내용은 이러한 믿음을 바탕으로 한다.
--- p.254

여기서 제안하는 것은 충분히 적은 수의 아키텍처 설계 규칙 집합이다. 이 규칙들은 컴포넌트 기반 소프트웨어를 조직화하기 위한 물리적 프레임워크를 구성한다. 물론 컴포넌트 기반이 아닌 레거시 모듈, 오픈 소스, 서드 파티 소프트웨어와 함께하는 방법도 포함한다. 이 규칙은 본격적인 기업 규모의 소프트웨어가 효과적인 설계, 개발, 테스트, 배포를 가능하게 한다. 단순한 네이밍 관례나 코딩 표준과 달리 이러한 아키텍처 차원의 규칙은 언어의 기능을 초월하여 개발 확장성과 효과적인 재사용에 무게를 두고 무엇이 중요한지에 집중한다. 여기서 제안하는 소프트웨어 조직화 방법론은 단지 그럴듯한 것이 아닌 오랜 기간 현업과 시장에서 검증되어 온 것이다.
--- p.254

애플리케이션 개발자들은 자연스럽게도 애플리케이션 중심적이다. 애플리케이션이 물리적 계층의 최상위라고 할 때 각 애플리케이션 개발자는 다른 애플리케이션과 완전히 독립적으로 자기만의 관점에서 개발할 수 있다. 하지만 큰 개발 조직에서는 많은 애플리케이션들이 동시에 개발될 때가 많다. 이러한 애플리케이션들은 결과적으로 많은 버전을 갖게 된다. 애플리케이션 개발을 관리하는 일관된 방법론의 프레임워크가 있으면 대규모 애플리케이션 개발에 큰 도움이 될 수 있다.
--- p.385

역사적으로 소프트웨어 설계는 논리적 설계에 국한되는 것으로 치부되어 왔다. 하지만 이 책의 컴포넌트 기반 방법론은 구조와 방향 차원(수직적, 수평적 모두)을 추가하여 물리적 설계라는 개념을 제시한다. 물리적 설계는 컴포넌트 간 상대적 위치에 의미를 부여한다. 인터페이스와 구현의 상대적인 물리적 위치를 교환하는 등의 물리적 설계 테크닉으로 더 유연하고 안정적인( 예 수평적) 설계를 달성할 수 있다.
--- p.758

테스트하기 어려운 시스템은 테스트가 덜 수행되고 신뢰성이 떨어질 수밖에 없다. 따라서 유지보수 작업이 더 많이 소요된다. 재사용될 소프트웨어가 재사용되지 못하고, 사용처가 적어 검증이 덜 되고 또다시 신뢰성이 떨어진다. 재사용이 덜 된다는 것은 중복 코드가 많다는 뜻이기도 하다. 따라서 불필요한 유지보수 부담을 발생시킨다. 같은 작업을 하는 데 코드가 더 많다는 것은 실행 파일의 크기가 크다는 뜻이고, 그에 따라 캐싱에 불리해지는 등 런타임 성능에도 악영향을 미친다. 마지막으로 낮아진 수정 용이성은 무언가를 바꾸는 데 비용이 더 많이 듦을 의미한다.
--- p.769

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

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

한줄평 (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   67,500
뒤로 앞으로 맨위로 공유하기