Life/Book Record

[서평] 뇌를 자극하는 C++ STL

샤아이인 2022. 1. 22.

저의 돈으로 직접사서 직접 완독해본후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할것이며, 단점은 단점대로 언급할 것 입니다.

 
뇌를 자극하는 C++ STL
저자 : 공동환
출판 : 한빛미디어
발매 : 2012.04.02.

<읽은기간>

2021/02/04 ~ 2021/02/18

<리뷰 순서>

1) 책의 표지

2) 단원별 요약

3) 읽은소감

우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다.

Q 이 책을 읽기 전에 필요한 수준/ 지식은?

=> 이책은 C++을 이미 충분히 숙지한 사람을 대상으로한 추가적인 공부서적이다. STL이란 standard template library로써 C++의 표준 라이브버리에 대한 공부이다. 이를 위한 입문서가 되는 책이 바로 이책이다. 자료구조를 기반으로 구성된 여러 컨테이너에 대해 배우며, 사용법을 알려주는 서적이다.

Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?

=> C++로 코딩테스트를 준비하는 사람들이 필수로 공부하는 과정이 있다면 자료구조, 알고리즘, STL 일 것이다. 실제로 유명한 알고리즘서적인 종만북 에서도 2권에서는 STL을 사용하는 방법을 중점으로 자료구조를 설명해준다고 한다. PS를 할때 실제로 자료구조까지 하나하나 구현하면 시간안에 문제를 풀수가 없을것이다. 이미 충분히 잘 만들어진 표준을 갖어다 사용해야하는데 그때 사용하는 것 이 STL이다. 따라서 STL또한 따로 2~3번을 공부해줘야 할 것 이다.

Q 이 책을 읽은후 추후 공부는?

=> 나같은 경우 이책을 재복습 하기보다는 C++17 STL에 관한 책을 새로 읽을생각이다. 같은 책을 다시 읽어도 좋지만, STL같은경우 C++17이 가장 최신의 표준이기 때문에 이를 공부하면 같은 내용은 중복되어 공부될 것이고, 추가된 내요또한 접할수 있어 더 좋을것 이다.

 

1. 책의 표지

음 그냥 뭐랄까 깔끔한것도 아니고, 그렇다고 지저분 하지도 않고, 또 전공책 느낌이 너무 나는것도 아니고.. 흠 애매모호한 표지이다.

책은 내용이 중요하지만 난 항상 책 리뷰를 쓸때 표지 리뷰도 남긴다. 혹시나 책 표지 디자인 하신 분들이 보면 조금 도움이 될까 해서이다.

 

 

2. 단원별 구성

목차

1) 연산자 오버로딩

2) 함수 포인터

3) 함수 객체

4) 템플릿

5) STL 소개

6) 시퀀스 컨테이너

7) 연관 컨테이너

8) 알고리즘

9) STL 함수 객체

10) 반복자

11) 컨테이너 어댑터

12) string 컨테이너

총 12장중 11장을 기준으로 이책을 설명하겠습니다.

 

11장 컨테이너 어댑터

▶ 책의 도입부에서는 항상 이단원의 핵심이 무엇인지부터 간략하게 집어주고 본격적인 내용에 들어갑니다.

 책의 초반부는 어느정도 레퍼런스요 서적처럼 사용가능한 인터페이스들을 열거해줍니다.

든 단원이 이런것은 아니지만, 특히 8장 알고리즘 단원에서는 각 알고리즘마다 이러한 정리표가 있었습니다.

추후 필요할때 쉽게 원하는 기능을 찾아볼 표가 되어줄것 같습니다.

 이후 본격적으로 설명하는 부분이 나옵니다. 대부분의 기능을 설명해 주며, 코드로 어떻게 사용하는지 방법또한 보이고 있습니다.

중복되는 내용은 이전에 설명한 내용과 동일함을 언급하며 지나가는 부분이 좋았습니다.

저같은 경우 같은말 반복하는 문과식 글을 정말 지겨워서 못읽는데, 그런점에서 좋았습니다.

 항상 마지막장에는 간단한 연습문제들이 존재합니다. 문제가 엄청 많은 것은 아니고 평균 단원당 5~7문제 정도씩 있는것 같습니다.

11장 같은경우 내용이 짧아 문제또한 적었습니다.

 

장점

장점은 무엇보다 맨처은 STL을 접하기 아주 좋은책 인것 같습니다. 설명이 너무 자세하지도 않고 적당한 수준까지만 이해를 시켜줍니다.

컨테이너의 사용법을 보이는 부분 또한 간단한 예를 통해서 보여주기 때문에 이해가 안되는 부분은 적었습니다. (없었던것은 아닙니다)

 

이를 기반으로 STL17 에 관한 책도 읽어볼 생각인데 아주좋은 기반을 만든 느낌이라 좋은것 같습니다.

 

양도 이정도면 적당하기에 진짜 마음먹으면 금방읽을수 있는 정도의 양입니다. 부담없이 읽기 좋았습니다.

 단점

가끔 아주 가끔 이해안가는 부분이 있는데 코드에 대한 설명이 조금은 부족한 느낌이 들었습니다. 예를 들어 STL 함수 객체 단원에서 끝부분에 나오는 멤버함수 포인터 어댑터를 사용자가 직접 정의하는 부분에서 template를 활용한 설명부분이 있느데 이 부분이 코드를 보면 뭘 하겠다는 의미는 느껴지는데, 명확히 이해되지는 않았습니다. 이는 추후 9장을 한번더 읽어보면서 다시 이해해볼 생각입니다.

 

오타도 가끔있는데 논리적 흐름에 지장이 없는 오타라 크게 읽으면서 불편하진 않았고, 중간에 딱 한번 C++17에서 사라진 내용(binder)이 나오기도 하지만 이책이 처음 출판된 년도를 생각하면 이는 당연한 내용이기 때문에 사용 방식만 보고 넘어갔습니다.

댓글