저의 돈으로 직접사서 직접 완독해본후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할것이며, 단점은 단점대로 언급할 것 입니다.
<읽은기간>
2021/02/18 ~ 2021/03/15
<리뷰 순서>
1) 책의 표지
2) 단원별 요약
3) 단원별 리뷰
4) 읽은소감
우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다.
Q 이 책을 읽기 전에 필요한 수준/ 지식은?
=> 이책은 C++을 이미 충분히 숙지한 사람을 대상으로한 자료구조 기본서 이다. 기본 문법사항들은 알고있어야 한다.
Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?
=> 자료구조의 필요성을 모르는 분들도 은근 블로그 글들 보면 있는데, 어짜피 STL 쓸건데 뭐하러 내부구조 까지 공부하나 이런 글을 본적이 있다.
하지만 작동원리를 알고 도구를 쓰는자와 내부 과정 하나도 모르고 갖어다 쓰기만 하는 사람의 신력 향상 차이는 엄청날거라 생각한다.
나또한 코테 준비용으로 공부하고는 있지만, 자료구조를 공부하면서 C++ 자체에 대한 숙련도가 증가 함과 동시에 STL의 뒷면에서의 작동원리, 또 추가적으로 알고리즘의 기초에 대한 내용까지 살펴볼수 있다.
C++ 기본문법을 익힌 누구든 자료구조 공부는 추천한다.
Q 이 책을 읽은후 추후 공부는?
=> 1회독은 했지만 트리부터 한번은 더 읽으면서 재복습할 예정이다. 이책이 총 600p 인데, 이중 트리가 300p부터 시작이니 절반 가량은 다시 복습할 예정이다.
또한 추가적으로 알고리즘에 대한 입문서+강의도 듣기 시작할 예정이다.
1. 책의 표지
이책의 표지는 쫌 애매하다. 이게 막 지저분한 표지도 아니면서.. 그렇다고 막 깔끔한건 아닌거 같고... 그렇다고 너무 전공서적 느낌나지도 않고... 어중이 떠중이 느낌이다.
뭐 내용이 중요하지 표지가 뭐가 중요한가? 라고 생각할수도 있지만, 그 논리면 어느 회사든 마케팅은 필요가 없어질것이다.
2. 단원별 구성
다음 학습 연계도 순서로 쳅터가 진행된다.
3. 10장 우선순위 큐
총 14장중 10장을 기준으로 이책을 설명하겠습니다.
▶ 책의 도입부에서 가볍게 해당쳅터에서 배울것이 무엇인지? 를 시작으로 설명해 준다.
▶ 이후 필요한 ADT를 명시해 준다. 모든 쳅터마다 ADT를 먼저 UML diagram으로 보여준후, 해당 기능들을 하나하나 구현하는 과정을 보여준는 방식이다.
위의 사진처럼 ADT를 작성한 후 다이어그램을 작성한다.
사실 예전에 열혈 C 자료구조 책을 보았을때 그 책에서 ADT의 설명을 잘 공부했었는데, 그책에서도 명확한 ADT의 사용은 객체지향 언어에서 사용되는것이 좋다라는 글을 본적이 있다. 나또한 C로 먼저 자료구조를 공부해보고 C++로 다시 공부해보니 왜 ADT의 명시가 객체지향 언어에서 더 효율적인지 조금은 느껴졌다.
▶ 위에처럼 ADT와 UML 을 확인해 본 후, 실질적인 구현과정을 책에서 보여주고 있다.
또한 구현 코드를 보다가도 가끔 이해가 안가는 부분은 코드 하단부에 코드 설명이라는 부분을 따로 작성해주셔서 읽기 편했다.
몇번째 행을 어떠한 이유로 구현하였는지, 어떤점을 주의 해야하는지를 보여주고있다.
물론 가끔 엉뚱한 행을 설명하기도 하는데 이는 책을 읽는다라는 흐름하에 지장없을 정도이다.
▶ 마지막으로 글로만으로는 이해하기 힘든 부분을 그림으로 보이며 설명해 주신다.
▶ 이후 연습문제와 프로그래밍 프로젝트 로 해당 단원의 내용을 점검할 수 있다.
프로젝트 문제는 조금 어렵거나 귀찮은 부분들이 있어 나도 전부 풀지는 않았다.
3. 단원별 리뷰
2장 : https://blogshine.tistory.com/30
3장 : https://blogshine.tistory.com/31
4장 : https://blogshine.tistory.com/32
5장 : https://blogshine.tistory.com/33
6장 : https://blogshine.tistory.com/36
7장 : https://blogshine.tistory.com/37
8장 : https://blogshine.tistory.com/38
9장 : https://blogshine.tistory.com/40
10장 : https://blogshine.tistory.com/44
11장 : https://blogshine.tistory.com/46
12장 : https://blogshine.tistory.com/48
4. 읽은소감
▶ 장점
장점은 무엇보다 C++로 코드가 구현된 자료구조 책 이라는 점 이다. 뭐 사실 자료구조와 알고리즘을 공부하는데 언어는 단지 도구일 뿐이지만, 나처럼 당장 C++기본 문법을 배운사람이라면 이왕 공부할꺼 C++로된 자료구조를 공부해야 문법 사항들이 더욱 익혀지며, 또한 C++에서의 상속, 템플릿 과 같은 C++의 기능들 또한 사용할수 있기에 좋았다.
나또한 C++로 적혀진 자료구조 책을 찾으려 노력했지만, 생각보다 C++로 된 자료구조 책(한글) 이 별로 없다. 이책하고 다른 파란색, 회색 책 2권 해서 총 3권정도 말고는 진짜 다 C로 설명하는 자료구조 책이 너무 많다. 그중에 가장 접근하기 쉬운 책이 이책이였던 것 같다. 회색책은 너무 이론집중에 수학적이여서 독학으로 당장 읽기에는 무리수 라 느껴 내년쯤에 다시 읽어볼 예정이다.
▶ 단점
1) 가끔 오타가 있다. 어떤분의 후기를 보면 오타가 너무 많아 읽기 힘들다고 하셨는데, 사실 이점은 논리적으로 책을 읽으며 흐름을 읽어왔다면 혼자서도 고쳐볼 수 있는 부분이다. 진짜 말도안되는 오타가 많은것이 아니다. 딱 한 쳅터 빼고 말이다. 나 같은 경우 12장 가중치 그레프 단원에서 이상하게 오류가 많은거 같다는 생각을 많이했다. 소스 코드에도 오류가 조금 있고... 저자 분께서는 일부분만 바꾸면 된다 하셨는데.. 일부분만 바꾸니 작동을 안하고... 딱 12장만 이런 느낌을 받았다.
2) 소스코드가 없다. 사실 책에 나와있는 소스 코드는 하나씩 직접 타이핑 하면서 공부하는게 정상이라 필요없지만, 그 main함수 코드나 미로 text, 각종 text 부분들은 제공해줬으면 좋겠다는 생각을 많이 했다. 좀 필요없는 노가다를 하는 느낌이랄까...
3) 이건좀 주관적인거라 단점이라고는 못하겠지만, 난 별로라 생각한 부분이다. 책을 읽다보면 가끔 해당 쳅터 마지막 부분에 뭐 만들어보기( ex 라인 편집기 만들기) 같이 뭐 만들기 부분이 있는데, 이부분들 너무 코드만 있고 설명이 없다.
설명이 코드 설명 부분으로만 끝나다 보니 이걸 내가 왜 타이핑하고있나? 이런 생각도 좀 들고... 차라리 과제로 뭘 만들어 보시오 가 좋을것 같다. 아니면 그냥 이런거는 싹다 빼버리고, 다른 어려운 부분에서 설명을 좀더 추가해줬으면 하는 단원들이 있었다.
결론: C++로 자료구조 공부해보고 싶다!! 하면 난 이책 추천한다!!
'Life > Book Record' 카테고리의 다른 글
[서평] Effective C++ : 이펙티브 C++ (0) | 2022.01.24 |
---|---|
[서평] IT 개발자의 거의 모든 것 (0) | 2022.01.23 |
[서평] 뇌를 자극하는 C++ STL (0) | 2022.01.22 |
[서평] 객체지향의 사실과 오해 (0) | 2022.01.21 |
[서평] 명품 C++ (0) | 2022.01.21 |
댓글