아무도 알려주지 않은 C++ 코딩의 기술

아무도 알려주지 않은 C++ 코딩의 기술

$30.00
Description
이 책은 현업에서 C++ 개발자로 일하고 있는 독자를 위한 책이다. 저자가 20년동안 개발하면서 풀기 힘들었던 문제들을 어떻게 해결할 수 있었는지를 정리해서 다른 개발자들은 좀 덜 헤매고 재밌게 개발할 수 있는 노하우를 가득 담아 놓았다. 목차만 자세히 보아도 개발하면서 부딪히는 문제들로 가득하다는 것을 알 수 있을 것이다. “C++은 모든 것의 보이지 않는 기반”이라는 말이 있을 정도로 시스템의 핵심 구성요소에서 정말 중요하며 아직도 매력적인 C++ 개발자들에게 유익한 책이 될 것이다.

_대상 독자
선수지식은 다음과 같다.
_C 언어와 C++ 문법
_객체지향 프로그래밍
_UML
_자료구조와 및 알고리즘
_네트워크 구조
_소켓 프로그래밍
_시스템 API
위의 내용을 학습한 (예비) 개발자를 대상으로 하는 책이다.

[주의] 만화와 같이 재밌는 그림들이 툭툭 튀어나온다고 해서 만화 책은 결코 아니다. 초보자를 위한 쉬운 책은 더욱 아니다. 20년간 C++을 해온 저자가 정말 쉽게 알려주고 싶은 핵심 비급 노트 같은 책이다.
저자

전상현

생각이많고사소한것에도의미를부여하는편입니다.덕분에프로그래밍과어울리기좋았던것같습니다.
C++로게임,멀티미디어,보안3개의풀스택을갖고있습니다.캐주얼온라인게임을시작으로365/24동작하는스트리밍서버나메일중계서비스등지독하게힘든상용화를여러번경험했습니다.10년전부터는안랩과인연이닿아APT솔루션과악성코드분석엔진을만들었고그와동시에크고작은여섯번의창업경험이있습니다.
경영과인재관리,절차등을익혔으며,최근5년은교육에몸담으며후배양성에도힘쓰고있습니다.그리고1년전부터제이름을걸고시작한일곱번째스타트업,악성코드검거단을창업했습니다.세상에유익할무언가를오늘도만들어갑니다.

목차

작가의말

Chapter1_시작하기
1.1여행을떠나기전에
1.2왜코딩을잘해야하는가
1.3소스파일이난잡해서정신이혼미해요
1.4내가만든exe를친구가실행할수없어요
1.5과제로제출한소스코드용량이수백메가?
1.6저는윈도우즈에서만개발합니다
1.7재사용가능한코드란무엇인가
1.8더이상파이썬을모욕하지마라
1.9코드가길어지면현기증이나요
1.10잘배운STL하나,열알고리즘부럽지않다
1.11C++의보물,스택메모리
1.12정적변수로묘수를두자
1.13프로그램은데이터를가공하는것뿐이다
1.14스레드로팀플레이를배우자
1.15소켓프로그래밍으로네트워크세계를누비자

Chapter2_소스코드관리기술
2.1처음에는깨끗하게비우는것부터
2.2공통헤더파일만들기
2.3리소스파일추가하기
2.4산출물을관리하기위한파일정리기술
2.5빌드된산출물경로관리하기
2.6중요한파일과그렇지않은파일

Chapter3_윈도우즈빌드옵션이해하기
3.1다양한빌드방법
3.2구성과플랫폼
3.3일괄빌드
3.4구성관리자
3.5코드생성(런타임라이브러리)
3.6컴파일러버전(플랫폼도구집합)
3.7문자집합
3.8여러프로젝트관리
3.9여러프로젝트중시작프로젝트설정하기
3.10동적라이브러리실행설정
3.11미리컴파일된헤더

Chapter4_리눅스와맥을위한크로스플랫폼빌드-CMake
4.1리눅스와맥플랫폼빌드환경의특징
4.2CMake의동작원리
4.3CMake설정파일과위치
4.4프로젝트타입의설정파일구성
4.5솔루션타입의설정파일구성
4.6전체빌드는개별빌드의합이아니다
4.7두근두근,CMake빌드수행
4.8CMake빌드시주의사항

Chapter5_C++의꽃,정적라이브러리정복하기
5.1함수의집합인프로그램
5.2컴파일및링크오류
5.3오픈소스가만드는오류
5.4정적라이브러리만들기
5.5정적라이브러리가져다쓰기
5.6정적라이브러리배포하기
5.7대체왜꽃인가

Chapter6_오픈소스사용하기
6.1리눅스에서오픈소스빌드하기
6.2맥OSX에서오픈소스빌드하기
6.3윈도우즈에서오픈소스빌드하기
6.4OpenSSL빌드하기
6.5SQlite빌드하기
6.6zlib빌드하기
6.7오픈소스빌드하는것을두려워하지말자

Chapter7_긴코드를작성할수있는기술
7.1변수와함수네이밍
7.2함수는어떻게나눌것인가
7.3클래스와구조체네이밍
7.4클래스에Manager라는용어피하기
7.5For문에사용하는i,j,k네이밍
7.6파일시스템과Path네이밍
7.7전치사From/To를사용한네이밍
7.8조건문에서의부등호사용기술
7.9다양한코딩규칙

Chapter8_STL자료구조응용하기
8.1자료구조의개념적이해
8.2벡터와그응용
8.3벡터를동적버퍼처럼활용하기
8.4리스트와그응용
8.5맵과그응용
8.6맵을정렬알고리즘처럼활용하기
8.7셋과그응용
8.8유일한항목으로추릴때활용하기
8.9문자열과그응용
8.10STL문자열의단점들
8.11STL의일관성을알아두자

Chapter9_메모리정복하기
9.1이미잘알고있는힙메모리
9.2잘알고쓰면너무나훌륭한스택메모리
9.3스택메모리크기의한계
9.4스택메모리침범오류
9.5스택메모리구조이해하기
9.6스택메모리가드
9.7스택메모리현명하게사용하기
9.8링메모리

Chapter10_전역변수와정적변수,그리고함수들
10.1데이터영역에기록되는변수
10.2전역변수이해하기
10.3전역변수와정적변수그리고extern키워드
10.4함수안으로범위를한정하는정적변수
10.5전역함수와정적함수
10.6정적멤버함수
10.7정적멤버변수
10.8완벽한싱글턴패턴구현하기

Chapter11_데이터정복하기
11.1개념잡기
11.2데이터기획하기
11.3포매터설계하기
11.4채널과포매터의공통인터페이스
11.5포매터와구조체의인터페이스
11.6최상위인터페이스설계
11.7최상위인터페이스구현
11.8포매터구현하기
11.9포매터사용하기

Chapter12_멀티스레드정복하기
12.1멀티프로세스와멀티스레드
12.2스레드기능나누기
12.3스레드에직접데이터넘겨주기
12.4큐를이용한자료교환
12.5재사용가능한스레드
12.6지시자-수행자모델
12.7생성자-소비자모델
12.8발행자-구독자모델

Chapter13_소켓정복하기
13.1소켓이란
13.2소켓프로그래밍의시작
13.3TCP소켓이해하기
13.4TCP서버코드작성하기
13.5TCP클라이언트코드작성하기
13.6UDP소켓이해하기
13.7UDP서버코드작성하기
13.8UDP클라이언트코드작성하기
13.9UDP천공

Chapter14_네트워크정복하기
14.1OSI7계층과네트워크패킷
14.2패킷은원자단위데이터
14.3TCP패킷을읽어오는recv함수의비밀
14.4UDP패킷을읽어오는recvfrom함수의비밀
14.5순서가바뀌거나유실되는이유

Chapter15_프로토콜구현하기
15.1이제STX,ETX개념은졸업하자
15.2프로토콜기획하기
15.3패킷정의하기
15.4패킷헤더선언
15.5패킷헤더와패킷결합,패키타이저
15.6데이터패딩문제와패킷최적화
15.7가변패킷을위한패키타이저
15.8포매터를이용한가변패키타이저
15.9패킷스타일에따른차이

Chapter16_맺음말,그리고하고싶은이야기
16.1집중과각성의기술을이해하자
16.2월급은명성에비례한다
16.3방황하는분을위해서
찾아보기

출판사 서평

C++만20년하면서깨달은것은고급개념이아니라기본적인C++의동작원리와문법이었다

불굴의의지로여기까지왔습니다.어떤경우에는회사의일정에쫓기는와중에2주나걸려간신히해결한문제도있었고,무려5년만에알게된것도있습니다.그렇다고그게엄청나게어려운고급개념이아니라기본적인C++의동작원리나문법들이었다는게저를더맥빠지게했습니다.
나는이지식들을힘들게얻었지만여러분은안그랬으면좋겠습니다.재밌게코딩했으면좋겠습니다.그리고저보다더많은지식을또다시후배들에게나눠주었으면합니다.여러분이힘들었던부분이되풀이되지않게요.그렇게지속적으로이어질때개발자들이,그리고나아가서는인류가‘재미’라는본질에충실하며살게될것이라고믿습니다.

_주요내용
_여행을떠나기전알아야할것들
_소스코드관리기술
_윈도우빌드옵션이해하기
_리눅스와맥을위한크로스플랫폼빌드-CMAKE
_C++의 꽃, 정적 라이브러리 정복하기 
_오픈소스 사용하기
_긴 코드를 작성할 수 있는 기술
_STL 자료구조 응용하기 
_메모리 정복하기
_전역변수와 정적변수, 그리고 함수들  
_데이터 정복하기
_멀티 스레드 정복하기
_소켓 정복하기
_네트워크 정복하기
_프로토콜 구현하기
_집중과각성의기술,월급은명세에비례한다,방황하는분들을위해