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

한빛미디어

전문가를 위한 C++(개정3판)

C++14, 제네릭 람다, STL, 템플릿, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법

한빛미디어

집필서

판매중

  • 저자 : 마크 그레고리
  • 번역 : 권오인
  • 출간 : 2016-11-04
  • 페이지 : 1236 쪽
  • ISBN : 9788968484858
  • 물류코드 :2485
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
초급 초중급 중급 중고급 고급
1.8점 (4명)
좋아요 : 67

전문가 수준 C++ 프로그래머와 그저 문법을 아는 C++ 프로그래머

그 차이를 만드는 C++14 최고의 실전 가이드!

 

개정3판은 코드 중심의 실용적인 C++ 애플리케이션 디자인&코딩 가이드로 C++14 표준을 기반으로 한다. 문법만 안다고 C++ 프로그래머가 되는 것은 아니다. 이 책은 C++의 유용한 기능을 최대한 효과적으로 활용하여, 올바른 프로그래밍 스타일로 개발하는 요령과 기법을 다룬다. 따라서 실전 프로그래밍에 필요한 C++의 복잡한 기능을 올바르게 이해하고 범하기 쉬운 실수를 피하기 위한 노하우를 전수받게 될 것이다. 

 

undefined

 

저자

마크 그레고리

벨기에 출신 소프트웨어 아키텍트로서 루벤 대학교에서 컴퓨터 과학과 인공지능 분야의 석사 과정을 우수한 성적으로 졸업했다. 소프트웨어 컨설팅 회사인 오디나 벨지움(Ordina Belgium)에서 컨설턴트로 근무하면서 지멘스와 노키아 지멘스 네트웍스에서 통신 시스템 운영자를 위한 솔라리스 기반 2G 및 3G 관련 소프트웨어 업무를 담당했다. 이 과정에서 남미, 미국, 유럽, 중동, 아프리카, 아시아를 비롯한 전 세계 출신의 개발자와 협업하는 경험을 했다. 현재 3D 형상 검사를 위한 정밀 광학 장비와 메트롤로지 솔루션을 공급하는 니콘 메트롤로지(www.nikonmetrology.com)에서 소프트웨어 아키텍트로 근무한다.

전문 분야는 C/C++이며 마이크로소프트 VC++와 MFC 프레임워크 경험이 풍부하다. 이와 관련하여 윈도우와 리눅스 플랫폼에서 하루 24시간, 7일 동안 구동하는 KNX/EIB 홈오토메이션 소프트웨어를 C++로 개발한 경험이 있다. C/C++ 외에도 C#과 PHP를 이용하여 웹 페이지를 제작하는 것을 즐긴다. VC++에 대한 전문성을 인정받아 2007년 4월부터 현재까지 매년 마이크로소프트 MVP로 선정됐다. 벨기에 C++ 사용자 그룹(www.becpp.org) 창립자, 『C++ Standard Library Quick Reference』(Apress) 공저자, 여러 출판사의 기술 편집자, 코드구루(CodeGuru) 포럼의 멤버(아이디 Marc G)이기도 하다. 개인 블로그(www.nuonsoft.com/blog)도 운영하고 있으며, 여행과 맛집 탐방을 즐긴다.

 

 

역자

권오인

아르바이트, 창업, 벤처를 거쳐 잠시 생뚱맞게 이동 통신사 연구소에서 사업 기획을 하다가 현재 대형 제조사에서 시스템 소프트웨어 개발을 하고 있다.

[Part 1 전문가를 위한 C++ 개요]

 

CHAPTER 1 C++와 STL 부딪혀보기 

1.1 C++ 언어의 기초

1.2 C++ 언어 심화 탐구

1.3 객체지향 언어로서의 C++

1.4 표준 라이브러리

1.5 첫 C++ 프로젝트

1.6 요약

 

CHAPTER 2 문자열의 활용 

2.1 동적 문자열

2.2 요약

 

CHAPTER 3 코딩 스타일 

3.1 보기 좋은 코드의 중요성

3.2 코드의 문서화

3.3 코드 분할

3.4 네이밍

3.5 스타일이 있는 언어의 활용

3.6 포매팅

3.7 스타일 적용의 장애물

3.8 요약

 

[Part 2 전문가다운 C++ 소프트웨어 디자인]

 

CHAPTER 4 전문가를 위한 C++ 프로그램 디자인 

4.1 프로그램 디자인이란?

4.2 프로그램 디자인의 중요성

4.3 C++ 디자인의 특징

4.4 C++ 디자인의 두 가지 원칙

4.5 코드의 재사용

4.6 패턴과 테크닉을 이용한 디자인

4.7 체스 프로그램 디자인하기

4.8 요약

 

CHAPTER 5 객체를 이용한 디자인 

5.1 절차적 사고방식이란 무엇인가?

5.2 객체지향 철학

5.3 객체 세상에서 생각하기

5.4 객체 간 관계

5.5 추상화

5.6 요약

 

CHAPTER 6 재사용성을 높이는 디자인 

6.1 재사용 철학

6.2 재사용성이 높은 코드를 디자인하는 방법

6.3 요약

 

[Part 3 제전문가다운 코딩 방법]

 

CHAPTER 7 클래스와 객체에 능숙해지기 

7.1 스프레드시트 실습

7.2 클래스 만들기

7.3 객체의 라이프 사이클

7.4 요약

 

CHAPTER 8 클래스와 객체 마스터하기 

8.1 동적 메모리 할당을 통한 객체 생성

8.2 여러 종류의 데이터 멤버

8.3 메서드의 종류

8.4 중첩된 클래스

8.5 클래스 종속 열거 데이터 타입

8.6 friend 속성

8.7 연산자 오버로딩

8.8 안정된 인터페이스 만들기

8.9 요약

 

HAPTER 9 클래스 상속 활용 테크닉 

9.1 상속을 통한 클래스 생성

9.2 코드 재사용을 위한 상속

9.3 부모를 존중하라

9.4 다형성을 위한 상속

9.5 다중 상속

9.6 상속과 관련된 미묘한 문제들

9.7 요약

 

CHAPTER 10 C++의 까다롭고 유별난 부분들 

10.1 참조형

10.2 키워드 혼동

10.3 타입과 캐스팅

10.4 스코프 지정

10.5 C++11 / C++14

10.6 헤더 파일

10.7 C 유틸리티

10.8 요약

 

CHAPTER 11 템플릿을 이용한 제네릭 코드 작성 

11.1 템플릿 개괄

11.2 템플릿 클래스

11.3 함수 템플릿

11.4 템플릿 변수

11.5 요약

 

CHAPTER 12 C++ I/O 이해하기 

12.1 스트림의 사용

12.2 문자열 스트림

12.3 파일 스트림

12.4 양방향 I/O

12.5 요약

 

CHAPTER 13 에러 처리 

13.1 에러와 익셉션

13.2 익셉션의 동작 구조

13.3 익셉션과 다형성

13.4 스택 되돌림과 리소스 해제

13.5 흔한 에러 처리 관련 문제

13.6 포괄적인 예제

13.7 요약

 

CHAPTER 14 C++ 연산자 오버로딩 

14.1 연산자 오버로딩 개괄

14.2 산술 연산자의 오버로딩

14.3 비트 연산자와 논리 연산자의 오버로딩

14.4 입력 연산자와 출력 연산자의 오버로딩

14.5 서브스크립팅 연산자의 오버로딩

14.6 함수 호출 연산자의 오버로딩

14.7 역참조 연산자의 오버로딩

14.8 변환 연산자 만들기

14.9 메모리 할당과 해제 연산자의 오버로딩

14.10 요약

 

CHAPTER 15 C++ 표준 라이브러리 살펴보기 

15.1 코딩 원칙

15.2 C++ 표준 라이브러리 개괄

15.3 요약

 

CHAPTER 16 컨테이너와 반복자 이해하기 

16.1 컨테이너 개괄

16.2 순차 컨테이너

16.3 컨테이너 어댑터

16.4 연관 컨테이너

16.5 비순차 연관 컨테이너 - 해시 테이블

16.6 기타 컨테이너

16.7 요약

 

CHAPTER 17 STL 알고리즘 마스터하기 

17.1 알고리즘 개괄

17.2 람다 표현식

17.3 함수 객체

17.4 STL 알고리즘 심화 탐구

17.5 알고리즘 예제: 선거인 명부 검사

17.6 요약

 

CHAPTER 18 문자열 로컬라이제이션과 정규 표현식 

18.1 로컬라이제이션

18.2 정규 표현식

18.3 요약

 

CHAPTER 19 부가적인 유틸리티 라이브러리 

19.1 std::function

19.2 분수

19.3 크로노 라이브러리

19.4 난수 생성

19.5 튜플

19.6 요약

 

[Part 4 C++ 고급 기능 마스터하기]

 

CHAPTER 20 STL의 커스터마이징과 확장 

20.1 할당자

20.2 반복자 어댑터

20.3 STL 확장하기

20.4 요약

 

CHAPTER 21 고급 템플릿 

21.1 템플릿 파라미터 심화탐구

21.2 템플릿 클래스의 부분 특수화

21.3 오버로딩을 이용해서 템플릿 함수의 부분 특수화 흉내 내기

21.4 재귀 템플릿

21.5 타입 추론

21.6 가변 인자 템플릿

21.7 메타프로그래밍

21.8 요약

 

CHAPTER 22 효과적인 메모리 관리 

22.1 동적 메모리의 활용

22.2 배열과 포인터의 닮은꼴

22.3 저수준 메모리 동작 메커니즘

22.4 스마트 포인터

22.5 흔하게 발생하는 메모리 문제

22.6 요약

 

CHAPTER 23 C++ 멀티스레드 프로그래밍 

23.1 C++ 스레딩 라이브러리 소개

23.2 스레드

23.3 아토믹 작업 라이브러리

23.4 상호 배제

23.5 조건 변수

23.6 future

23.7 멀티스레드 Logger 클래스 예제

23.8 스레드 풀

23.9 스레딩 디자인 요령

23.10 요약

 

[Part 5 C++ 소프트웨어 엔지니어링]

 

CHAPTER 24 여러 가지 소프트웨어 엔지니어링 방법론 

24.1 절차의 필요성

24.2 소프트웨어 생명 주기 모델

24.3 소프트웨어 엔지니어링 방법론

24.4 나만의 개발 절차와 방법론 만들기

24.5 소스 코드 관리

24.6 요약

 

CHAPTER 25 효율적인 C++ 코드 작성 

25.1 성능과 효율 개괄

25.2 언어 수준 효율성

25.3 디자인 수준 효율성

25.4 프로파일링

25.5 요약

 

CHAPTER 26 디버깅 완전정복 

26.1 디버깅의 기본 원칙

26.2 버그의 분류

26.3 버그 방지

26.4 버그 대응 계획

26.5 디버깅 테크닉

26.6 요약

 

부록 A C++ 인터뷰

부록 B 참고 문헌

부록 C 표준 라이브러리 헤더 파일

최신 C++를 마스터하기 위해 알아야 할 C++와 C++14의 모든 것

C++ 전문가가 되기 위해 필요한 내용을 조목조목 옮겼다. C++의 기본 기능에서 널리 알려지지 않았던 기능까지 설명한다. 오랜 역사를 지닌 C++ 언어에 대한 오해와 올바른 프로그래밍 방법을 소개한다. C++ 언어의 핵심 기능, 템플릿, 표준 라이브러리(STL), 문자열, 입출력과 같은 기본부터 제네릭 코드 작성, 타입 추론, 템플릿 재귀, 메타프로그래밍, 메모리 관리, 멀티스레드 같은 고급 기능까지 다룬다. 소프트웨어 엔지니어링 측면에서 알아야 할 버전 관리, 소프트웨어 개발 방법론, 코드 최적화, 테스팅, 디버깅, 프레임워크, 디자인 패턴까지 소개해 C++ 전문가가 되고 싶은 독자는 물론 현업 C++ 전문가도 전체 지식을 복습할 수 있게 했다.

 

대상독자

수년 동안 C++를 사용해왔다고 할지라도 익숙하지 않거나 알지 못했던 기능 때문에 C++의 능력을 100% 활용하지 못했을 수 있다. C++를 활용하는 데 어느 정도 자신감이 있더라도 C++에서의 디자인 방법론을 더 연마하거나 좋은 디자인 스타일을 배우고 싶을 수 있다.

그리고 어떤 경우에는 C++를 처음으로 접하면서 올바른 방식으로 첫 단추를 꿰고 싶을 수 있다.  이 책은 C++ 초·중급 수준의 지식을 가진 사람이 C++ 전문가로 성장할 수 있도록 돕는 데 초점이 맞추어져 있기 때문에 C++를 조금이라도 접해본 사람을 대상으로 한다.

 

이 책의 내용

 - 실용적인 문제를 기반으로 한 예제를 통한 학습

 - 윈도우와 리눅스에서 테스트된 광범위하고 상세한 예제 코드

 - 좋은 프로그래밍 스타일로 이끄는 요령과 테크닉 그리고 디버깅 방법론

 - 제네릭 람다, 람다 캡쳐 표현식, 함수 리턴 타입 연역, 이진 리터럴 등 최신 기능

 - make_unique, 투명 함수 객체, 타입을 통한 튜플 항목 접근, 공유 뮤텍스와 락 등 최신 표준 라이브러리 기능

 

 

이 책의 상세 구성

< 1부 전문가를 위한 C++ 개요>

C++의 기초적인 부분을 둘러보고 C++를 배우기 위한 기초를 닦는다. 기초적인 부분을 둘

러본 다음에는 문자열의 활용 방법에 대해 깊이 있게 살펴본다. 대부분의 예제에서 문자열

을 많이 이용하기 때문에 문자열에 대한 이해가 먼저 필요하다. 1부의 마지막에서는 가독성

높은 C++ 코드를 어떻게 작성할 수 있는지 알아본다.

 

<2부 전문가다운 C++ 소프트웨어 디자인>

C++ 디자인 방법론을 다룬다. 디자인이 왜 중요한지, 객체지향 방법론이 무엇인지, 코드의

재사용이 왜 중요한지 알게 될 것이다.

 

<3부 전문가다운 코딩 방법>

C++의 기술적인 부분을 전문적인 관점에서 살펴본다. 재사용 가능한 클래스를 만드는 방법,

상속과 같은 C++의 중요한 기능을 활용하는 방법을 이야기한다. 그리고 C++만

이 가진 특이 사항, 입출력 테크닉, 에러 처리, 문자열 로컬라이제이션, 정규 표현식의 사용

법도 알아본다. C++ 표준 라이브러리의 컨테이너, 반복자, 알고리즘에 대해서도 설명한다.

시간과 날짜 처리나 랜덤 숫자를 활용하기 위한 부가적인 라이브러리 기능도 알아본다.

 

<4부 C++ 고급 기능 마스터하기>

C++의 기능을 최대로 활용하는 예제를 소개한다. C++의 다소 난해한 기능과 그러한 기능

을 이용하는 고급 테크닉을 설명한다. C++ 표준 라이브러리를 필요에 따라 커스터마이즈

하고 확장하는 방법, 가장 효과적인 메모리 관리 방법, 고급 템플릿 프로그래밍과 템플릿 메

타프로그래밍, 멀티프로세서와 멀티코어를 활용하기 위한 멀티스레딩의 활용 방법 등을 포

함한다.

 

<5부 C++ 소프트웨어 엔지니어링>

상용 수준의 소프트웨어 품질을 어떻게 달성할 수 있는지에 초점을 맞추어 오늘날 여러 소

프트웨어 회사에서 채용하고 있는 소프트웨어 엔지니어링 사례와 C++ 프로그램 디버깅 테

크닉과 효과적인 C++ 코드 작성법을 알아본다.

 

<부록>

부록에서는 C++ 개발자 인터뷰에서 유용하게 활용할 수 있는 각 장별 가이드와 참고 문헌

그리고 C++ 표준 라이브러리의 헤더 파일에 대한 요약이 제공된다.

부록/예제소스
자료명 등록일 다운로드
DOWNLOAD 예제소스 2016-12-16 다운로드
결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

닫기
* 도서명 :
전문가를 위한 C++(개정3판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
전문가를 위한 C++(개정3판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
전문가를 위한 C++(개정3판)
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실