prettylee***
2025-02-23

한빛미디어에서 ‘나는 리뷰어다’ 서평단으로 선정되어 이 책을 받게 되었다. 두 권 중 랜덤으로 한 권이 올 예정이었는데, 내가 가장 원했던 그로킹 알고리즘을 받게 되어 기대가 컸다.
서점에서 제공하는 책 소개를 보면, 이 책은 복잡한 알고리즘 개념을 직관적으로 이해할 수 있도록 돕는 책이라고 나와 있다.
TMI
알고리즘은 개발자라면 중견 기업이나 서비스 기업으로 이직할 때 필수적으로 공부해야 하는 주제다. 나는 회사 지원할 때 알고리즘에 자신이 없어서 아예 코딩 테스트가 없는 회사들 위주로 지원했다. 하지만 경력 이직을 생각하면 결국 알고리즘을 공부해야 할 시기가 온다는 걸 깨달았다.
그런데 알고리즘은 입문하기가 쉽지 않다. 내 머리는 수학적으로 잘 안 돌아가는 것 같고, 이걸 제대로 공부하려면 오래 걸릴 것 같아서 부담스러웠다. 더군다나 알고리즘 책은 보통 너무 두꺼워서 시작하기도 전에 질려버리기 일쑤다. 그런데 이 책은 그런 부담을 줄여줄 수 있을 것 같아 기대되었다.
이 책은 알고리즘의 기초부터 고급 개념까지 단계적으로 설명하며, 각 장에서 개념을 배우고 연습문제를 통해 실습할 수 있도록 구성되어 있다.
단순히 기초적인 알고리즘 개념만 다루는 게 아니라, 실전에서 활용할 수 있는 다양한 문제 해결 방법까지 폭넓게 다룬다.
처음에는 이진 탐색, 선택 정렬, 재귀, 퀵 정렬 같은 기본적인 알고리즘 개념을 배우면서 문제 해결의 기초를 다진다. 이후에는 해시 테이블, 너비 우선 탐색(BFS), 깊이 우선 탐색(DFS), 균형 트리 등을 배우면서 데이터 구조와 탐색 기법을 심도 있게 익힌다.
여기서 끝이 아니라, **탐욕 알고리즘(Greedy Algorithm)**과 **동적 프로그래밍(DP)**까지 다루면서 최적화된 문제 해결 방법을 학습할 수 있다. 탐욕 알고리즘은 빠른 해결 방법을 찾을 때 유용하고, 동적 프로그래밍은 더 복잡한 최적화 문제를 해결하는 데 필수적인 기법이다.
또한 다익스트라 알고리즘을 통해 가중 그래프에서의 최단 경로 탐색을 배우고, KNN 알고리즘과 머신러닝 개념까지 접할 수 있다는 점도 매력적이다.
일반적인 알고리즘 책에서는 다루지 않는 선형 회귀, 병렬 알고리즘, 맵-리듀스, HTTPS, 블룸 필터, 최소 힙 같은 고급 개념까지 다뤄서, 실무에서 활용할 수 있는 배경 지식을 넓힐 수 있다.
단순히 코딩 테스트를 대비하는 용도로 끝나는 게 아니라, 실제 개발에서 성능 최적화, 보안, 데이터 처리까지 고려할 수 있도록 도와주는 책이라 더 가치가 있다.
전체적인 특징
책을 아직 다 읽지는 않았지만, 앞부분을 읽어보면서 느낀 장점들을 정리해봤다. 알고리즘을 처음 접하는 사람들도 부담 없이 읽을 수 있도록 구성되어 있어서 입문자에게 특히 좋은 책이라고 생각된다.
책을 읽으면서 가장 좋았던 점 중 하나는 설명과 함께 제공되는 그림들이다. 알고리즘을 처음 배울 때는 개념이 머릿속에 쉽게 정리되지 않는 경우가 많은데, 단순한 텍스트 설명이 아니라 그림과 함께 설명해주니 훨씬 직관적으로 이해할 수 있었다.
이론적인 개념을 설명하는 것에서 끝나는 게 아니라, 일상 속 사례와 연결해서 설명해주기 때문에 이해가 쉬웠다. 예를 들어, 그래프 탐색을 설명할 때 지도에서 최단 경로를 찾는 개념과 연결해 설명해주는 식이다. 덕분에 "이 알고리즘이 실제로 어디에 쓰이는지" 감이 잘 왔다.
알고리즘 책이라고 하면 두꺼운 이론서가 먼저 떠오르는데, 이 책은 400페이지가 넘지 않아서 부담스럽지 않게 읽을 수 있었다. 입문서로 보기 좋은 두께라서 처음부터 끝까지 읽기에 부담이 적고, 중간중간 필요한 부분만 골라 읽기에도 좋을 것 같다.
각 챕터 끝에 연습문제가 있어서 단순히 개념을 읽고 넘기는 게 아니라, 직접 문제를 풀면서 이해도를 점검할 수 있다. 배운 내용을 한 번 더 복습할 수 있어서 기억에 오래 남는다는 점이 장점이었다.
책에서 다루는 개념들이 실제 코딩 테스트에서 자주 등장하는 알고리즘과 문제 유형이 많다. 예를 들어, 이진 탐색, 정렬, 그래프 탐색(BFS, DFS), 재귀, 다익스트라 알고리즘, 동적 프로그래밍(DP), 탐욕 알고리즘 같은 것들이다. 코딩 테스트를 준비하는 사람이라면 기본 개념을 익히기에 좋은 책이다.
단순한 수식과 공식 암기가 아니라, 직관적으로 개념을 이해할 수 있도록 설명해줘서 처음 접하는 사람도 쉽게 따라갈 수 있었다. 특히, 어려운 개념을 친절하게 설명하는 방식이 인상적이었다.
책을 더 꼼꼼히 읽어보고 나면 추가로 느낀 점이 있을 것 같은데, 지금까지 본 것만으로도 입문자에게 정말 좋은 알고리즘 책이라고 생각된다.
알고리즘을 공부하는 이유는 단순히 코딩 테스트를 통과하기 위해서가 아니라, 문제를 해결하는 사고방식을 기르고, 더 효율적인 코드 작성을 할 수 있도록 돕기 때문이다.
특히 이직/취업 관점과 공부 관점에서 각각 중요한 이유가 있다
그러한 이유로 그로킹 알고리즘 책은 입문하기 쉬운 책인 것 같다. 그렇기에 나도 이 책을 기간을 두고 좀 더 깊게 읽을 예정이다.
