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

『Programming : Principles and Practice Using C++ (Second Edition) 한국어판 』

   
지은이 비야네 스트롭스트룹   |   출판사 에이콘  |   발행일 2015년 11월 30일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 60,000원54,000원 10%
마일리지 1% 600원
발행일 2015-11-30
ISBN 8960777862 | 9788960777866
기타정보 번역서 | 1300쪽 | 일반
예상출고일 1일 (근무일기준)
배송비 무료배송
   
일반
   
이 책의 원서
  Programming: Principles and Practice Using C++
Addison-Wesley Professional | Bjarne Stroustrup
 



[ 요약 ]

C++ 창시자가 전해주는 프로그래밍의 이상과 원리!
‘오래가는 프로그래머’, ‘존경받는 프로그래머’가 되고 싶다면 초보 프로그래머에서 익숙한 개발자까지 누구나 곁에 두고 읽어야 할 필독서다. 실용적인 예제를 바탕으로 최신 C++ 표준인 C++11과 C++14의 새로운 기능은 물론, 구조적 프로그래밍과 객체지향 프로그래밍, 제네릭 프로그래밍을 비롯하여 현대적인 프로그래밍 언어를 관통하는 프로그래밍 패러다임의 진수를 체득할 수 있다!



[ 이 책에서 다루는 내용 ]

■ 실전 프로그래밍을 위한 준비 운동
소프트웨어 개발을 비롯한 기술적인 분야의 복잡한 프로그램을 작성할 수 있다!

■ 기본적인 개념과 기법 완벽 마스터
기본적인 개념과 기법을 다른 입문서보다 심도 있게 다룸으로써 유용하고 정확하며, 유지 보수가 쉽고 효율적인 코드를 작성할 수 있다.

■ 최신 C++(C++11과 C++14)를 이용한 프로그래밍
객체 지향 프로그래밍과 제네릭 프로그래밍을 비롯한 일반적인 프로그래밍 입문서이자, 전 세계의 소프트웨어에서 가장 널리 사용하는 언어 중 하나인 C++ 프로그래밍 언어의 기초를 확고히 다질 수 있다. 더불어 현대적인 C++ 프로그래밍 기법은 물론, C++ 표준 라이브러리와 프로그래밍을 쉽게 만들어 주는 C++11과 C++14의 기능을 체득한다.

■ 초보자는 물론 새로운 무언가를 배우고자 하는 모두를 위한 책
프로그래밍 경험이 전혀 없는 사람을 고려해 설계한 책으로, 수년간 수천 명의 대학 신입생을 대상으로 그 효과가 입증됐으며, 자습용으로도 널리 사용되고 있다. 더 나아가 많은 실무자와 우수한 학생에게 고수의 비법을 전수함으로써 새로운 깨달음을 얻게 한다.

■ 폭넓은 시야로 배우는 프로그래밍
책의 전반부에서는 광범위한 기본 개념과 설계 기법, 프로그래밍 기법, 언어의 기능, 라이브러리를 설명함으로써 입력과 출력, 계산, 간단한 그래픽을 이용한 프로그램을 작성할 수 있게 해준다. 책의 후반부에서는 특화된 주제(텍스트 처리와 출력, 계산, C 프로그래밍 언어 등)를 다루며, 풍부한 참고 자료를 제공한다. 소스코드를 비롯한 독자 지원은 저자의 홈페이지에서 찾을 수 있다.


[이 책의 대상 독자 ]

학생들에게 전하는 말
지금까지 우리가 텍사스 A&M 대학교에서 이 책으로 가르쳤던 1학년 학생의 60%가 예전에 프로그래밍을 했던 경험이 있었고, 나머지 40%는 태어나서 단 한 줄의 코드도 본 적이 없었다. 그래도 대부분의 학생들이 성공적으로 수업을 마쳤고, 여러분도 할 수 있으리라 믿는다.
이 책을 꼭 수업용 교재로 읽을 필요는 없으며, 자습용 교재로도 많이 쓰인다. 하지만 이 책으로 수업을 듣든 혼자 공부하든 상관없이 누군가와 함께 공부하길 바란다. 프로그래밍은 외롭게 혼자 하는 작업이 아니다. 대부분의 사람들은 같은 목표를 공유하는 그룹의 일원일 때 더 효율적으로 일하고, 더 빨리 배운다. 친구와 함께 배우고, 문제에 대해 토론하는 일은 단순한 잡담이 아니라, 우리를 진일보시키는 가장 효율적이고 즐거운 방법이다. 친구와 함께 일하려면 적어도 여러분의 생각을 명확하게 표현해야 하고, 이는 여러분이 얼마나 잘 이해하고 기억하는지를 시험할 수 있는 최고의 방법이다. 여러분 스스로 모든 모호한 점과 프로그래밍 환경의 문제를 해결해야 할 필요는 없지만, 설사 교사가 시키지 않더라도 실습문제를 건너 뛰거나 충분한 연습문제를 풀지 않음으로써 여러분 스스로를 속이지 말자. 다른 분야와 마찬가지로 프로그래밍을 익히려면 연습이 필요하다는 점을 명심하자. 코드를 직접 작성하지 않으면 이 책을 읽는 일은 그저 무의미한 이론 공부에 불과하다.

대부분의 학생들이 , 특히 사려가 깊은 학생일수록 이렇게 열심히 공부할 만한 가치가 있는지 의구심이 들 수 있다. 그럴 때는 잠시 쉬었다가 지금 이 ‘들어가며’를 다시 읽고, 1장(‘컴퓨터, 사람, 프로그래밍’)과 22장(‘프로그래밍의 이상과 역사’)을 살펴보자. 그 곳에서 내가 발견한 프로그래밍의 흥미로운 점과 프로그래밍을 바탕으로 세상에 긍정적인 공헌을 할 수 있다고 생각하는 이유를 밝힌다. 나의 교육 철학과 접근 방식이 궁금하다면 0장(‘독자에게 전하는 글’)을 참고하라.
이 책이 너무 두껍다고 겁먹지 말자. 이 책이 두꺼워진 주요 이유는 내가 학생들이 필요한 부분의 설명만 찾게 하기보다, 반복적으로 설명하고 예제를 추가하는 방식을 선호하기 때문이다. 두 번째 이유는 책의 뒤쪽 절반 정도는 임베디드 시스템 프로그래밍과 텍스트 분석, 수치 계산 등 여러분이 관심 있는 분야에 대해 찾아볼 수 있는 참고 자료나 추가 자료로 구성했기 때문이다.
마지막으로, 너무 성급하지 말라. 새롭고 가치 있는 기술을 배우는 일은 언제나 시간을 요하며, 그럴 만한 가치가 있는 법이다.

교사에게 전하는 말
이 책은 전형적인 컴퓨터 과학 101 수업(개론 수업) 교재가 아니라, 실제로 작동하는 소프트웨어를 개발하는 방법을 주로 다룬다. 따라서 보통 컴퓨터 과학 학생들이 배우는 내용(튜링 완전성(turing completeness), 상태 기계(state machine), 이산 수학(discrete mathmatics), 촘스키 그래머(Chomsky grammars) 등)을 다루지 않는다. 학생들이 유치원 때부터 컴퓨터를 다양한 곳에 활용해봤다는 가정하에 하드웨어(hardware)에 대해서도 설명하지 않는다. 컴퓨터 과학에 있어 가장 중요한 주제들도 되도록 언급하지 않는다. 이 책은 오직 프로그래밍(소프트웨어를 개발하는 방법)만을 다룬다. 따라서 전통적인 수업 과정에서 다루는 내용보다 좁은 주제에 집중한다. 컴퓨터 과학은 수업 한 번으로 배울 수 없으므로 여기서는 오직 한 가지, 프로그래밍을 잘 하는 데 집중할 것이다. 이 책을 컴퓨터 과학이나 컴퓨터 공학, 전자 공학(1학년 학생 중엔 전자 공학도가 많다), 정보 과학 등의 교과 과정에서 채택한다면 다른 수업과 겸해서 개론 수업의 일부로 활용하길 바란다.
0장(‘독자에게 전하는 글’)에서 나의 교육 철학과 일반적인 접근방식을 알 수 있는데, 학생들이 그러한 생각에 따라 공부할 수 있게 전해주기 바란다.


[ 이 책의 구성]

1부. '기본 다지기'에서는 C++ 언어를 이용한 프로그래밍의 기본 개념들과 기법을 살펴보고 코드 작성을 시작하는 데 필요한 라이브러리의 기능을 알아본다. 여기에는 타입 시스템(type system)과 산술 연산, 제어 구조, 오류 처리, 설계와 구현, 함수(function) 사용법, 사용자 정의 타입(user-defined type) 등을 다룬다.

2부. 입력과 출력에서는 키보드와 파일로부터 문자나 숫자 입력을 받고, 그에 상응하는 출력을 모니터나 파일에 내보내는 방법을 설명한다. 그리고 수치 데이터와 텍스트, 기하학적 도형을 시각적으로 출력하고, 그래픽 사용자 인터페이스GUI를 바탕으로 입력을 받아들이는 방법을 살펴본다.

3부. 데이터와 알고리즘에서는 C++ 표준 라이브러리에 포함된 컨테이너와 알고리즘 프레임 워크인 표준 템플릿 라이브러리(STL, Standard Template Library)에 초점을 맞춘다. 컨테이너(vector, list, map 등)의 사용법과 내부 구현 방식(포인터 활용, 배열, 동적 메모리, 예외, 템플릿)을 살펴본다. 그리고 표준 라이브러리의 알고리즘(sort, find, inner_product 등) 설계와 사용법을 보여준다.

4부. 시야 넓히기에서는 프로그래밍의 이상과 역사, 여러 가지 응용 예(행렬 계산, 텍스트 조작, 테스트, 임베디드 시스템 프로그래밍 등)와 C 언어의 개요를 바탕으로 프로그래밍을 여러 각도에서 살펴본다.

부록에서는 C++ 언어 자체에 대한 요약과 표준 라이브러리의 기능, 통합 개발 환경(IDE, Integrated Development Environment)과 그래픽 사용자 인터페이스 라이브러리 사용법 등 수업 시간에 다루기 적절하지 않은 유용한 정보를 제공한다.

0장 독자에게 전하는 글
0.1 이 책의 구성
0.2 나의 교육 철학
0.3 프로그래밍과 컴퓨터 과학
0.4 창의성과 문제 해결
0.5 독자 의견
0.6 참고 자료
0.7 지은이 소개

1장 컴퓨터, 사람, 프로그래밍
1.1 소개
1.2 소프트웨어
1.3 사람
1.4 컴퓨터 과학
1.5 컴퓨터의 광범위한 쓰임새
1.6 프로그래머의 이상

1부 기본 다지기
2장 Hello, World!
2.1 프로그램
2.2 고전적인 첫 번째 프로그램
2.3 컴파일 과정
2.4 링크 과정
2.5 프로그래밍 환경

3장 객체, 타입, 값
3.1 입력
3.2 변수
3.3 입력과 타입
3.4 연산과 연산자
3.5 대입과 초기화
3.6 복합 대입 연산자
3.7 이름
3.8 타입과 객체
3.9 타입 안전성

4장 계산
4.1 계산
4.2 목적과 도구
4.3 표현식
4.4 구문
4.5 함수
4.6 vector
4.7 언어 기능

5장 오류
5.1 소개
5.2 오류의 원인
5.3 컴파일 시간 오류
5.4 링크 시간 오류
5.5 실행 시간 오류
5.6 예외
5.7 논리 오류
5.8 평가
5.9 디버깅
5.10 사전 조건과 사후 조건
5.11 테스팅

6장 프로그램 작성
6.1 문제
6.2 문제 고찰
6.3 계산기로 복귀!
6.4 문법
6.5 문법에서 코드로
6.6 첫 번째 버전 시도
6.7 두 번째 버전 시도
6.8 토큰 스트림
6.9 프로그램 구조

7장 프로그램 완성
7.1 소개
7.2 입력과 출력
7.3 오류 처리
7.4 음수
7.5 나머지: %
7.6 코드 정리
7.7 오류 복구
7.8 변수

8장 언어적 세부 사항: 함수 등
8.1 언어의 기술적 세부 사항
8.2 선언과 정의
8.3 헤더 파일
8.4 유효 범위
8.5 함수 호출과 반환
8.6 평가 순서
8.7 네임스페이스

9장 언어적 세부 사항: 클래스 등
9.1 사용자 정의 타입
9.2 클래스와 멤버
9.3 인터페이스와 구현
9.4 클래스로의 진화
9.5 열거형
9.6 연산자 오버로딩
9.7 클래스 인터페이스
9.8 Date 클래스

2부 입력과 출력
10장 입출력 스트림
10.1 입력과 출력
10.2 입출력 스트림 모델
10.3 파일
10.4 파일 열기
10.5 파일 읽고 쓰기
10.6 입출력 오류 처리
10.7 값 한 개 읽기
10.8 사용자 정의 출력 연산자
10.9 사용자 정의 입력 연산자
10.10 표준 입력 루프
10.11 구조화된 파일 읽기

11장 입출력 맞춤화
11.1 정규성과 비정규성
11.2 출력 형식화
11.3 파일 열기와 위치 지정
11.4 문자열 스트림
11.5 행 지향 입력
11.6 문자 분류
11.7 비표준 구분자 사용
11.8 기타 훨씬 더 많은 것

12장 디스플레이 모델
12.1 왜 그래픽스인가?
12.2 디스플레이 모델
12.3 첫 번째 예제
12.4 GUI 라이브러리 사용
12.5 좌표
12.6 도형
12.7 Shape 사용
12.8 프로그램 실행

13장 그래픽스 클래스
13.1 그래픽스 클래스의 개요
13.2 Point와 Line
13.3 Lines
13.4 Color
13.5 Line_style
13.6 Open_polyline
13.7 Closed_polyline
13.8 Polygon
13.9 Rectangle
13.10 명명하지 않은 객체 관리
13.11 Text
13.12 Circle
13.13 Ellipse
13.14 Marked_polyline
13.15 Marks
13.16 Mark
13.17 Image

14장 그래픽스 클래스 설계
14.1 설계 원칙
14.2 Shape
14.3 기반 클래스와 파생 클래스
14.4 객체 지향 프로그래밍의 이점

15장 함수와 데이터의 그래프 그리기
15.1 소개
15.2 간단한 함수의 그래프 그리기
15.3 Function
15.4 Axis
15.5 근사치
15.6 데이터의 그래프 그리기

16장 그래픽 사용자 인터페이스
16.1 사용자 인터페이스 방식
16.2 Next 버튼
16.3 간단한 윈도우
16.4 Button과 기타 Widget
16.5 예제
16.6 제어 반전
16.7 메뉴 추가
16.8 GUI 코드 디버깅

3부 데이터와 알고리즘
17장 벡터와 자유 저장 영역
17.1 소개
17.2 벡터의 기본
17.3 메모리와 주소, 포인터
17.4 자유 저장 영역과 포인터
17.5 소멸자
17.6 요소에 접근
17.7 클래스 객체를 가리키는 포인터
17.8 타입 다루기: void*와 캐스트
17.9 포인터와 참조
17.10 this 포인터

18장 벡터와 배열
18.1 소개
18.2 초기화
18.3 복사
18.4 필수적인 연산
18.5 vector 요소에 접근
18.6 배열
18.7 예제: 회문

19장 벡터, 템플릿, 예외
19.1 문제 정의
19.2 크기 변경
19.3 템플릿
19.4 구간 검사와 예외
19.5 자원과 예외

20장 컨테이너와 반복자
20.1 데이터 저장과 처리
20.2 STL의 이상
20.3 시퀀스와 반복자
20.4 연결 리스트
20.5 다시 보는 vector 일반화
20.6 예제: 간단한 텍스트 편집기
20.7 vector와 list, string
20.8 우리가 만든 vector를 STL에 비슷하게 만들기
20.9 내장형 배열을 STL에 접목
20.10 컨테이너 요약

21장 알고리즘과 맵
21.1 표준 라이브러리 알고리즘
21.2 가장 간단한 알고리즘: find()
21.3 범용적인 검색 : find_if()
21.4 함수 객체
21.5 수치 알고리즘
21.6 연관 컨테이너
21.7 복사
21.8 정렬과 검색
21.9 컨테이너 알고리즘

4부 시야 넓히기
22장 프로그래밍의 이상과 역사
22.1 역사와 이상, 프로 정신
22.2 간략히 살펴보는 프로그래밍 언어의 역사

23장 텍스트 조작
23.1 텍스트
23.2 문자열
23.3 입출력 스트림
23.4 맵
23.5 문제 제기
23.6 정규 표현식
23.7 정규 표현식을 이용한 검색
23.8 정규 표현식 문법
23.9 정규 표현식 매칭
23.10 참고 자료

24장 수치 계산
24.1 소개
24.2 크기와 정밀도, 오버플로
24.3 배열
24.4 C 스타일 다차원 배열
24.5 Matrix 라이브러리
24.6 예제: 선형 방정식 풀기
24.7 난수
24.8 표준 수학 함수
24.9 복소수
24.10 참고 자료

25장 임베디드 시스템 프로그래밍
25.1 임베디드 시스템
25.2 기본적인 개념
25.3 메모리 관리
25.4 주소와 포인터, 배열
25.5 비트, 바이트, 워드
25.6 코딩 표준

26장 테스팅
26.1 우리의 목적
26.2 증명
26.3 테스팅
26.4 테스팅을 쉽게 해주는 설계
26.5 디버깅
26.6 성능
26.7 참고 자료

27장 C 프로그래밍 언어
27.1 C와 C++: 형제 사이
27.2 함수
27.3 기타 사소한 차이점
27.4 자유 저장 영역
27.5 C 스타일 문자열
27.6 입력과 출력: stdio
27.7 상수와 매크로
27.8 매크로
27.9 예제: 침습적 컨테이너

5부 부록
부록 A 언어 요약
A.1 일반적인 내용
A.2 리터럴
A.3 식별자
A.4 유효 범위와 저장 영역의 유형, 수명
A.5 표현식
A.6 구문
A.7 선언
A.8 내장형 타입
A.9 함수
A.10 사용자 정의 타입
A.11 열거형
A.12 클래스
A.13 템플릿
A.14 예외
A.15 네임스페이스
A.16 별칭
A.17 전처리기 지시어

부록 B 표준 라이브러리 요약
B.1 개요
B.2 오류 처리
B.3 반복자
B.4 컨테이너
B.5 알고리즘
B.6 STL 유틸리티
B.7 입출력 스트림
B.8 문자열 조정자
B.9 수치
B.10 시간
B.11 C 표준 라이브러리 함수
B.12 기타 라이브러리

부록 C 비주얼 스튜디오 시작
C.1 프로그램 실행
C.2 비주얼 스튜디오 설치
C.3 프로그램 작성과 시작

부록 D FLTK 설치
D.1 소개
D.2 FLTK 다운로드
D.3 FLTK 설치
D.4 비주얼 스튜디오에서 FLTK 사용
D.5 테스트

부록 E GUI 구현
E.1 콜백 구현
E.2 Widget 구현
E.3 Window 구현
E.4 Vector_ref
E.5 예제: Widget 조작

비야네 스트롭스트룹(Bjarne Stroustrup)
C++ 프로그래밍 언어를 설계하고 초기 구현체를 만들었으며, 『The C++ Programming Language, Fourth Edition』(에이콘출판, 2015년 근간)의 저자다. 모건 스탠리에서 기술부서 이사로 재직 중이며, 컬럼비아 대학교 컴퓨터공학과의 객원교수이자 텍사스 A&M 대학교 컴퓨터공학과의 연구 특임교수이며, 미국 공학회의 일원이다. 학계에서 일하기 전에는 AT&T 벨연구소에서 수십 년간 재직했다. ISO C++ 표준 위원회의 창립 멤버이기도 하다.
등록된 서평이 없습니다.
이안 밀링턴...
비야네 스트...
에리카 세든...
 
전체평균(0)
회원평점   회원서평수 0
비야네 스트롭스트룹 의 최근 저서
 
The C++ Programming Language(4th ed. 한국어판)
58,500원
(10%↓+5%)
 
에이콘 출판사의 신간
R고 하는 금융분석
파람 지트, 파라샨트 바츠 저
27,000원
(10%↓+5%)
 
퍼펙트 프리젠테이션 시즌 2
김재성 저
27,000원
(10%↓+5%)
 
리눅스 컨테이너 LXC
콘스탄틴 이바노프 저
27,000원
(10%↓+5%)
 
AWS 관리 Cookbook
루카스 챈, 로완 유델 저
27,000원
(10%↓+5%)
 
이더리움을 활용한 블록체인 프로젝트 구축
나라얀 프루스티 저
27,000원
(10%↓+5%)
 
이메일주소수집거부