메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

Accelerated C++

C++를 C++답게 배우는 16가지 방법

한빛미디어

번역서

판매중

  • 저자 : 앤드루 쾨니히(Andrew Koenig) , 바버라 E. 무
  • 번역 : 류태호
  • 출간 : 2018-11-05
  • 페이지 : 508 쪽
  • ISBN : 9791162241301
  • 물류코드 :10130
  • 초급 초중급 중급 중고급 고급
3.8점 (11명)
좋아요 : 16

라이브러리 중심으로 배우는 C++ 핵심 

 

이 책은 C++ 프로그램 작성 방법을 빠르게 배우고 싶은 분을 위해 C++의 가장 유용한 부분을 골라 담았습니다. 또한 C++의 기반이 되는 C를 배우지 않고도 자연스럽게 C++ 프로그램을 작성할 수 있게 합니다.

 

일반적으로 C++ 입문서는 문법을 다룹니다. 하지만 이 책은 문법뿐만 아니라 좋은 예제로 생산성 높은 프로그래밍 방법을 알려줍니다. 더 자연스럽고 효과적으로 C++를 배우고 다루기를 원하는 사람을 진정한 C++ 프로그래밍의 세계로 안내합니다.

 

이 책의 특징

 

1. 핵심 개념을 적용하면서 발전시키는 학생 성적 관리 프로그램 만들기

이 책은 학생 성적 관리 프로그램을 만들고 이를 C++ 개념으로 발전시켜나가는 과정으로 C++ 프로그래밍을 제대로 이해할 수 있도록 도와줍니다. 처음에 만든 학생 성적 관리 프로그램을 C++와 객체지향 프로그래밍 방식으로 수정하다 보면 C++ 프로그래밍이 무엇인지 자연스럽게 알 수 있습니다.

 

2. 핵심 정리로 배운 내용 다지기

각 장의 끝에는 해당 장에서 배운 내용을 정리하는 핵심 정리가 있습니다. 배운 내용을 확실하게 내 것으로 만들고 싶다면 핵심 정리를 꼭 살펴보기 바랍니다. 또한 이 책을 읽은 후 해당 개념을 다시 기억하고 싶을 때라면 핵심 정리를 가장 먼저 펼쳐보세요.

 

3. 연습문제를 풀면서 다지는 응용 기술 습득

해당 장과 연계된 내용을 다양한 방식으로 응용해 프로그래밍할 수 있는 연습문제를 수록했습니다. 쉬운 문제부터 어려운 문제까지 차례로 해결하다 보면 C++ 프로그래밍에 자연스레 익숙해질 수 있습니다.

 

대상 독자

  • C 혹은 C++ 프로그래밍을 접한 적이 있는 C++ 초급 프로그래머
  • 다른 프로그래밍 언어를 배운 상태에서 C++를 배우려는 개발자

 

앤드루 쾨니히(Andrew Koenig) 저자

앤드루 쾨니히(Andrew Koenig)

AT&T 섀넌(Shannon) 연구실의 대규모 프로그래밍 연구 분과에서 일했으며 C++ 표준 위원회의 프로젝트 책임자입니다. 30년 이상의 경력이 있는 프로그래머로 C++에 대한 150편 이상의 논문을 발표했고, 세계 각지에서 강연도 했습니다. 지은 책으로 『C Traps and Pitfalls』, 『Ruminations on C++』 등이 있습니다.

바버라 E. 무 저자

바버라 E. 무

소프트웨어 분야에서 20년을 일한 독립 컨설턴트입니다. AT&T에서 15년을 일하면서 C++로 만든 최초의 상용 제품 중 하나를 개발했습니다. 이때 AT&T의 첫 번째 C++ 컴파일러 프로젝트를 관리했으며, 월드넷 인터넷 서비스 사업을 지휘하기도 있습니다. 지은 책으로 『Ruminations on C++』가 있습니다.

류태호 역자

류태호

한국항공대학교에서 컴퓨터정보공학을 공부하고 기업에서 물류 데이터 분석 업무를 했습니다. 궁금하고 재미있는 일을 찾아 프리랜서로 전향 후 다년간 교육 컨설턴트로 활동했고 현재 번역가로 영역을 넓히고 있습니다.

CHAPTER 0 C++ 시작하기

0.1 주석

0.2 #include

0.3 main 함수

0.4 중괄호

0.5 표준 라이브러리를 사용한 출력

0.6 반환문

0.7 더 깊이 살펴보기

0.8 핵심 정리

연습문제

 

CHAPTER 1 문자열 사용

1.1 입력

1.2 테두리

1.3 핵심 정리

연습문제

 

CHAPTER 2 반복문과 카운팅

2.1 해결해야 하는 문제

2.2 전체적인 구조

2.3 주어진 개수만큼 행 출력하기

2.4 행 출력하기

2.5 프로그램 완성하기

2.6 카운팅

2.7 핵심 정리

연습문제

 

CHAPTER 3 데이터 일괄 처리

3.1 학생의 최종 점수 계산하기

3.2 평균값 대신 중앙값 사용하기

3.3 핵심 정리

연습문제

 

CHAPTER 4 프로그램 및 데이터 구조화

4.1 연산 구조화

4.2 데이터 구조화

4.3 프로그램 통합하기

4.4 성적 산출 프로그램 분할하기

4.5 수정된 성적 산출 프로그램

4.6 핵심 정리

연습문제

 

CHAPTER 5 순차 컨테이너와 문자열 분석

5.1 학생 분류

5.2 반복자

5.3 인덱스 대신 반복자 사용하기

5.4 더 나은 성능을 위한 데이터 구조

5.5 리스트 타입

5.6 문자열 분할

5.7 split 함수 테스트

5.8 문자열 결합

5.9 핵심 정리

연습문제

 

CHAPTER 6 라이브러리 알고리즘

6.1 문자열 분석

6.2 성적 산출 방식 비교

6.3 학생 분류 다시 살펴보기

6.4 알고리즘, 컨테이너, 반복자

6.5 핵심 정리

연습문제

 

CHAPTER 7 연관 컨테이너

7.1 효율적인 탐색을 위한 컨테이너

7.2 단어의 빈도

7.3 상호 참조 테이블

7.4 문장 만들기

7.5 성능에 대한 참고 사항

7.6 핵심 정리

연습문제

 

CHAPTER 8 제네릭 함수

8.1 제네릭 함수

8.2 데이터 구조 독립성

8.3 입력 및 출력 반복자

8.4 융통성을 위한 반복자 사용

8.5 핵심 정리

연습문제

 

CHAPTER 9 새로운 타입 정의

9.1 Student_info 다시 살펴보기

9.2 클래스 타입

9.3 보호 레이블

9.4 Student_info 클래스

9.5 생성자

9.6 Student_info 클래스 사용하기

9.7 핵심 정리

연습문제

 

CHAPTER 10 메모리 관리 및 저수준 데이터 구조

10.1 포인터와 배열

10.2 문자열 리터럴 다시 살펴보기

10.3 문자 포인터 배열의 초기화

10.4 main 함수의 인수

10.5 파일 읽기 및 쓰기

10.6 메모리 관리

10.7 핵심 정리

연습문제

 

CHAPTER 11 추상 데이터 타입

11.1 Vec 클래스

11.2 Vec 클래스 구현하기

11.3 복사 제어

11.4 동적인 Vec

11.5 유연한 메모리 관리

11.6 핵심 정리

연습문제

 

CHAPTER 12 값처럼 동작하는 클래스 객체

12.1 간단한 문자열 클래스

12.2 자동 변환

12.3 Str 연산

12.4 주의해야 할 변환

12.5 변환 연산자

12.6 변환 및 메모리 관리

12.7 핵심 정리

연습문제

 

CHAPTER 13 상속과 동적 바인딩

13.1 상속

13.2 다형성과 가상 함수

13.3 상속을 사용하여 문제 해결하기

13.4 핸들 클래스

13.5 핸들 클래스 사용하기

13.6 미묘한 사항들

13.7 핵심 정리

연습문제

 

CHAPTER 14 메모리 관리 자동화

14.1 핸들 클래스

14.2 참조 카운트

14.3 데이터 공유를 결정할 수 있는 핸들 클래스

14.4 Ptr 핸들 클래스 개선하기

14.5 핵심 정리

연습문제

 

CHAPTER 15 문자 그림 다시 살펴보기

15.1 설계

15.2 구현

15.3 핵심 정리

연습문제

 

CHAPTER 16 앞으로 나아갈 방향

16.1 추상화 사용하기

16.2 다음 학습 단계

연습문제

 

APPENDIX A C++ 세부 사항

A.1 선언문

A.2 타입

A.3 표현식

A.4 실행문

 

APPENDIX B 라이브러리 요약

B.1 입출력

B.2 컨테이너와 반복자

B.3 알고리즘

숙련된 C++ 프로그래머로 가는 길잡이

C++는 기존 C에서 좀 더 발전한 프로그래밍 언어입니다. 하지만 C를 처음 배웠던 사람은 자칫 C++에서 제시하는 프로그래밍 방법이 아닌 C 프로그래밍을 하던 습관대로 프로그램을 만들려고 할지도 모릅니다.

 

이 책은 16개 장과 부록 2개를 통해 초중급 프로그래머가 C++를 C++답게 코딩하는 방법을 제대로 알려줍니다. C++ 표준 라이브러리를 이용해 함수, 데이터 구조, 클래스, 상속 등 객체지향 프로그래밍 개념으로 C++ 프로그래밍을 하는 방법을 순서대로 소개합니다.

 

또한 특정 문제를 해결하는 프로그램을 작성하는 과정 각각에 도움이 되는 C++ 및 표준 라이브러리의 기능을 소개하는 독특한 방식을 취합니다. 단순한 문법 파악이 아닌 프로그래밍하는 원리를 알 수 있는 학습 구조로 이루어져 있습니다. 프로그래밍 언어를 한 번이라도 학습한 적 있는 분, STL을 사용하여 C++ 프로그래밍의 속도를 높이고 싶은 분이라면 이 책으로 C++ 프로그래밍을 제대로 배우기 바랍니다.

초보자가 이해하긴 어려운 내용이 다수 있지만, 전반적으로 짜임새 있게 구성되어 있는 좋은 책입니다.

 

일단 C 언어나 C++ 기초지식이 있는 분이 들어야 한다고 생각합니다.

 

예제 코드를 분석하면서 내용을 정리하는 방식이라서, 코드를 볼 줄 아는 분들이 보셔야 한다고 생각이 드네요.

예전부터 C++을 배워야 할 필요성을 느껴 왔다.

알고리즘 문제를 풀 때, 그래프나 노드 문제에서 어려움을 겪었던 것이다.

C++은 다양한 라이브러리로 인해 그래프를 구현하기 편리하다고 들었다.

무엇보다 인터넷에서 코드를 찾아 보면, 전공자들의 코드는 C++로 짜는 경우가 압도적으로 많았던 것이다.

그래서 이번 기회에 책을 이용해 C++을 배워 보고 싶었다.

 

KakaoTalk_20190202_211352307.jpg

 

책의 구성은 C++를 잘 모르는 상태에서도 쉽게 배울 수 있게 해 놓았다.

C언어를 포함한 기타 다른 프로그래밍 언어를 경험해 왔기에, 초반 부분은 설렁설렁 건너 뛰었다.

그 후로 프로그램 및 데이터 구조화, 순차 컨테이너, 문자열 분석 등 유용한 내용이 잘 나와 있다.

특히 내가 관심 있는 리스트와 벡터 부분, 문자열 부분을 유심히 읽었다.

확실히 명료하게 잘 설명해 놓고 있어, 이 책이 유명한 이유를 알 것 같았다.

 

이 책을 읽고 나서 C++에 대해 어느 정도 알 수 있게 되었다.

진정한 전공자에 한 발짝 다가간 느낌이다.

아주 반가운 책이 출간되었다. 한동안 절판되었는지라 중고가가 올랐던 책으로 알고 있다

C++ C++답게 사용하는 법부터 템플릿을 다루는 방법까지

이펙티브 시리즈와 함께 언어의 고급주제들을 다루는 시리즈.

일명 빨간책 시리즈. 중의 하나. Accelerated C++ 다시 한번 출간 되었다.

 

책을 읽기 저서 탈고 후의 소회나 책의 개략적인 방향을 서술해둔 저자 서문을 읽어보는 편이다.

책의 서문에서 저자는 [컴퓨터의 종류는 다양하고 성능이 계속 개선되므로 안에서 컴퓨터에서 C++ 프로그램을 실행하는 방법을 소개하는 것은 현실적이지 않으며 C++프로그램을 컴파일하고 실행하는 방법을 아직 모른다면 인터넷 검색으로 현재 자신이 사용하는 컴퓨터 환경에 맞는 방법을 참고하기 바란다] 밝힌다.

개인적으로는, 아주~ 개인적으로는 매우 바람직한 생각과 자세라 생각한다.

다운로드 컨텐츠로 판매되어 지면의 제약이 없은 것도 아니고 

제한된 지면 상에 중요한 의미나 통찰을 없는 금새 레거시가 정보라면 

과감히 생략하고 역할을 잘할 수있는 누군가에게(여기선 인터넷) 위임하는 것이

매우 합리적이고 프로그래머로서의 미덕이 아닐까

 

C++ 기본적인 기능부터(그렇다고 초심자가 바로 이해할만큼 친절하지는 않다. 확실히 중급자용.) STL 템플릿을 다루며 STL 템플릿의 개념 자체를 설명하기보다는

예제를 통해 필요한 상황을 설정하고 그에 맞는 기능을 찾아 설명한다.

필요성을 느끼고 쉽게 기능을 이해하기 위한 목적에 충실하지만 

중급자 숙련자를 대상으로 해서인지 고등학생때의수학의 정석 떠오르게 하기도 한다.

어떤 느낌인지는 개인마다 다르겠지.

 

책은 쉽지 않다

전체적으로 고급주제들을 잘비볐다고 생각한다.

이책을 읽고 쉽게 풀거나 혹은 어렵지만 폭넓게 다루는 책이 필요하다.

글이 딱딱해 불편하기도 하지만 개념에 집착하지 않아 이해 자체가 어렵지는 않다

자연스럽게 알고 싶게 한다

 

책을 읽고 이펙티브 시리즈나 템플릿을 다루는 책을 보면 좋을 것이다.

 

01713170-F904-4AEE-9B07-A1C8081AA7C0.jpeg

 


 

게임을 만들거나 MFC로 윈도우 프로그래밍을 할 때 C++을 많이 사용했습니다. 최근에는 다른 옵션들이 많아서 그만큼 자주 사용되지는 않지만 성능을 중요시 여기는 프로그램에는 C언어나 C++만한 것이 없다고 생각합니다. 개인적으로도 가장 좋아하는 언어지만 사실 이 C++이라는 것이 다른 프로그래밍 언어보다 조금 어렵습니다. 예전에도 그랬지만 C++을 빠르게 학습하기 위해서는 ‘Accelerated C++’이라는 책이 괜찮은 것 같습니다. 이번에 이 책이 새로 번역되어 나왔습니다. 반가운 마음에 다시 한번 읽어봤네요.

 

‘Accelerated C++’의 가장 큰 장점은 C언어를 몰라도 된다는 것입니다. C언어에서 사용하는 것을 빼고, 순수 C++언어만 가지고 설명을 합니다. 다른 언어를 사용해본 경험이 있다면 더 편하게 이 책을 읽을 수 있겠지만, 처음 프로그래밍을 하는 사람이라도 충분히 도전해볼 수 있는 책이라고 생각합니다. 그래도 이 책이 비전공자를 위해 만든 프로그래밍 입문서는 아니기 때문에 약간의 난이도는 있습니다. 통합 개발환경을 설치하고 컴파일, 디버깅, 실행하는 방법은 인터넷 검색을 해서 직접 알아봐야 합니다.

 

‘Accelerated C++’은 프로그래밍 언어 문법을 설명하기 위해 예시를 만드는 책이 아닙니다. 프로그래밍을 진행하면서 필요한 C++의 기능을 사용하는 책입니다. 그래서 그런지 C++에서 정말 필요한 내용만 반복해서 설명하고 있습니다. 예전 1000페이지가 넘어가는 'C++ 기초 플러스'로 C++ 공부를 시작한 저로서는 반가운 구성이 아닐 수 없습니다. 물론 기초 플러스 책도 레퍼런스용으로는 좋습니다만, 입문자가 감당하기에는 너무 두껍고 뭐가 중요한지 잘 모르고 공부할 수 있다는 단점이 있다는 것입니다.

 

챕터 0부터 챕터 7까지는 C++언어의 사용에 중점을 둡니다. C++의 기본 기능과 표준 라이브러리를 활용하여 프로그래밍을 합니다. 기본적으로 제공하는 기능을 사용함으로서 프로그래밍이 쉽다는 인상을 심겨주려는 구성인 것 같네요. 예전에는 STL과 같은 내용은 C++기초를 공부하고 난 후 나중에 배우는 내용이었는데 이 책에서는 바로 처음부터 사용을 해버리네요. 이렇게 C++을 사용하여 프로그래밍하는 방법을 익힌 후 챕터 8부터 직접 이러한 기능을 만드는 것을 배웁니다.

 

챕터8 ‘제네릭 함수’, 챕터9 ‘새로운 타입 정의’부터 나만의 클래스를 정의하는 방법을 설명합니다. 그리고 무시무시한 포인터라는 것도 챕터10에서야 등장합니다. (예전에는 이 포인터 때문에 프로그래밍을 포기하는 학생들이 많았습니다.) 그래서 챕터8 부터는 조금 난이도가 있다고 생각할 수 있습니다. 책 앞부분에서 C++ 프로그래밍에 흥미를 느꼈다면 하나씩 정복을 할 수 있을 것입니다. 

 

각 챕터마다 마지막 부분에 핵심정리와 연습문제가 있어서 배운 내용을 정리하기에 좋습니다. 시간이 있다면 연습문제를 꼭 풀어보세요. (쉽게 배운 내용은 머리에서 빨리 날아갑니다. 시간을 투자한 만큼 효과가 있어요.)

 

부록에는 ‘C++ 세부 사항’과 ‘라이브러리 요약’이 있습니다. C++에 관한 중요한 내용이 잘 정리되어 있어서 개발을 하다가 모르게 있으면 자주 참조할 것 같네요.

 

자주 사용하는 기능을 중심으로 C++언어를 제대로 배우고 싶은 분에게 ‘Accelerated C++’을 추천합니다. 500페이지에 C++에 대한 많은 내용을 담고 있어서 조금 딱딱하고 불친절하게 느낄 수도 있겠지만 C++을 정말 제대로 사용하기 위해서는 필요한 내용이라고 생각합니다. 참고로 이 책에는 GUI 프로그래밍, 네트워크 프로그래밍에 대한 내용은 없습니다. 'Accelerated C++'은 C++의 시작이기 때문에 이것을 출발점으로 해서 다양한 분야의 프로그래밍을 해볼 수 있을 것입니다.

 

원문이 영어판이고 번역서에도 짧게 영어 용어를 접할 수 있는 부분은 마음에 듭니다. 우리가 문제를 해결하기 어려울 때 Stack Overflow를 찾아보게 되는데 영어 용어에 대한 이해도가 높다면 아무래도 큰 도움이 되겠지요.

 

책은 전반적으로 보기에 깔끔합니다

 

이 책 한 권으로 C++를 모두 이해할 수는 없을 것입니다. 하지만 천천히 자세히 읽어보아야 할 책으로 이 책이 괜찮다고 말할 수 있겠습니다.

 

 

C는 어느정도 공부해본 경험이 있는 독자입니다.

 

책 초반부에는 C++을 공부하는 효과적이고, 새로운 방식일 것이라면서 시작을 합니다

막상 공부해보면 이걸 C++을 처음 접하는 사람이 보았을 때 이해가 가겠냐? 싶은 정도네요..

 

우선 연습문제 해설이 없다는 것부터 이해가 안가고,

새로운 함수가 이런 기능을 한다라고 소개는 하지만 활용하는 법은 전혀 제시되어있지 않고

연습문제는 그 함수를 활용해야하지만, 답지도 없으니 정답을 알 수도 없네요

 

C++ 입문용 교재는 아니라고 판단됩니다. C++ 기본서를 보신 분이 읽으면 괜찮을 책인듯 싶네요

Accelerated c++
      
이 글을 보는 모든 분들께 그리고 이렇게 리뷰를 할 수 있게 제공해주신 한빛미디어 관계자분께도
진심으로 감사의 인사를 드립니다.
이번에 리뷰할 서적은 핵! 어렵다고 생각하는 C++이다.
음! 그래도 도전!

 

 

1.jpg

 

2.jpg

 

 

표지는 너무 이쁘다.

 

C++를 C++답게 배우는 16가지 방법!

하지만 이쁜 표지만큼 속 내용도 재미있고 흥미롭게 다가올까!?

우리는 C++이 매우 어려운 언어임을 익히 들었기 때문에

사실, 이 서적을 보는 많은 분들께서 두려움 반 호기심 반으로 시작하실 것 같다.

그래도 열어보자.

 

 

3.jpg

 

4.jpg

 

5.jpg

 

 

자! 첫날부터 가보자.

당연히 3~4일차까지는 항상 그랬듯이 문제가 없을 것이다.

그 이후부터 프로젝트에 어떻게 적용할까 고민하면서 보는 것이 습관이 되어 있으므로 조금 머리가 아플 것이라 생각한다.

이번 서적은 C++라서 더욱 그럴 것 같다!

생각보다 구조가 신선하다.

1장부터 바로 소스를 적는다. 이 언어가 어떤 언어인지 역사는 어떠했는지 이런 것은 나오지 않는다.

백문의 불여일타의 실현인가!

아주 쏙 마음에 든다!

다른 서적처럼 핵심정리와 연습문제는 당연히 있다. 그러나 소스부터 기술하고 그 다음에 설명하는 방식은 국내 서적이랑 차이점이 있어 보인다. 아무래도 많은 설명 후에 소스를 적고 다시 설명하고 이런 패턴에 익숙해지다보니 낯설기도 하다. 

그래도 신선하고 좋았다.

프로그래밍을 조금이라도 해보신 분이라면 첫 날은 무리없이 쭉쭉 진도가 가능하다.

 

6.jpg

 

undefined

 

8.jpg

 

 

정말 마음에 들었던 것은 문제를 제시하고 해결 과정을 보여주며 완성한다는 것이다.

 

그래서 챕터마다 작은 프로그램 하나씩 완성하는 것이 목표다.

기본적인 using 사용법, 반복문, 제어문 등이 있는 챕터라 크게 어려운 내용은 없지만, 빠르게 읽어나갈 때 서적의 구조라던지 작가가 전달하려는 것이 무엇인가 정확히 캐치하려고 노력한다.

데이터 일괄처리 챕터 이후에는 지금까지 들어보지 못했던 생소한 라이브러리, 벡터 타입 등 알아야 될 단어가 꽤 있다.

컨테이너, 템플릿 클래스 등도 마찬가지다. 벌써부터 집중해야 될 챕터가 온 것 같다.

챕터4부터는 상당히 중요하다.

연산 구조화 시키는 방법, 함수 사용법, 데이터 구조화, 프로그램 통합, 수정까지. 절대 많은 양의 코드는 아니지만, 반드시 적어보고 이해해야 될 것으로 생각한다. 

 

 

 

9.jpg

 

10.jpg

 

11.jpg

 

 

 

여기서부턴 더욱 심화된 라이브러리 사용법과 함수 사용법에 대하여 익힐 수 있다.

정신차려야되는 챕터다!

순차, 임의접근, 반복자의 대한 개념도 나오고 벡터, 리스트 사용법과 둘의 차이점도 나온다.

6챕터에선 라이브러리가 표준 알고리즘을 제공할 때 공통의 인터페이스를 활용하는 방법을 설명한다.

성적 산출 프로그램을 작성하는데, 꼭 집어 필요한 핵심에 대하여 잘 나와있다.

스토리지 클래스 지정자 사용 방식, URL 함수 작성 등 재미있는 부분도 상당히 많다.

효율적인 성능을 위한 연관 컨테이너의 사용, 재귀호출은 더할나위없이 중요한 개념이라고 본다.

7장 반드시 정독!

그리고 작성해고 완성해보자!

 

 

12.jpg

 

13.jpg

 

14.jpg

 

 

제네릭 함수는 쭉 한번 보길 바란다.

강조하고 싶은 챕터는 9, 10 챕터다. 물론 제네릭 함수도 꺼낼 말이 많지만, 사서 보길 바란다!

정말로 구매해서 봐야 뼈를 맞는다. 뼈를 맞을수록 성장한다!

너무 중요한 개념이 나온다. 사용자 정의 타입을 구조체나 클래스로 정의하는 법, 멤버 함수를 정의하는 법.

그리고 생성자, 생성자 이니셜라이저다.

10챕터에 나오는 포인터, 함수포인터, 배열, 인덱싱 등 C언어 프로그래밍을 조금이라도 해본 분이라면 이 단어를 들어봤을 것이다.

파일 입출력, 메모리 관리에 대한 사항도 나온다. 주로 문법적인 요소가 많으므로 주의 깊게, 그리고 정독해서 읽어보자.

뇌가 하늘로 솟는 기분일 것이다.

 

 

 

15.jpg

 

16.jpg

 

17.jpg

 

 

 

 

지금까지 코드 작성은 기본 틀만 잡았다면, 이제 객체 복사, 할당, 소멸하는 과정을 조금 더 구체적으로 알아볼 수 있는 챕터다.

 
 

코드 작성을 하는 프로그래머가 객체의 동작을 컨트롤 하는 방법이라고 나와있는데 이건 어찌보면 당연한 것이다!

공부한 내용의 핵심을 보자면, 다음과 같다.

일반적으로 클래스는 객체의 생성, 복사, 할당, 소멸 상황에서 발생하는 일을 제어한다.

생성자는 객체의 생성이나 복사가 일어날 때 부수적으로 발생하는 결과로 호출된다.

할당 연산자는 할당을 포함하는 표현식에서 호출되고 소멸자는 객체가 소멸되거나 범위를 벗어날 때 자동으로 실행된다.

생서자에서 자원을 할당하는 클래스는 항상 변함 없이 복사 생성자, 할당 연산자, 소멸자를 정의해야 한다.

할당 연산자를 작성할 때는 반드시 자가 할당 여부를 확인해야 하고 기본 할당 연산자와의 일관성을 유지하려면 왼쪽 피연산자의 참조를 반환하는 것이 좋다.

너무 좋은 내용이 많이 있다. 이제부터 시작인가 보다.

13챕터에서는 상속과 동적 바인딩에 대한 내용이 주를 이룬다.

자바 또는 객체지향 언어를 사용해본 분은 상속과 동적 바인딩에 대해서 들어본 적이 있거나 알고 있을 것이다.

그러나 이 단어를 처음 들어봤다면, 몇번씩 읽어야 되는 챕터다. 그만큼 중요하다.

포인터나 참조를 이용해 가상 함수를 호출할 때 적용되는 동적 바인딩, 오버로딩, 오버라이딩, 가상 소멸자, 가상 함수, 정적 멤버!

나열할 수 없을 만큼 중요 포인트가 많이 집결되어 있다.

꼭 정독하자!

 

 

 

18.jpg

 

19.jpg

 

20.jpg

 

넓고 넓은 지식을 익히는 것도 중요하지만 프로그래밍 공부는 깊게 그리고 확실히 알 수 있을 때까지 학습하는 것이 중요하다.

 

그래서 서적이 베이스를 잡고 학습하는데 큰 지장은 없지만, 호수를 봤으면 바다를 보고 싶은 것이 사람 마음이다!

서적은 매우 중요하다. 그러나, 서적에서 본 세상보다 더 큰 세상이 인터넷에 많이 있다.

이 정보를 잘 활용할 줄 아는 스킬도 필요하고 커뮤니티 활동, 그리고 사이드 프로젝트로 정파와 사파의 길도 각각 연구해보는 것도 좋은 방법이라고 생각한다.

그리고 언제나 옆에는 서적이 수북히 쌓여 참고 서적으로 두면 좋다.

한번 봤던 내용은 다시 써먹을 수 있게 잘 표기하고 정리해두는 것도 추천한다.

이 서적에서는 다음 학습 단계를 여러 서적을 추천하고 사이트도 친절하게 설명해 준다.

정말 지적 호기심이 왕성하다면, 나머지는 시간 문제다.

인생 뭐 있을까? 도전이다!

 

 

21.jpg

 

22.jpg

 

 

 

신기하게도

C++ 프로젝트를 개인 사이드로 해본 적이 없는 것 같다.

아니 있어도 그건 기억하지 못하거나 낮은 레벨에서의 경험이었을 것이다.

그리고 사실 C++는 하고 싶은 생각도 별로 없었다.

그러나

이 리뷰가 참 많은 도움이 되었다.

작가의 크나큰 노력이 보인다.

많은 라이브러리를 소개하며 정말 생산성 높은 프로그램을 작성할 수 있게

차근히 설명해 준 것이 또 나의 지적 호기심을 일깨워 주었다.

물 맛을 봤으니 정말 바다로 나가고 싶은 생각이 든다!

C++ 서적 중에서 동기부여가 되는 서적 중 하나다.

매우 추천한다.

★★★★

리뷰를 마치며!

 

 

xxlarge.jpg

 

Accelerated C++ : C++를 C++답게 배우는 16가지 방법

 

 'Accelerated C++'의 저자는 스탠퍼드 대학에서 C++ 수업을 진행했던 교수로, 이 책은 학생들이 C++을 효과적으로 배울 수 있었던 방법을 정리하여 쓴 내용이다.

 책의 부제는 'C++답게 배우는 16가지 방법'인데 이는 책의 각 내용이 16챕터로 나눠져 있기 때문이다. 각 챕터는 순차적으로 진행하며 C++과 STL의 기본 개념부터 시작하여 개념을 확장하는 방식으로 예제와 함께 설명하고 있다.  각각의 예제들을 따라하다 보면서 무엇이 필요한지, 어떠한 상황에서 무엇을 사용해야 하는지를 자연스럽게 이해하기 쉽게 설명하고 있다.

 

각 챕터별로 예제를 따라하면서 자연스럽게 개념을 확장하는 식으로 진행이 되며, 각각의 예제에 필요한 C++ 기능 및 표준 라이브러리를 어떻게 사용해야하는지를 설명해주고 있다. 단순히 개념만 나열하고 있는 것이 아닌 프로젝트 형식의 예제를 통해 학습하고 있어 이해하기 쉽고 향후 활용방법에 대한 공부에 더 도움이 된다.

 각 챕터가 끝나고 난 뒤엔 '핵심정리'를 통해 예제를 통해 배웠던 개념들 중 꼭 알아둬야 하는 개념들을 다시 정리해주고 있다. 이는 공부를 마치고 복습개념으로 꼭 필요한 개념을 다시 학습할 수 있어 도움이 되었다. 또한 연습문제를 통해 C++을 사용한 코딩중에 발생할 수 있는 문제상황을 대처할 수 있게 도와주고 있다. 

 이 외에도 책에선 프로그래밍하면서 할 수 있는 실수에 대해서도 알려주면서 올바른 C++ 코딩 습관이 어떤건지 설명해주고 있다. 처음 C++을 하면서 실수 할 수 있는 부분을 미리 알려주기 때문에 향후 프로젝트를 할때 응용할 수 있는 힘을 주는 것이다. 또한 성능개선의 방향도 미리 책에서 고민해주기 때문에 성능에 있어서도 코딩시 생각할 수있다는 점에서 올바른 코딩습관을 잡아주는 바른 책이라고 할 수 있다.

 아쉬웠던 점은 영어로 쓰여진 책을 번역한 것이기 때문에 읽기 어렵거나 이해하기 힘든 부분이 있다는 점이다. 이러한 부분은 그래도 반복하여 읽으면 이해가 되었지만, 아무래도 우리말로 바로 쓰여진 것보다는 어렵게 읽히긴 했다.

 

 이 책은 C++을 처음 배우는 사람을 위한 책이라고 설명되어 있긴 하나 완전 처음 시작하는 사람보다는 프로그래밍을 조금이나마 배웠던 사람이 이해하기 쉬울 것 같다. C++ 관련 기본 문법책을 통해 한번 익힌 뒤 본격적인 프로젝트에 앞서 이 책을 통해 C++을 이용하여 프로그래밍을 어떻게 하는지, STL을 어떻게 사용하는지를 배운다면 더 많은 도움이 될 것 같다.

 

책은 C 또는 C++ 기본적인 문법을 알고 있거나 처음 접하는 독자에게 적합한 책입니다. 기존 서적은 주로 C++ 기본 문법을 다루고 표준라이브러리(STL) 구조 사용법을 다루는 방식을 취하는데 반해, 해당 서적은 표준라이브러리에 사용법과 구조를 먼저 다루고 C++ 기본 문법을 나중에 소개하는 방식을 취하고 있습니다. 해당 방식은 전혀 어색하지 않았고 오히려 처음 접하는 독자에게도 예제를 따라하면서 자연스럽게 문법을 익히고 프로그램을 만들 있도록 합니다.

 

중간에 C++ 철학을 곁들여 설명하는 부분과, 표준라이브러리의 구조와 동작 원리를 설명하는 부분은 상당히 잘되어 있다고 생각합니다. 중급 개발자들도 한번 곱씹어 볼만 내용들 같습니다.

 

Modern C++(C++11이후) 대한 문법, 내용은 포함하지 않습니다. 전형적인 C++98 대한 설명을 하고 있으며, 이는 실제 Modern C++ 사용하고 있는 현업 개발자 혹은 독자에게는 아쉬움이 남을 같습니다.

 

번역에 대한 부분은 아쉬움이 남습니다.  매끄럽지 않은 문장들이 간혹 있었고, 적은 수지만 오타와 오역이 존재하였습니다. 책을 읽는데 불편한 수준은 아니였습니다.

 

* 리뷰는 개인적인 의견입니다.*

 

감사합니다.

 

만약 C++ 전문가를 꿈꾸고 있다면 이 책은 필독서 중 하나. 이 책은 문법뿐만 아니라 훌륭한 예제를 통해 입문자부터 숙련자까지의 갈증을 해소해주기 때문.

해당 도서는 2006년 출판된 'Accelerated C++'의 최신 개정판이라고 할 수 있다. 온고지신이라 했던가. 이 책은 온고지신의 뜻을 충실히 수행했다. C++로 개발하는데 필요한 핵심은 남기고, 최신 개발시장의 니즈를 충족시킬 수 있는 내용으로 구성했기 때문이다.


이 책의 본문 중 마지막 장인 16장에서는 '학습'에 대한 깨달음을 주는 이야기를 인용하고 있다. 번역 과정에서 의역이 되어 그 뜻을 제대로 전달하지 못한 것 같지만 이미 이야기를 알고 있는 필자에게는 이 문장이 전하는 바를 확실히 느낄 수 있었다.


본문에 따르면 피아노 연주회 티켓을 지닌 채 뉴욕에서 길을 잃은 방문객에 관한 이야기를 한다.


지나가던 행인을 멈춰 세우고 방문객이 질문합니다. "실례지만 카네기 홀까지 가는 방법을 알려주시겠습니까?" 돌아오는 대답은 다음과 같았습니다. "연습하세요!"


이 문장의 본 의미는 방문객이 '연주자'라는 점이다. 지나가던 행인은 이 연주자에게 일침을 놓는다. 카네기홀로 가는 가장 빠른 방법은 당신이 연습하는 것이라고 전하는 것이다.


이처럼 책의 저자는 독자에게 "연습만이 살길이다"라는 점을 시사하고 있다. 일반적으로 우리는 책을 잃을 때 본문의 내용은 정독하지만 연습문제는 지나치는 경향이 있다. 하지만, 이책을 포함해 모든 프로그래밍을 아울러 보면 연습문제가 그 학습서의 핵심이다. 고등학생 때로 돌아가 문제집을 푼다고 생각해보자. 문제집의 본문은 사실 이론을 정리한 것에 불과하다. 실제로 실력을 늘리기 위해서는 연습문제를 풀어야 하는 것이다.


이 책의 저자 또한 '연습'이라는 단어를 통해 독자에게 그것의 중요성을 전한다. 16장에 실려있는 이 이야기가 이 책이 전하고자 하는 핵심일지도 모른다. 마지막까지 정독한 독자를 위해 "당신이 정말로 연습을 충실히 했나?"라고 의문을 던지는 것이다. 여기서 저자는 독자가 자신의 잘못을 깨닫고 연습문제를 풀러 가거나 뿌듯하게 자신의 과거를 보며 까맣게 변해버린 연습문제의 답안지를 볼 것을 기대하고 있는 것이다.


결론적으로 이 책은 한줄 소감에 적은 것과 같이 입문자부터 숙련자까지 C++의 전문가가 되기 위한 필독서이자 참고서 혹은 문제집이라고 할 수 있으며, 책의 종단에서는 학습의 끝을 고하는 것이 아닌, 심화적인 학습을 위한 또다른 학습서를 알려준다. 이 책은 전문가가 되기 위한 필독서 중 하나이지만. 이 책을 읽는 모두가 전문가가 되는 것은 아니라고 말하는 것이다.

번역이라 그런지 익숙하지가 않네요 그리고 연습문제 푸는데 답이 확실치않고 판단해보라는말이 내가 몰라서 배우는데 맞는건지 틀린건지 판단을 해보라는 말인가 모르겠네요 ㅋㅋ

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
Accelerated C++
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Accelerated C++
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Accelerated C++
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실