로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

Efficient C++ : 프로그램 성능을 끌어올리는 핵심 테크닉

   
지은이 도브 불카 외   |   출판사 인포북  |   발행일 2004년 05월 14일
 
남은수량 0
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 16,000원14,400원 10%
마일리지 5% 800원
발행일 2004-05-14
ISBN 8980545312 |  9788980545315
기타정보 번역서 | 325쪽
예상출고일
배송비 2,000원 (20,000원이상 무료배송)
   
프로그래밍언어
종합지수 30p 45 위
   
이 책의 원서
  Efficient C++ : Performance Programming Techniques
Addison-Wesley Professional | Dov Bulka
주의사항 더이상 출간되지 않습니다.
 

C++에 대한 전문서. 이 책은 C++가 가진 고성능 프로그램 제작의 잠재력을 설명한다. 실무적이고 일상적인 객체 지향 디자인 법칙과 상당량의 성능을 개선시킬 수 있는 C++ 코딩 기술에 관한 내용을 포함하고 있으며, 숨겨진 연산 부하를 생성시키는 디자인과 코드의 공통적인 함정을 지적하며, C++의 강력함과 유연성을 고성능, 확장성과 혼합하여 최상의 프로그램을 작성하는데 초점을 둔다. 임시 객체, 메모리 관리, 템플릿, 상속, 가상 함수, 인라인, 참조 횟수, STL, 등에 대해 서술하고 있는 이 책의 공저가들은 상용 C++ 응용프로그램으로부터 마지막 최대한의 성능을 작성한 직접적인 경험을 가지고 있다.
용어 대역표
저자 서문
들어가며

Chapter 1 전쟁 이야기의 추적(Trace)


Chapter 2 생성자와 소멸자


Chapter 3 가상 함수(Virtual Function)

Chapter 4 반환 값 최적화(Return Value Optimization)

Chapter 5 임시 객체(Temporary)


Chapter 6 단일 쓰레드 메모리 풀링


Chapter 7 멀티쓰레드 메모리 풀링

Chapter 8 인라인의 기본

Chapter 9 인라인 - 성능 고찰

Chapter 10 인라인 트릭

Chapter 11 표준 템플릿 라이브러리(Standard Template Library)

Chapter 12 참조 횟수(Reference Counting)

Chapter 13 코딩 최적화

Chapter 14 디자인 최적화


Chapter 15 확장성


Chapter 16 시스템 아키텍쳐 종속성
참고문헌
찾아보기
Dov Bulka는 대용량 소프트웨어 제품을 시장에 출시하는 소프트웨어 영역에서 15년의 경력을 가지고 있다. 그는 IBM Domino-Go 웹 서버의 성능 설계자였으며, 이 웹 서버는 1996년 아틀란타 올림픽의 웹 사이트를 포함하여 지금까지 인터넷에 호스트된 최대 웹 사이트 중 몇 가지의 서비스를 담당하였다. 그는 듀크 대학에서 컴퓨터 과학 박사 학위를 받았다.

David Mayhew는 StarBridge Technologies, Inc의 수석 설계자이다. 그는 이 회사에서 상호 연결 통신, 피어 프로세싱, PCI 버스 개발에 관한 연구를 하고 있다. 그전에는 IBM의 네트워킹 소프트웨어 부서에서 근무하였다. 그는 버지니아 공대에서 컴퓨터 과학 박사 학위를 받았다.



【 역자 Prolog】

처음 C++라는 언어를 접한 것은 학부 3학년 운영체제 과제물인 NACHOS 프로젝트를 통해서였다. 지금은 Java로 바뀐 자습서 수준의 간단한 운영체제인데, 이후로 역자는 한 번도 C++ 프로그래밍을 손에서 떼어본 적이 없을 만큼 C++와 아주 좋은 인연을 맺고 있다. 99년 9월, 처음 취업하여 MFC로 시작한 프로페셔널 프로그래밍(역자의 실력이 뛰어나다는 의미가 아니라, 돈을 받고 코드를 작성하기 시작하였다는 의미에서 프로페셔널 프로그래밍이라는 단어를 썼음을 밝힌다)은 이후 성능이 중요한(원서에는 performance-critical이라는 표현을 사용하였다) 검색 엔진이라는 미들웨어에 이르기까지 단 한 번도 Java나 순수 C와 같은 외도(?)의 길을 간 적이 없고 오로지 초지일관 C++만을 사용해왔으니, 이 책의 내용이 가슴에 와 닿기로 따지자면 여느 개발자 못지 않을 것이다. 그런 의미에서 이 책은 단순한 번역의 연장선으로 작성하는 역자 서문이 아닌 대한민국 누구보다 이 책을 정독하였을 역자의 입장으로서, 소위 '강추'의 메시지를 전달하기 위한 역자 서문이 되겠다.

정말 여러분이 성능 때문에 C++를 버리고 C를 선택한다면 가격 대비 효용이란 요소를 생각해 보기 바란다. 물론, C로 프로그램을 작성하면 손쉽게 C++ 이상의 성능을 낼 수 있고, OO 패러다임의 역효과 때문에 의도에 어긋나는 상황이 연출될 수도 있다. 하지만, 효율적인 C++ 프로그래밍의 방법을 알고 있다면 C++가 가진 OO 특성을 100% 발휘하면서 C만큼의 성능을 낼 수 있는 프로그램을 얼마든지 작성할 수 있다. 효율적인 C++ 프로그래밍의 방법이라고 하여 거창한 것이 아니다. 장대한 역사의 영문법도 몇 백 페이지 책 한 권으로 요약될 수 있듯이, 효율적인 C++ 프로그래밍의 법칙도 유한한 사례를 파악한 후 지능적으로 활용하는 것에 지나지 않는다. 이 책은 300페이지 가량의 다소 짧게 느껴지는 분량이지만, 책의 내용을 설명하면서 곁들여놓은 기타 참고 서적 이야기를 보면, 이 책은 효율적인 C++ 프로그래밍을 위한 "손끝으로 구현할 수 있는 최고의 성능 기술에 관한 값진 개론서"임이 틀림없다.

솔직히 타 회사의 미들웨어의 개발 현황을 직접 보지 못하여 자신 있게 이야기하긴 힘들지만, 모 포탈 회사의 검색 엔진을 비롯하여 대부분의 미들웨어 제품들은 순수 C로 작성되어 있다고 한다. 이러한 소프트웨어의 개발 경험을 가진 사람들과 이야기를 나누어보면 C++보다 C를 선택한 이유는 성능이 첫 번째가 아니었다. 능숙한 C++ 프로그래머의 수가 충분하지 못하기 때문에 C++를 개발 언어로 채택하면 까다로운 이름 법칙 및 문서화의 어려움 등 개발 프로세스가 원활하지 못할 수 있다는 것이 첫 번째 이유였다. 두 번째는 소스 코드가 다양한 플랫폼에 대응할 수 있어야 하는 이식성 문제였다. C++는 GNU 계열을 제외하고 여전히 운영체제의 고유 컴파일러마다 약간의 문법이 다를 뿐 아니라, 표준 C++ 라이브러리도 잘 호환되지 않는다. 세 번째 이유가 성능이었는데, C++가 근본적으로 느리다는 것이 아니라, C++의 유연함과 확장성을 최대한 이용하면서 좋은 성능을 내는 프로그램을 작성하기가 힘들기 때문이었다. 하지만, C로 개발을 진행하다 보면 특정 비즈니스 로직을 구현하기 위해 이미 통용되는 STL과 같이 편리한 기본 라이브러리의 로직을 똑같이 구현하는 헛수고를 남발할 수도 있다.

또한, 템플릿이나 상속/연산자 오버로드와 같은 C++의 고유 기능과 containment/aggregation과 같은 C++ 디자인 패턴을 사용하면 단 몇 줄에 끝나는 다이나믹한 구현을 위해 수백 줄의 스파게티 코드를 만들어내는 오류를 범할 수도 있다. 전자는 개발 언어가 C로 내정된 조직에 합류하여 자신에게 익숙한 STL의 로직을 C 구조체로 직접 구현해서 사용한 후배 개발자의 경험담이고, 후자는 속도를 위해 고전적인 C 스타일의 코드와 구조체 이상의 기능을 가지지 않은 클래스만으로 대형 프로젝트를 개발해 본 역자의 경험이다. 지나친 일반화의 오류를 범하고 있는지도 모르지만, C++의 효율을 제대로만 이해할 수 있다면 효율적인 C++ 프로그래밍을 수행할 수 있는 방법을 찾아 C++의 강력함과 유연성을 더해 나가는 방식으로 개발자들은 변해나갈 수밖에 없다. 이런 의미에서 이 책은 중급 C/C++ 프로그래머들의 필독서이다.

역자가 개발하는 검색 엔진은 100% C++로 작성되었다. 올해로 4년을 맞는 이 제품을 개발하며 느낀 점은, 효율적인 프로그래밍은 소프트웨어가 포함하는 비즈니스 로직과 개발 언어의 특성을 잘 파악하여 훌륭한 디자인과 아키텍처를 구현하는 것이 전부가 아니라는 것이다. 사실 어렴풋이 느끼고는 있었지만, 이 책을 통하여 위와 같은 문제 의식을 구체적으로 정리할 수 있었고 소프트웨어 개발을 바라보는 시각을 한층 더 높이게 되었다. 하드웨어와 운영체제 등 소프트웨어 하부 구조의 원리를 잘 알지 못하면 궁극적인 성능을 조절하기는 힘들다. 예를 들어, 쓰레드 개수가 많다고 해서 효율이 높아지는 것이 아니다. 또한, 디스크 IO를 줄이기 위해 압축하여 저장한 데이터를 메모리에 로드하고 압축을 푸는 방식의 메모리 위주 작업이 과연 압축하지 않은 디스크 IO에 비해 얼마나 더 효율적일까? 당연 하드웨어와 운영체제에 따라 다를 것이다.

이 책은 라이브러리나 C++ 기능에 국한되지 않고, 효율적인 프로그래밍을 하기 위한 운영체제와 하드웨어 이야기까지 단순한 트릭 이외에 근본적인 내용도 많이 포함하고 있다. 그래서 전산학과 학부에서 배우는 컴퓨터 구조와 운영체제 과목에 버금가는 기본 지식이 없다면 약간 이해하기 힘든 내용이 후반부에 있다. 모 보안회사에서 침입 탐지 시스템을 개발하는 친구는 성능을 좀더 높이기 위해 CPU 공부를 한다고 한다. 이 책의 예비 독자이자, 구루(GURU)를 꿈꾸는 여러분은 이 책을 통해 이러한 문제 의식을 깨닫는 것만으로도 책의 가치는 다 할 것이라는 이야기를 자신 있게 건넨다.
괜찮은책
송재운님이 쓰신 서평보기 I 평점 I 조회수(1882) I 공감 (0) I 블로그
c++ 프로그램의 성능에 관련되 내용의 책이다.  책의 내용은 괜찮은거 같다.다만 번역이 조금 매끄럽지 않은 부분이 있지만그래도 재미있게 읽었다. 내용의 구성중괜찮았던 점은 해당 코드와 그 코드에 대한 컴파일러가 최적화 했을 시의 코드 그리고 그에 대한 어셈블리어 코드 (있는 경우는 많이 없었지만)그에 따른 성능 그래프  로 보여주고 있어그 결과를 한눈에 볼 수 있어 좋았던거 같다. 하드웨어적인 부분도 같이 언급하고 있어 그 부분도 또한 좋았다. ...
최적화에 관한한 필수 도서!
박민근님이 쓰신 서평보기 I 평점 I 조회수(1834) I 공감 (0) I 블로그
C++의 최적화, 퍼포먼스에 관해서는 정말로 상당히 유용한 책입니다.나와있는 테크닉들이 새롭거나 생소한 것들이 아니라, 가상함수와 인라인, 메모리 풀링같은 매일 매일 자주 쓰면서, 최적화에 상당히 크리티컬한 항목들을 전문적으로 다루고 있습니다.그렇다고 단지, 말로만 이렇게 쓰면 빠르다, 좋다. 라는 것이 아니라.매번 최적화에 관한 속도를 이야기 할때마다, 직접 비교한 그래프와 표를 통해서,객관적으로 비교하고 여러가지 케이스에 대한 데이터를 제공하고 있습...
내용은 좋지만...
양승민님이 쓰신 서평보기 I 평점 I 조회수(1414) I 공감 (0) I 블로그
아래분의 서평에도 적혀 있지만 책 내용만 본다면 나쁠건 없는 내용이지만 이런 류의 책을 많이 가지고 계시다면 어디선가 봤었던 듯한 내용들로 구성되어 있을 겁니다.(하지만 이런건 어떤 책을 보던 마찬가지죠. 없다면 한권 지르기엔.. ^ㅡ^*) 책 내용은 유용합니다. 아직 다 보진 못했지만 틈틈히 잘 보고 있습니다. ^^
볼 필요가 없을듯
김성재님이 쓰신 서평보기 I 평점 I 조회수(1192) I 공감 (0) I 블로그
내용 자체는 대부분 다른 책에서 나온것입니다. 여러군데 분산되어 있던 내용들을 한군데에 모아놓은 내용이죠 인라인, 임시객체, RVO, 생성자 소멸자, 가상함수 등은 C++책에 다 나온 내용이고끝 부분에 나오는 내용들은 운영체제 책에 나오는 내용이 아닐런지? 몰랐다면 보시는것이 좋겠지만 특별한 내용을 기대하고 보시는것은 좋지 않습니다.
속도 부분을 주로 본다면 Effective 시리즈보다 이 책
조보현님이 쓰신 서평보기 I 평점 I 조회수(1895) I 공감 (0) I 블로그
제가 C++ 책들을 볼때 주로 눈여겨 봤던 항목들은 성능 부분이였습니다. 어떻게 하면 더 빨라질 수 있을까.. 속도에 관련된 부분이 나오면 밑줄을 쳐가며 봤는데 이 책은 그런 내용들로 구성됐네요. 군더더기(?) 없이 성능과 관련된 내용을  중심적으로 보고싶다면 이 책을 추천합니다 Effective C++ , More Effective C++ 가 구조, 성능, 기타 주목해야 할 부분 등을 포괄적으로 다뤘다고 하면 Efficient C++ 에선 철저하게 속도와 관련된 성능/최적...
중,고급자를 위한 책
최영진님이 쓰신 서평보기 I 평점 I 조회수(1488) I 공감 (0) I 블로그
중,고급자를 위한 책. 초급자는 다소 어려울듯..
최고의 성능을 위한 최고의 책
김태현님이 쓰신 서평보기 I 평점 I 조회수(1288) I 공감 (0) I 블로그
그냥 짠다고 프로그램이 아니라는것을 알려준 책이다Effective C++과 좀더 다른 내용을 가진. 전체가 아니라.. 부분부분에 대해서.어덯게 해야지 속도가 나오는지에 대한 내용이 들어있다나는 코딩을 할때 한줄에 많은 내용을 넣는것을 좋아한다..근데 이게 조금 억어지 비슷하게 쓰일때가 있는데 이책에서는 이부분을 좀더 멋지게 풀어낸 부분이있다..if( m_nLevel > 5 )    m_nLevel = 0이런 경우가 생기는데 이걸 XXXXXXXXX  ㅋㅎㅎㅎ 이렇게 해결을 했다......
성능보다 중요한...
박진용님이 쓰신 서평보기 I 평점 I 조회수(1543) I 공감 (0) I 블로그
이책은 성능이란 주제로 C++을 다루고 있지만 성능을 위한 C++보다는 C++를 이해할수 있는 내용이 들어있다고 확신합니다. 임시객체, 인라인, 성능과 유연성과의 관계 등 전체적으로 좋은 내용이 무척 많았습니다.읽으면서 내내 재밌게 봤죠. 다면 깊은 내용에 비해 설명이 지면과 설명의 부족을 많이 느꼈습니다.레지스터등을 한두페이지로 설명을 해놨지만 기본지식이 부족한 저로써는 이해하기가 힘들더 군요.-_-;; 이책은 백미는 "임시객체"장이라 생각되네요...
c++ 성능 향상에 관한 필독서, 추천입니다.
안재석님이 쓰신 서평보기 I 평점 I 조회수(2271) I 공감 (0) I 블로그
effective c++, more effective c++ 등을 보고, 감동한 분들 중에 아직 이 책을 보지 않으신 분이 있다면 꼭 한번 읽을 가치가 있는 책이라 생각됩니다.   번역 수준은 매끄러운 편이라 생각 됩니다. 번역에 상당히 실망하신 분도 있는 듯한데, 제가 보기에 그렇게 억지 스런 번역은 별루 없었던 것 같구요.C++ primer plus,  C++ indepth 시리즈 등 다른 많은 번역서 들과 비교해 중상 정도 되는 듯해 보입니다. 원서에 부담을 느끼시는 분들이 보기에 충분히 매...
다들 침이 마르도록 칭찬하는데... 쓴소리
서봉수님이 쓰신 서평보기 I 평점 I 조회수(1557) I 공감 (0) I 블로그
전 꽤 오래전부터 C++ 을 사용해 왔고 원서로든 뭐든 나와있는 이런류의 책들은 거의 대부분 읽었습니다... 하지만 요즘 이렇게 번역서로 하나하나 출간될때마다 기쁜 마음으로 다시 사서 읽어봅니다.복습도 할겸... 정겨운 우리말로 읽으면 그때 놓쳤던 것들도 새롭게 발견하는 기쁨도 있고 하니... 이책도 제가 굉장히 좋아하는 책중에 하나입니다.원래의 책 내용은 별5개가 아니라 6개로 "무조건" 강추인 책입니다만.번역서의 번역의 질은 상당히 실망입니다. ...
Efficient C++. 성능에 목마를 때
이충영님이 쓰신 서평보기 I 평점 I 조회수(2261) I 공감 (0) I 블로그
텍스트 로그파일을 읽어들여서 분석하여 결과를 만들어내는 로그분석기.그리고 250유저 이상이 보내는 로그데이터를 수신하여 DB에 저장하는 로그서버를 만들었을 때 내 가장 큰 고민은 성능이었다.처음 로그분석기를 만들었을 때에는 일주일분량의 로그를 분석하는데 5분이 넘게 걸렸었고 그 시간을 단축하기 위해서 자료구조를 정말 열심히 공부했었다.로그서버를 만들때에는 짧은 패킷을 다량으로 보내는 수많은 클라이언트들로 인해 CPU점유율 100%를 만들어버리는 서버의 CPU점유...
정말 꼭 봐야 될 책입니다.
최흥배님이 쓰신 서평보기 I 평점 I 조회수(1993) I 공감 (0) I 블로그
저말고 다른 분들의 이 책에 대한 서평을 보면 극찬을 하듯이 저도 이 책에 대해서 칭찬을 하게 되네요. C++을 사용하면서 저같은 게임프로그래머들은 하드웨어가 좋아져도 언제나 성능에 상당히 민감해 있기 때문에 언제나 신경이 쓰이는데 기존에는 이런것에 대한 책들이 거의 없었어 주위의 이야기나 본인의 경험으로 터득하고 있는 이 책에서는 가능한 정확한 방법으로 테스트를 해서 수치적으로 보여주니 상당히 공감하게 되더군요. 일단 책은 성능에 관한 책이다 보니...
Effective C++ 시리즈와 쌍벽을 이룰만한 작품
조해진님이 쓰신 서평보기 I 평점 I 조회수(1580) I 공감 (0) I 블로그
Effective C++ 시리즈을 번역하신 곽용재님이  극찬했던 책이기도 하고 인포북에도 이책을 번역해 달라 요청한봐도 있어서, 기대를 많이 한 책입니다그래서 도서관에 주문해 놓고  도서관에 비치되지 마자 빌려 읽어 보았습니다내용은 대 만족!먼저 책의 내용을 보자면  고급 C++ 책에서 다룰만한 내용을 중심으로이야기를 펼쳐가고 있습니다하지만 다른 고급 C++ 책과는 뭔가 달라도 다른점이 .....컴파일러가 내부적으로 만드는 코드를 슈도 코드식으로 보여주고 성능...
Unix System Programming 관련 책을 보신 후 보세요
이상범님이 쓰신 서평보기 I 평점 I 조회수(1049) I 공감 (0) I 블로그
안녕하세요..오랜만에 서평을 쓰내요..우리가 알고 있는 C++를 좀더 효과적으로 사용하기외한 내용입니다.그런나 상식적으로 C++을 공부하다보면 대부분 접하는 부분이지요...문론 문법적인 요소를 설명하는 것으 아니구요..Unix C++관점에서 많은 내용이 실린 듯합니다.. 이책을 보시려면 먼져 Unix System Programming 관련 책을 보신후보면 도움이 될 듯 합니다.C++의 문법적인 내용만 아시는 분들에게는 별루 도움이 않될 듯 합니다. 그럼 수고들 하세요  
실무에 유용한 책
김지운님이 쓰신 서평보기 I 평점 I 조회수(956) I 공감 (0) I 블로그
안녕하세요?? 태어나서 생전 처음 써보는 서평이네요^^;;아직 실력도 부족하여 책에대해 서평을 잘 쓸수 있을련지 모르겠지만 한번 써봅니다..제가 삶이 좀 긍정적이라서 단점등은 잘 찾아내질 못하오니ㅡㅡ; 잘 필터링해서 보시길 바랍니다~저의 경우에는 Effective C++, More Effective C++, C++ in depth 시리즈등 많은 책들은 처음 보고나서 지속적으로 보기가 힘들고 가끔 생각나거나 필요할때만 봤었는데...제가 좀 게을러요ㅋㅋ그리고 실무에 바로바로 적용할수 있는 부분은 별...
매우 흥미로운 책!!
김영윤님이 쓰신 서평보기 I 평점 I 조회수(965) I 공감 (0) I 블로그
Scott Meyers의 Effective 시리즈와는 또다른 흥미로운 주제를 가지고 있다.이 책은 Effective처럼 많은 내용을 다루고 있지는 않지만 평소에 궁금해했지만 쉽게 지나치기 쉽고, 또 흔히 접해볼수 없는 내용들로 구성되어 있다. 특히 멀티 스레드 환경에서 좀더 효율적으로 사용하는 방법이나 수행능력을 보여주고 최적화시키는 내용들...그리고 인라인에 대한 모든것들...번역 상태에 대해서는 모르겠으나 원서의 내용은 별5개가 절대로 아깝지 않다.그러면서도 책은 아주 얇아서 들고...
 
전체평균(53)
회원평점   회원서평수 16
괜찮은책
송재운 님  2009-01-19
최적화에 관한한 필수 도서!
박민근 님  2008-12-02
내용은 좋지만...
양승민 님  2007-12-18
볼 필요가 없을듯
김성재 님  2007-01-22
속도 부분을 주로 본다면 Effective 시리즈보다 이 책
조보현 님  2006-12-13
중,고급자를 위한 책
최영진 님  2006-11-17
최고의 성능을 위한 최고의 책
김태현 님  2006-02-26
성능보다 중요한...
박진용 님  2005-01-07
c++ 성능 향상에 관한 필독서, 추천입니다.
안재석 님  2004-09-24
다들 침이 마르도록 칭찬하는데... 쓴소리
서봉수 님  2004-08-05
Efficient C++. 성능에 목마를 때
이충영 님  2004-07-28
정말 꼭 봐야 될 책입니다.
최흥배 님  2004-06-12
Effective C++ 시리즈와 쌍벽을 이룰만한 작품
조해진 님  2004-06-06
Unix System Programming 관련 책을 보신 후 보세요
이상범 님  2004-06-02
실무에 유용한 책
김지운 님  2004-05-30
매우 흥미로운 책!!
김영윤 님  2004-04-30
이메일주소수집거부