확장메뉴
주요메뉴


소득공제

아름다운 C++

: 클린하고 안전하며 빠른 코드 작성을 위한 핵심 가이드라인 30선

첫번째 리뷰어가 되어주세요
정가
33,000
판매가
29,700 (10% 할인)
배송안내
7/25(목) 발송예정(예약판매)
  • 배송비 : 무료 ?
  • 예정일 이후 1~2일 이내 수령
    eBook이 출간되면 알려드립니다. eBook 출간 알림 신청
    분철서비스 시작 시 알려드립니다. 분철서비스 알림신청
    •  국내배송만 가능
    •  최저가 보상
    •  예약도서와 함께 주문 시 도서 출간일에 함께 배송됩니다. (출판사의 사정으로 출간 지연 가능)
    •  문화비소득공제 신청가능

    품목정보

    품목정보
    발행일 2024년 08월 02일
    쪽수, 무게, 크기 372쪽 | 188*245*18mm
    ISBN13 9791193926185

    카드 뉴스로 보는 책

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

    목차 목차 보이기/감추기

    저자 소개 (3명)

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

    사용자가 키보드를 눌렀을 때 그 특정 키를 알고 싶은 경우를 예로 들겠습니다. 한 가지 접근법은 사용 중인 플랫폼을 감지하는 전처리기를 사용해서 알맞은 코드를 아래와 같이 실행하는 방법입니다.

    #if defined WIN32
    auto a_pressed = bool{GetKeyState('A') & 0x8000 != 0};
    #elif defined LINUX
    auto a_pressed = /*아주 길고 긴 코드*/
    #endif

    아주 보기 나쁩니다. 잘못된 추상화 수준에서 작동하기 때문입니다. 윈도우나 리눅스 전용 코드는 헤더 파일에 적힌 다른 별도의 파일에 있어야 하기 때문에, 이 코드는 다음과 같아야 합니다.
    --- p.5

    이 함수에서 중요한 것은 옵션 파일을 구문 분석하여 각 키에 무언가를 한다는 점입니다. 안타깝게도 그러는 동안 공백이 포함되는 기능을 잃었습니다. 화살괄호 연산자는 공백에 도달하면 추출을 중단합니다. 이에 대해서는 곧 다시 살펴보겠습니다. / 하지만 한결 나아졌습니다. 이제 키와 함수 포인터에 대한 맵을 초기화하기만 하면 됩니다. 그러나 문제를 빙 돌아온 것일 뿐입니다. 사용자가 초기화자 업데이트를 깜빡할 수 있기 때문에 여기서 또 실수가 발생할 수 있습니다. 이걸 자동화할 수 있을까요?
    --- p.70-71

    gsl::owner의 정의는 매우 간단합니다. T가 포인터 타입이라면 gsl::owner〈T〉는 T의 별칭이고 그렇지 않다면 정의되지 않습니다. / 이 타입은 소유권을 강제하려는 것이 아니라 사용자에게 소유권 변경이 발생함을 알리려는 것입니다. 함수 이름에 이러한 정보를 담지 않고 타입에 포함시켰습니다. (…) GSL이 더 널리 쓰임에 따라 IDE가 해당 타입을 익히고 빨간 밑줄이나 전구 힌트 표시 같은 표시로 작성자에게 소유권 남용에 대해 경고하리라 기대할지도 모르겠네요. 그때까지는 gsl::owner를 소유권을 강제하는 타입으로 사용하기보다는 소유권을 설명하는 타입으로 사용하세요. 궁극적으로 gsl::owner는 고수준의 소유권 추상화를 정말로 사용할 수 없을 때 최후의 수단으로 사용하세요.
    --- p.138-139

    보다시피 범위를 작게 유지하면 몇 배의 보상으로 돌아옵니다. 근본적으로 범위란 어떤 것의 부분에 대해 생각하는 방식입니다. 범위와 관련성이라는 개념은 밀접하게 연관되어 있습니다. / 범위는 추상화를 식별하고 묶는 방식입니다. 범위는 이름의 집합입니다. 클래스 범위이든 함수 범위이든 네임스페이스 범위이든 해당 추상화와 관련된 선언을 포함하는 것이 바로 범위입니다. 범위는 솔루션 도메인의 근본적인 기본 요소입니다. 범위를 작게 유지하라는 것은 또한 추상화를 작게 유지하라는 말이 됩니다.
    --- p.231

    C에서는 모든 코드가 실행되기 전에 함수 위쪽에 모든 변수를 선언해야 했습니다. 함수에서 사용하는 것보다 더 많은 변수를 무심코 선언하는 일은 꽤 흔했습니다. (…) 이 함수는 10년 전에 처음 작성했고 여러 번 수정을 거쳤습니다. 5년 전에 distribution_median은 distribution_mode라는 합계로 대체되었는데, 둘 다 중앙값의 필요 여부는 고려하지 않고 계산되었습니다. 아무도 알고리즘에서 사용하지 않는 부분을 지원하기 위해 선언된 상태를 제거하지 않았습니다. 눈에서 멀어지면 마음에서도 멀어지는 법입니다. 게다가 알맞은 위치를 찾기보다는 목록에 추가하는 것이 엔지니어의 습관이기 때문에 range_average와 range_max는 range_floor와 range_ceiling으로 분리되었습니다.
    --- p.304

    진심으로 바라건대, 여러분이 이 책을 읽고 나면 프로그램이란 일련의 작업이 스크립팅된 것이 아니라 당면한 문제를 모델링하는 작은 추상화 집합이라는 개념에 초점을 맞추기를 바랍니다. C++는 제로 오버헤드 추상화 기능과 하드웨어 수준의 성능 향상 가능성이 혼합되었다는 특징이 있습니다. 성능 향상의 이점만 취하고 추상화 기능은 버린다면 코드는 유지보수가 어려워지고, 다른 코드베이스에 통합하기도 어려워집니다.
    --- p.338

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

    추천평 추천평 보이기/감추기

    이 책은 규칙을 따를 때 얻는 이점과 무시한 결과 발생할 수 있는 끔찍한 일에 주안점을 두고 개발자의 관점에서 규칙을 제시합니다. 해당 규칙의 동기에 대해서는 C++ 핵심 가이드라인 자체에서 설명하는 것보다 더 폭넓게 다룹니다. (…) 핵심 가이드라인을 취향, 관점, 경험에 따라 선택적으로 살펴보고 싶다면 이 책을 읽어보세요. 진정한 괴짜(geek)라면 읽기 쉽고 재미있을 겁니다. 대부분의 소프트웨어 개발자에게 이 책은 새롭고 유용한 내용을 전합니다.
    - 비야네 스트롭스트룹 (C++ 창시자)
    이 책의 제목 ‘아름다운 C++’는 기억하기 쉬운 제목일 뿐만 아니라 제 개인적인 목표이기도 하고, 제가 C++의 진화 과정에서 가장 높이 평가하는(바라는) 것입니다. (…) 케이트와 가이는 각 장에서 이야기의 플롯을 발전시키면서 유쾌하고 읽기 쉬운 내러티브로 전달하여 독자를 즐겁고, 밝고, 만족스러운 여정으로 인도합니다. 이 책을 재미있게 읽었다면 저와 마찬가지로 여러분도 저자들이 이 가이드라인에 자신의 전문 지식과 경험을 녹여낸 방식을 잘 알아보았을 것입니다.
    - 허브 서터 (‘C++ 핵심 가이드라인’ 공동 편집자)
    책 제목은 ‘아름다운(beautiful) C++’이지만, 아름다울 뿐만 아니라 위트와 재미가 더해져 마법같이 ‘황홀한(enchanting) C++’가 더 어울린다는 생각마저 들었습니다. 모던 C++ 패턴과 C++ 핵심 가이드라인을 재료로, 케이트 그레고리의 발표 내용에 가이 데이비드슨의 경험이 멋진 컬래버레이션을 이룬 책입니다.
    - 김용현 (Microsoft MVP)

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

      등록된 리뷰가 없습니다!

    첫번째 리뷰어가 되어주세요.

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