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

한빛출판네트워크

Thinking About C++11 STL 프로그래밍(개정2판)

리얼타임 eBook

집필서

판매중

  • 저자 : 최흥배
  • 출간 : 2014-06-12
  • 페이지 : 263 쪽
  • ISBN : 9788968486623
  • 초급 초중급 중급 중고급 고급
0점 (0명)
좋아요 : 27

C++ 프로그래머를 위한 C++11 STL 가이드 


C++은 아직도 건재하다. 프로그래밍 언어 순위를 보아도 2012년부터 2014년까지 4위를 유지하고 있다. 게임 개발에서도 C++는 주력 언어로 사용하고 있다. 대부분의 게임엔진(Gamebryo, Havok, FMOD, SpeedTree, Unreal) 또한 C++로 만들어졌다. 


C++ 11은 2011년 8월에 발표된 C++ 프로그래밍 언어의 차세대 표준으로, 아직 실무에 완전히 적용되지는 않았지만, 활용도가 점점 높아지고 있는 프로그래밍 언어다. 현재 대부분 플랫폼에서 100%는 아니라도 꽤 높은 수준으로 C++11을 지원하므로 새로운 표준에 맞게 C++11에 기반을 두고 프로그래밍하는 것이 좋다. 그리고 STL은 C++의 '표준 템플릿 라이브러리'로 일반적으로 많이 사용하는 자료구조나 알고리즘을 모은 라이브러리다. STL을 사용하면 프로그래밍 시간이 많이 단축할 수 있어서 C++ 프로그래밍 능력을 높이기 위해 꼭 알아야 할 기능이다. 


이 책은 『Think About: C++11 STL 프로그래밍』(한빛미디어, 2013년 10월)의 개정판으로, 기존 도서가 출간된 후 독자 리뷰를 통해 들어온 요청 사항을 반영하고 초판에서 다루지 않았던 srting, 난수, 알고리즘 등의 내용을 추가하였다. 


초판에서 사용한 C++ 도구인 VS(Visual Studio) 2012는 이후 VS 2013이 나왔지만, 아직 C++11의 모든 기능을 다 지원하지 못하고 있다. 그래서 VS를 통해 C++11의 모든 기능을 설명하기가 어려웠는데, 이런 문제를 해결하기 위해 개정 2판에서는 온라인 컴파일러 사용법을 소개한다. 온라인 컴파일러를 사용하면 VS나 Windows 개발자에게 설치가 간단하지 않은 Clang, gcc를 설치하지 않고도 아주 쉽게 컴파일러를 사용해 볼 수 있다.


이 책의 주요 특징은 다음과 같다.


① 최신 C++ 표준인 C++11을 다룬다.
② C++의 코어 문법보다 활용에 도움을 주는 STL을 다룬다.
③ STL 중에서 가장 많이 사용되는 것을 집중적으로 다룬다. 


대상 독자

  • C++ STL의 새로운 기능을 빠르게 습득하고 싶은 초중급 C++ 프로그래머
  • C++로 모바일 앱을 개발하고 있는 모바일 개발자
  • C++ STL에 대해서 어느 정도 알고 있는 초급자

C++11 STL에 추가된 기능을 예제를 통해서 빠르게 익혀보자! 
이 책은 『Think About: C++11 STL 프로그래밍』(한빛미디어, 2013년 10월)의 개정판으로, 초판의 내용을 더 보강하고, 문법보다 활용에 초점을 맞추었다. C++11에 새롭게 추가된 STL 내용 중 실무에서 사용빈도가 높은 것만을 선별하여 알려주므로 C++ STL을 어느 정도 알고 있는 개발자라면, 이 책을 통해 C++11 STL의 내용을 빠르게 훑어볼 수 있을 것이다. 
또한, C++11 STL에 추가된 기능이나 문법 특징을 잘 보여주는 예제를 통해서 쉽고 빠르게 C++11 STL을 배울 수 있다. 따라서 C++11 문법을 다 모르더라도 이 책을 통해서 배운 기능만 사용한다면 기존보다 더 편하고 강력하게 C++ 프로그래밍을 할 수 있을 것이다.
다만, 깊이 있는 이론보다는 활용에 중심을 두고 있어서 STL의 깊은 부분이나 세세한 부분까지는 다루지 않는다. 하지만 이 책에서 보고 배운 것은 실제 프로그램을 개발하는 데 바로 사용할 수 있어서 독자에게는 실용적인 책이 될 것으로 생각한다. 이 책을 통해서 C++11의 새로운 STL 기능을 배우고, C++ 프로그래밍을 이전보다 더 쉽고, 강력하게 할 수 있기를 바란다. 
이 책은 전작인 『Think About: C++ STL 프로그래밍』(한빛미디어, 2012년 12월, 비매품, 무료)에서 설명하고 있는 내용을 기준으로 설명하고 있다. STL에 대해 잘 알지 못하는 분들은 먼저 전작을 보고 나서 이 책을 보길 바란다.

최흥배 저자

최흥배

2003년부터 PC 온라인 보드게임을 시작으로 액션 게임, MMORPG, 모바일 플랫폼 게임까지 아우르는 다양한 온라인 게임 서버 프로그램을 만들어온 게임 개발자다. 프로그래밍 언어는 C++와 C#을 주로 사용하며, 요즘은 C++17 프로그래밍과 심도 있는 .NET 기술, 유명 백엔드 오픈소스 라이브러리와 프로그램, Go 프로그래밍 언어를 주로 공부하고 있다.

 

기술과 개발 경험을 여러 사람과 나누는 것을 좋아하여 게임 개발자 커뮤니티와 세미나 강연을 통해 다른 프로그래머와 활발히 교류하고 있다. 웹이 대중화되기 전부터 프로그래밍 공부를 해 와서 그런지 여전히 새로운 기술을 배울 때는 책을 선호하고 지금도 매달 새로운 프로그래밍 관련 책을 읽으며 연구하고 있다.

 

현재(2016~2017년) ‘NHN Next’라는 교육 기관에서 ‘C++ Advance’ 과정과 ‘게임 서버’ 과정을 맡고 있다.

01 C++11 기초
    1.1 auto 
    1.2 람다 
    1.3 range based for 
    1.4 enum 
    1.5 nullptr 


02 메모리 관리
    2.1 shared_ptr 
    2.2 unique_ptr 


03 tuple 
    3.1 tuple이 필요할 때 
    3.2 tuple 사용하기
    3.3 더 간단하게 tuple 정의하기
    3.4 tuple에 저장한 데이터 개수 알기
    3.5 tuple의 요소를 한꺼번에 다른 변수에 담기
    3.6 tuple과 tuple 합치기


04 array
    4.1 array 사용하기
    4.2 요소 접근 
    4.3 array의 크기 알기 
    4.4 fill을 사용하여 특정 값 채우기


05 forward_list 
    5.1 forward_list를 만든 이유 
    5.2 forward_list 사용하기 
    5.3 데이터 추가하기 
    5.4 데이터 삭제하기 
    5.5 정렬 
    5.6 중복 제거 
    5.7 합치기


06 unordered_map 
    6.1 unordered_map 사용하기
    6.2 데이터 추가와 삭제 
    6.3 검색 
    6.4 검색 - 없으면 추가하기
    6.5 클래스(혹은 구조체)를 key로 사용하기 


07 chrono 
    7.1 chrono 사용하기 
    7.2 시간 단위 
    7.3 시간 연산 
    7.4 clock 클래스 


08 std::thread
    8.1 스레드 만들기 
    8.2 스레드가 종료될 때까지 기다리기 
    8.3 스레드 식별자와 스레드 교환 
    8.4 스레드 떼어내기와 스레드 종료 대기 가능 조사 
    8.5 하드웨어 스레드 개수 알기 
    8.6 스레드 일시 중지 및 양보하기
    8.7 thread 객체를 join이나 detach하지 않고 파괴했을 때 


09 동기화 객체 
    9.1 공유 객체 동기화하기 
    9.2 자동으로 락 풀기
    9.3 반복하여 락 걸기 
    9.4 지정한 시간 동안만 락 시도하기
    9.5 unique_lock 
    9.6 복수의 mutex 객체를 동시에 락 걸기 
    9.7 프로그램에서 딱 한 번만 실행하기 
    9.8 스레드마다 데이터 저장하기 
    9.9 이벤트를 사용한 동기화 객체 
    9.10 스레드 대기 


10 std::atomic 
    10.1 lock-free로 공유 자원 조작하기
    10.2 초기화와 읽고 쓰기 
    10.3 연산 조작 
    10.4 바꾸기와 비교 후 바꾸기 


11 async/future 
    11.1 함수를 비동기로 실행하기 
    11.2 std::thread에서 비동기로 함수 실행 
    11.3 비동기 task 


12 string 
    12.1 사용하기 
    12.2 문자열 길이 조작 
    12.3 문자열 접근 
    12.4 문자열 변경 
    12.5 문자열 비교 
    12.6 문자열 복사 
    12.7 문자열 검색 
    12.8 문자열 일부 복사 
    12.9 문자열 변환 
    12.10 hash 


13 난수 
    13.1 사용하기 
    13.2 시드 값을 사용한 난수 생성 
    13.3 예측 불가능한 난수 생성 
    13.4 일정 범위 안의 난수 생성 
    13.5 일정 확률로 난수 생성 
    13.6 성공 횟수 확률 
    13.7 정규 분포 
    13.8 기본 난수 생성기 


14 알고리즘 
    14.1 컨테이너 요소들의 조건 검사 
    14.2 조건에 맞는 요소만 복사하기
    14.3 원하는 개수만큼 요소 복사하기 
    14.4 조건에 맞지 않는 요소 찾기 
    14.5 요소를 두 집단으로 나누기 
    14.6 요소들의 구분 조사 
    14.7 정렬 여부 조사 
    14.8 Heap 사용 여부 조사 
    14.9 요소를 연속적인 값으로 채우기 
    14.10 최소값과 최고값 찾기 


15 기타
    15.1 통일된 초기화 구문
    15.2 멤버 변수 초기화 
    15.3 생성자에서 다른 생성자 호출하기 
    15.4 함수의 delete 지정 
    15.5 override와 final 
    15.6 Template Aliases
    15.7 ref 
    15.8 function 
    15.9 mem_fn 
    15.10 system_error 
    15.11 std::next, std::prev, std::begin, std::end 


부록 

  • 첫번째 리뷰어가 되어주세요.
  • 결제하기
    • 문화비 소득공제 가능
    • 배송료 : 2,000원배송료란?

    배송료 안내

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

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

    닫기

    리얼타임 eBook 안내

    PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.

    리뷰쓰기

    닫기
    * 도서명 :
    Thinking About C++11 STL 프로그래밍(개정2판)
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

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

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

    오탈자 등록

    닫기
    * 도서명 :
    Thinking About C++11 STL 프로그래밍(개정2판)
    * 구분 :
    * 상품 버전
    종이책 PDF ePub
    * 페이지 :
    * 위치정보 :
    * 내용 :

    도서 인증

    닫기
    도서명*
    Thinking About C++11 STL 프로그래밍(개정2판)
    구입처*
    구입일*
    부가기호*
    부가기호 안내

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

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

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

    닫기

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

    자료실