콘텐츠 바로가기
본문 바로가기


블로그 전체검색
C++ 최적화

[도서] C++ 최적화

커트 건서로스 저/옥찬호 역/박수현 감수

내용 평점 5점

구성 평점 4점


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

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

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

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



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

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

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

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

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



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

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

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

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

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

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

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

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



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

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

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

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

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

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



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

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

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


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

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

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

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

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


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

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

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

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


 
취소

댓글쓰기

저장
덧글 작성
0/1,000

댓글 수 0

댓글쓰기
첫 댓글을 작성해주세요.

PRIDE1