binsoop***
2022-12-31

복잡한 수식은 최소화하고 이해에 꼭 필요한 수식만 담고 작동 원리를 단번에 이해할 수 있게 도와주는 다양한 그림과 바로 실행하고 확인할 수 있는 108개 소스 코드를 예제로 제공해 알고리즘의 얼개를 완벽히 이해할 수 있도록 구성했다.
> 진행에 앞서
개발자로 취업을 꿈꾸고 있는 사람이라면, 많은 경우 이것부터 준비한다.
바로 코딩테스트이다.
비록 '코딩테스트 = 알고리즘 테스트'는 아니지만, 최소한 알고리즘에 대한 내용을 전혀 모른 상태에서 진행하는 것은 덧셈도 못하면서 곱셈에 도전하는 느낌이기에, 알고리즘은 어느새 많은 개발자들에게 부담아닌 부담으로 다가와 있는 상황이다.
그리고 그 알고리즘에 대한 기본기를 다지기 위해서는 자료구조를 잘 알아야 한다.
물론 고급언어 기준으로는 다양한 자료구조에 해당하는 클래스 및 함수를 제공하고 있기 때문에, 이런 부분에 대한 깊이 없이도 쉽게 처리할 수는 있지만, 어느정도 올라가다보면 한계에 부딪히게 된다. 기본기가 부족하기 때문에 발생하는 현상이라고 생각한다.
이에 대해 많은 개발자들이 잘 받아들일 수 있도록 고민한 책을 접하게 되었다.
> 책에 대한 간단한 정보
이 책의 표지는 깔끔하지만, 인상적인 한 마디를 적어 두었다.
'위트 넘치는 이야기로 자칫 지루할 수 있는 자료구조+알고리즘 개념을 즐겁게 배운다.'
이 이야기가 전체의 맥을 잘 잡고 표현했다고 생각한다.
책 전체가 이야기를 전해주는 느낌을 주기 때문이다. 그래서 책을 읽는다기 보다는 책을 듣는다는 느낌에 좀 더 가까웠다.
직접 흐름을 잡아 끌어주기 때문에, 내 스스로의 포기 의지만 없다면 자연스럽게 하나씩 익히기 좋은 느낌이다.
> 인상깊은 부분들
저자는 머릿말에서 알고리즘이라는 것 자체가 모든 프로그래머에게 필요한 것이 아닐 수 있다고 이야기 한다. 하지만, '좋은' 프로그래머가 되기 위해서는 큰 보탬이 된다고 말한다. 즉, 프로그래머로 그냥 밥벌어 먹는 것 외에는 큰 비전이나 목표가 없는 사람이라면 애초에 관심이 없겠지만, 계속 성장하고 더 큰 일을 할 수 있으며, 높은 이상을 바라보는 프로그래머라면 자료구조와 알고리즘은 매우 중요한 요소임을 역설적으로 말하고 있다.
검증된 표준 라이브러리를 사용하는 것은 현대 프로그래머의 축복과도 같은 상황이지만, 그것을 연장통으로 볼 때, 그 연장통 안의 도구를 적절히 사용하려면 그것을 올바르게 알고 있어야 한다는 것도 말하고 있다. 참 설득력이 있다고 생각한다.
매 장을 시작할 때면, 이 장의 학습흐름이 눈에 띄었다. 이것은 스택에 대한 장을 예시로 든 것인데, 스택을 익히기 위해서 다음의 흐름으로 말할 것이라는 예고편이다. 스택이 어떤 것인지 개요부터 시작하여, 가벼운 스택의 구현방법과 그 스택으로 계산기를 구현할 수 있다는 것을 알려준다. 다른 장도 대부분 마찬가지이지만 이 흐름이 그렇게 딱딱하게 느껴지지 않아서 좋았으며, 그만큼 많은 노력이 들어갔다는 점이 느껴졌다.
앞서 살펴본 내용의 연장선이다. 스택에 대해서 설명한 내용인데, 이 내용을 설명할 때 그림을 적극 활용하였다. 이 그림이 아니었다면, 매우 추상적이었을 것이고, 애초에 자료구조에 대해 잘 이해하고 있던 사람이 다시 상기할 때는 상관없었을 것이다. 하지만, 그렇지 않았다면, 추상적인 설명은 이 책을 덮게 만들었을지도 모른다. 어떻게든 그림으로 잘 표현하려고 노력한 이와 같은 부분이 다른 부분에서 쉽게 찾아볼 수 있다.
스택을 이용한 연산에서는 당연하게도 많이 쓰이는 후위연산자 표기방법을 사용하여, 어떻게 연산을 수행할 수 있는지 보여준다. 스텝 바이 스텝의 형식으로 표현했기 때문에 누가봐도 크게 어렵지 않을 것이다.
이 책에서 다루고 있는 내용을 나열식으로 기록한 것이 특징이다. 알고리즘 부분에서는 '분할 정복', '탐욕 알고리즘' 등 알고리즘 공부좀 해봤다면 한 번쯤은 들어봤을 법한 용어들을 알려주고 있다.
이 책은 이론에 관한 책이 많으나 실습으로 그것을 이해하는 데 도움을 주고 있다는 점 또한 말하고 있으며, 그것에 그치지 않고 응용을 할 수 있는 알고리즘의 내용까지 이어지고 있기 때문에 많은 사람이 이 책을 필요로 하고 있다는 점을 알려주는 듯한 느낌이 든다.
> 괜찮은 부분
> 아쉬운 부분
> 추천 독자
- 취업이나 이직을 앞두고 있는 개발자
- C언어에 대한 간단한 지식을 갖고 있으며, 그 기반으로 자료구조와 알고리즘 공부를 하고자 하는 개발자
- 사내 혹은 외부에서 자료구조와 알고리즘에 대한 스터디를 진행하고자 하는 개발자
- 코딩 테스트 공부를 진행하는 도중 최적화에 관심이 많고, 개발한 코드의 성능을 올리고자 하는 개발자
> 개인적인 평점
- 가격: 8 / 10
- 내용: 10 / 10
- 디자인: 8 / 10
- 구성: 9 / 10
> 정보
저자: 박상현
출판사: 한빛미디어
가격: 34,000원
전체 페이지: 644페이지
** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.