확장메뉴
주요메뉴


소득공제 강력추천
미리보기 공유하기

C++ 최적화

: 최고 성능을 구현하는 10가지 검증된 기법

리뷰 총점8.9 리뷰 8건 | 판매지수 1,344
베스트
IT 모바일 top100 8주
정가
38,000
판매가
34,200 (10% 할인)
YES포인트
가방 속 책 한 권이라면 - 굿리더 스트링백/간식 접시 머그/디즈니 미키 타포린 보냉백/타포린백
〈2022 한국 문학의 미래가 될 젊은 작가〉- 투표 참여 회원 전원 1천원 상품권 증정!
8월 얼리리더 주목신간 : 귀여운 방해꾼 배지 증정
월간 개발자 2022년 8월호
박해선 저자의 머신러닝/딥러닝 패스
[단독]『혼자 공부하는 파이썬』 개정판 출간
내일은 개발자! 코딩테스트 대비 도서전
YES24 트윈링 분철 : 인서트라벨/스티커 택1 증정
8월 전사
쇼핑혜택
1 2 3 4 5

품목정보

품목정보
출간일 2019년 07월 05일
쪽수, 무게, 크기 474쪽 | 183*235*30mm
ISBN13 9791162241981
ISBN10 1162241985

이 상품의 태그

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

빠르고 간결한 C++을 위한
프로의 최적화 팁!


빠른 코드를 작성하는 시간은 느린 코드를 작성하는 시간보다 결코 길지 않다. 이 책은 올바른 코드를 구현하면서도 빠른 C++ 프로그램을 만드는 최적화 방법을 소개한다. 습관적으로 쓰는 C++ 구문을 점검해보고 싶다면 35년 경력의 저자가 소개하는 10가지 기법으로 시작해보자. 자원을 소비하고 실행 시간을 잡아먹는 부분을 찾아내 개선하다 보면 “와, 정말 빠른데! 누가 고쳤지?!”라는 말을 듣게 될지도 모른다. 실제 사례에 기반한 실용적인 팁으로 진정한 프로가 되어보자.

목차 목차 보이기/감추기

CHAPTER 1 최적화란
__1.1 최적화는 소프트웨어 개발의 일부입니다
__1.2 최적화는 효과적입니다
__1.3 최적화해도 괜찮습니다
__1.4 여기에 나노초, 저기에 나노초
__1.5 C++ 코드 최적화 전략 요약
__1.6 마치며

CHAPTER 2 컴퓨터 하드웨어와 최적화
__2.1 C++은 컴퓨터의 거짓말을 믿습니다
__2.2 컴퓨터의 진실
__2.3 C++도 거짓말을 합니다
__2.4 마치며

CHAPTER 3 성능 측정
__3.1 사고방식 최적화
__3.2 실험 수행
__3.3 프로그램 실행 프로파일
__3.4 시간이 오래 걸리는 코드
__3.5 코드 비용 추정하기
__3.6 최적화할 코드를 찾는 다른 방법
__3.7 마치며

CHAPTER 4 문자열 최적화
__4.1 문자열이 왜 문제인가요
__4.2 문자열 최적화 첫 번째 시도
__4.3 문자열 최적화 두 번째 시도
__4.4 문자열 변환 연산 제거하기
__4.5 마치며

CHAPTER 5 알고리즘 최적화
__5.1 알고리즘의 시간 비용
__5.2 검색과 정렬을 최적화하는 툴킷
__5.3 효율적인 검색 알고리즘
__5.4 효율적인 정렬 알고리즘
__5.5 최적화 패턴
__5.6 마치며

CHAPTER 6 동적 할당 변수 최적화
__6.1 C++ 변수
__6.2 C++ 동적 변수 API
__6.3 동적 변수 사용 줄이기
__6.4 동적 변수의 재할당 줄이기
__6.5 불필요한 복사 제거하기
__6.6 이동 문법 구현하기
__6.7 평평한 자료구조
__6.8 마치며

CHAPTER 7 문장 최적화
__7.1 반복문에서 코드 제거하기
__7.2 함수에서 코드 제거하기
__7.3 표현식 최적화
__7.4 제어 흐름 최적화
__7.5 마치며

CHAPTER 8 라이브러리 최적화
__8.1 표준 라이브러리 최적화
__8.2 기존 라이브러리 최적화
__8.3 최적화된 라이브러리 설계
__8.4 마치며

CHAPTER 9 검색 및 정렬 최적화
__9.1 std::map과 std::string을 사용한 키/값 테이블
__9.2 검색 성능 향상을 위한 툴킷
__9.3 std::map을 사용한 검색 최적화
__9.4 [algorithm] 헤더를 사용한 검색 최적화
__9.5 해시 키/값 테이블 검색 최적화
__9.6 스테파노프의 추상화 패널티
__9.7 C++ 표준 라이브러리로 정렬 최적화
__9.8 마치며

CHAPTER 10 자료구조 최적화
__10.1 표준 라이브러리 컨테이너 알아보기
__10.2 std::vector와 std::string
__10.3 std::deque
__10.4 std::list
__10.5 std::forward_list
__10.6 std::map과 std::multimap
__10.7 std::set과 std::multiset
__10.8 std::unordered_map과 std::unordered_multimap
__10.9 다른 자료구조
__10.10 마치며

CHAPTER 11 입출력 최적화
__11.1 파일을 읽는 방법
__11.2 파일 쓰기
__11.3 std::cin으로 읽어서 std::cout으로 쓰기
__11.4 마치며

CHAPTER 12 동시성 최적화
__12.1 동시성
__12.2 C++ 동시성 기능
__12.3 C++ 프로그램 스레드 최적화
__12.4 더 효율적인 동기화 만들기
__12.5 동시성 라이브러리
__12.6 마치며

CHAPTER 13 메모리 관리 최적화
__13.1 C++ 메모리 관리 API
__13.2 고성능 메모리 관리자
__13.3 클래스 한정 메모리 관리자 제공하기
__13.4 사용자 정의 표준 라이브러리 할당자 제공하기
__13.5 마치며

저자 소개 (3명)

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

C++은 자동화와 표현력부터 성능을 향상시키는 세밀한 제어까지, 다양한 옵션을 제공한다. 그래서 C++로 만든 프로그램에는 최적화할 여지가 곳곳에 숨어 있다. ‘코드를 제대로 작성하고 있는 걸까?’ 의심이 든다면 지금 최적화를 시작해보자. 프로그램 속도를 느리게 하는 ‘유력 용의자’를 검거하는 방법은 알고 보면 놀라울 정도로 간단하고 명쾌하다. 저자가 소개하는 풍부한 팁과 예제를 활용해 연습하다 보면 금세 뛰어난 성능을 내면서 가독성까지 높은 코드를 작성할 수 있다.

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

최적화는 최적화 자체의 효과가 아닌, 그 과정에서 개발자가 고민하고 깨달아야 하는 것에 본질이 있다. 이 책은 C++ 자체의 특성만으로 개발자가 무엇을 고민해야 하는지, 어떤 목적을 이루어야 하는지를 잘 짚고 있다.
- 박수현 (『Thinking about C/C++』 저자)

사례에 기반한 풍부한 조언의 보고! 이 책이야말로 최신 C++을 위한 믿을 만한 참고서다.
- 제리 탄 (미국 청산예탁결제원(DTCC) 시니어 소프트웨어 개발자)

회원리뷰 (8건) 리뷰 총점8.9

혜택 및 유의사항?
[Optimized C++, C++ 최적화] 리뷰 내용 평점5점   편집/디자인 평점4점 a****a | 2019.11.15 | 추천0 | 댓글0 리뷰제목
C++ 최적화작가커트 건서로스출판한빛미디어발매2019.07.05.리뷰보기 최적화에 대한 책이라고 해서 최적화 방법만 사전식으로 나와있을 줄 알았는데 내용이 생각보다 다양하다.먼저 최적화의 필요성과 컴퓨터 과학의 기본 지식을 설명해준다. 전반적인 개요 설명이 충분하고, 이후 성능 측정 방법과 최적화 방법에 대해 설명해준다.앞의 필요성과 개요 부분만 봐도 상당히 중요한 내;
리뷰제목

C++ 최적화

작가
커트 건서로스
출판
한빛미디어
발매
2019.07.05.

리뷰보기


 

최적화에 대한 책이라고 해서 최적화 방법만 사전식으로 나와있을 줄 알았는데 내용이 생각보다 다양하다.
먼저 최적화의 필요성과 컴퓨터 과학의 기본 지식을 설명해준다. 전반적인 개요 설명이 충분하고, 이후 성능 측정 방법과 최적화 방법에 대해 설명해준다.


앞의 필요성과 개요 부분만 봐도 상당히 중요한 내용이 많다고 생각한다.

성능 측정을 위한 방법도 설명해주고 이런 방법의 다양함과 테스트 방법 및 결과들을 체계적으로 정리하고 문서화하는 것에 대한 중요성, 또 증명해야 하는 목표까지 비단 최적화뿐만 아니라 개발 전반에 있어서 꼭 알아두어야 할 내용이 들어있다.


약간 너무 깊이 들어가는 게 아닌가 싶은 부분은 시간 측정에 필요한 '시간'에 대해 알려주는 부분이다. 어떻게 정확하게 측정할 수 있을까에 대한 내용인데, 진자시계부터 전자시계 등 백과사전에서나 볼법한 예시를 들어줘서 상당히 재미있었다. 또 시스템에서 시간 값을 반환해주는 여러 가지 함수에 대해서도 소개해주었다.




최적화 방법에 대해 알려주는 부분은 이해하는데 어려움이 좀 있었다. c++보다는 c 위주로 작업을 하고 있어서 클래스나 자원 할당에 대한 부분이 익숙하지 않아서 예제를 봐도 와닿지(?) 못하는 부분이 꽤 있어서 아쉬웠다. 기술적으로는 많은 도움이 되었다. c나 다른 언어에도 적용할 수 있는 방법도 많았고, 지금껏 생각하지 못한 새로운 아이디어처럼 느껴지는 방법도 있었다. 입문자보다는 어느 정도 실전 경험이 있는 사람이라면 정말 큰 도움이 될 책이라고 생각한다. 예제 코드만 봐도 몇 줄 수정하지 않고 20%씩 성능이 오르는 걸 보면 담당하는 제품에도 이런 식으로 적용하면 마법같이 빨라지겠다 싶은 생각과 함께 코딩 욕구가 솟아오르기도 한다. 개발 참고서라 그렇게 중요하지는 않은 부분이지만 직역하는 느낌에 읽다가 흐름이 끊기는 부분이 몇 번 있었던 것 같다.


댓글 0 이 리뷰가 도움이 되었나요? 공감 0
포토리뷰 C++ 최적화 내용 평점5점   편집/디자인 평점4점 a***y | 2019.11.15 | 추천0 | 댓글0 리뷰제목
프로그래밍을 공부하다보면 자주 듣는 말이 책 좀 그만보라는 말 입니다.컴퓨터공학은 책으로 공부하는게 아니라 인터넷으로 공부하는 거라고도 합니다.어떤 말인지 이해는 하겠다만 기계공학과 출신이여서 그런지 책으로 공부하는게 마음이 편합니다.그리고 뭔가 여러 사람들이 인터넷 만능설을 가지고 있는 듯한 느낌이 듭니다.책의 서론부터 참 재밌는 내용이 나옵니다.'21세기 초 C++;
리뷰제목


프로그래밍을 공부하다보면 자주 듣는 말이 책 좀 그만보라는 말 입니다.

컴퓨터공학은 책으로 공부하는게 아니라 인터넷으로 공부하는 거라고도 합니다.

어떤 말인지 이해는 하겠다만 기계공학과 출신이여서 그런지 책으로 공부하는게 마음이 편합니다.

그리고 뭔가 여러 사람들이 인터넷 만능설을 가지고 있는 듯한 느낌이 듭니다.



책의 서론부터 참 재밌는 내용이 나옵니다.

'21세기 초 C++은 공격을 받았습니다. ··· ··· ··· 많은 유명 기업들은 독점 객체지향 언어를 홍보하면서

C++은 사용하기 너무 어려우며 자신들이 만든 언어가 미래라고 주장했습니다. ··· ··· ···

프로세서 코어의 속도는 빨라지지 않았고 작업량은 계속 늘어났습니다.

대기업들은 확장설 문제를 해결하기 위해 C++ 프로그래머를 고용하기 시작했습니다.'



이전 리뷰에서도 자주 언급했지만, 난 엔지니어 포프님의 사상을 좋아한다.

포프TV를 자주보는데, 그 중 '프로그래머로 살아남기 위해 필요한 언어 둘' 이라는 영상이 있다.

영상의 내용을 요약하면 필요한 언어 2개란,

1) 메모리를 직접 관리해줘야하는 언어(C, C++ 등)이고

2) 메모리를 알아서 관리해주는 언어(C#, JAVA, Python 등) 이라는 것이다.

무어의 법칙에 따라 프로세서 코어의 속도는 크게 향상되지 않고 있다.

이러한 상황에서 대규모 프로그램을 한정된 메모리 안에서 돌리기 위해서는

당연히 메모리를 직접 관리해주는 언어가 필요하다.



메모리를 직접 관리해주는 것 까지는 좋다.

프로그래밍을 해본 사람은 알테지만 똑같은 문제를 보고 같은 기능을 하는 프로그램을 구현했다고 하자.

재밌는건 사람마다 프로그램의 성능이 전부 다르다는 것이다.

쉽게 말해 코드를 어떻게 작성했느냐에 따라 성능이 천차만별이 된다.

프로그래밍을 소개하는 책은 수두룩 하지만 이런식으로 성능에 관련된 책은 극히 드물다.

따라서 'C++ 최적화' 책은 중급 프로그래머라면 반드시 봐야하는 책이라고 생각한다.



책의 구성으로는 최적화가 무엇인지를 소개하는 챕터부터 시작해서, 하드웨어 최적화,

성능 측정, 동적 할당 변수 최적화, 자료구조/알고리즘 최적화 등등이다.

프로그래밍을 하면서 자주 사용하는 것들에 대한 어떻게 최적화하는지를 가르쳐줍니다. 


주로 게임 프로그래머처럼 응답속도나 실행시간에 민감한 업계에 종사하는 분들이 보시면 좋다고 생각합니다.

책의 중간에도 '코딩하기 쉬운 알고리즘을 사용해 프로그램을 개발한 다음,

프로그램의 실행 속도가 너무 느리면 되돌아가서 다시 최적화하는게 좋다' 라고 나옵니다.

저자는 차라리 처음부터 올바른 방법을 사용하고 하나의 알고리즘만 디버깅하는 편이 낫다라고 말합니다.

개인적으로는 전자가 더 우선시 되어야한다고 생각합니다.


책은 난이도는 그렇게 높지 않다고 생각합니다.

지난번 C++ 책의 내용에 비하면 읽기가 수월합니다.

다만 어떤 방법의 최적화가 더 좋은지는 알겠으나 당장 쓸 일이 없습니다.

따라서 이미 프로그램을 개발하고 성능을 디버깅하는 프로그래머 수준 정도에서 보는게 가장 좋다고 생각합니다.


댓글 0 이 리뷰가 도움이 되었나요? 공감 0
C++ 개발자의 실력 업그레이드를 위한 책 내용 평점5점   편집/디자인 평점4점 아*한 | 2019.08.10 | 추천0 | 댓글0 리뷰제목
모던 프로그래밍 언어가 많이 등장했다. 하지만 아직까지 프로그래밍을 배우는 사람이라면 역시 C와 C++정도는 마주하게 된다.그 중에서 C++ 기본을 익히고 조금 할 줄 안다 싶을 때 한 단계 업그레이드 하는데 도움을 줄 책이 바로 C++ 최적화(Optimized C++) 이다!기본서를 보고나면 중급서에 대한 목마름이 찾아온다. 사실 이 책이 중급서 이상으로 느껴질 수도 있다. 하지만 실무에서;
리뷰제목

모던 프로그래밍 언어가 많이 등장했다. 하지만 아직까지 프로그래밍을 배우는 사람이라면 역시 C와 C++정도는 마주하게 된다.

그 중에서 C++ 기본을 익히고 조금 할 줄 안다 싶을 때 한 단계 업그레이드 하는데 도움을 줄 책이 바로 C++ 최적화(Optimized C++) 이다!

기본서를 보고나면 중급서에 대한 목마름이 찾아온다. 사실 이 책이 중급서 이상으로 느껴질 수도 있다. 하지만 실무에서 C++을 평범하게 사용중인 신입 ~ 주니어 개발자라면 큰 도움이 될 것이라고 생각한다.

사소하지만 한 번 쯤 궁금했을 내용들, 가령 위와 같이 double과 float의 연산속도에 대해서도 이야기한다. 온라인에서 종종 접할 수 있는 질문이고 갑론을박이 오가기도 하는 문제이다.

도움이 되지 않는 것들이라고 해서 좋지 않은 코드에 대해서도 설명한다. 심지어 이건 StackOverFlow에서 가져온 코드이다! 야생의 함수가 나타났다!!!

개발자들이 흔히 참고하는 stackOverFlow의 코드라서 더욱 흥미롭고 모든 답변이 좋은 답변은 아닐 수 있다는 경각심을 일깨워 준다.

너무나 다양한 상황과 꿀팁들이 나열되어 있어서 모두를 소개할 수가 없다. 많은 프로그래머들의 영원한 숙제인 동기화에 대해서도 여러가지 꿀팁을 제공하니 정말 유익한 책이다.

C++ 개발자라면 정말 추천하고 싶은 책이고 사실 다른 언어 개발자가 봐도 공통된 부분은 도움이 될 것 같다. JAVA 버전도 나오면 좋겠다는 작은 기대를 해본다.


댓글 0 이 리뷰가 도움이 되었나요? 공감 0

한줄평 (5건) 한줄평 총점 8.0

혜택 및 유의사항 ?
구매 평점5점
회사에서 개발자 직원들 업무향상 서적으로 구매했습니다
이 한줄평이 도움이 되었나요? 공감 0
d*******b | 2021.10.17
구매 평점3점
생각보다 각 항목들의 부연설명과 설득력이 부실합니다.
이 한줄평이 도움이 되었나요? 공감 0
p*k | 2021.02.07
구매 평점4점
좋아요~
이 한줄평이 도움이 되었나요? 공감 0
YES마니아 : 로얄 k******e | 2020.12.09
스프링분철 서비스를 선택하세요.
수량감소 수량증가 34,200
  •  다운받은 받은 쿠폰은 결제 페이지에서 적용해 주세요.
  •  분철옵션 선택 시, 영업일 기준 3일내 출고됩니다.
  •  분철상품은 해외배송이 불가합니다.
1   34,200

스프링분철 신청 가능

뒤로 앞으로 맨위로 aniAlarm