그로킹 알고리즘 – 책 소개

🗓️

첫 만남이 중요한 알고리즘

한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

  • 원제 : Grokking Algorithms, Second Edition
  • 저자 : Aditya Y Bhargava
  • 출판 : 한빛미디어, 2025 / Manning Publication, 2024

알고리즘은 프로그래밍에서 빼놓을 수 없는 영역이다. 방대한 자료를 분석하고 요구사항에 맞는 해법을 내놓는데 최적의 해결방안을 내놓는데 필요한 것이 바로 알고리즘이다. 최적의 해결방안을 내놓는다는 것은 단순히 요구사항의 수행여부 뿐만이 아니라 실행 속도와 자원의 효율성으로 성능 개선을 한다는 의미도 있다. 오늘날 AI, 빅데이터같은 복잡하고 방대한 자료들 속에서 의미있는 결과를 도출하기 위해 알고리즘은 과거보다 더 중요해졌다.

오늘 소개할 책은 컴퓨팅으로 해결할 수 있는 문제들을 알고리즘으로 어떻게 최적화 하는지 알려준다. 앞서 말했듯 알고리즘은 최적의 해결방안을 위해 효율성을 따지는 기술이다. 단순히 무차별 대입이나 순차반복을 해도 주어진 요구사항을 해결하는데 아무런 문제가 없지만, 자료가 방대해진다면 처리하는데 걸리는 시간과 메모리 공간의 낭비는 증가할 것이다.

알고리즘-자료구조 책들은 대게 전공자들을 대상으로 하기 때문에 시간 복잡도를 나타내는 Big O 표현이나 공간 복잡도에 대해 바로 설명하는 경우가 많다. 그로킹 알고리즘이 친절한점은 처음부터 목적에만 집중하지 않고 문제를 해결하기 위한 여러 단계들을 제시하며 설명하고자 하는 바에 도달한다는 점이다. 가령 정렬을 설명하기 위해 가장 기본이 되는 선택정렬에서는 메모리와 배열이 어떻게 이뤄져있고 연결리스트와는 어떤 차이가 있는지 삽화로 자세히 설명한다. 정렬을 알기위해 필요한 모든 내용을 소개 후 선택정렬이 작동하는 방법을 설명한다.

그래서 그로킹 알고리즘은 코드보다는 도식이 담긴 삽화가 풍부하게 담겨있다. 또한 도식마다 그에 따른 설명도 같이 붙어있어 이론과 추론이 따로 설명된 책 보다 훨씬 편하게 볼 수 있었다. 그래서 알고리즘 뿐만 아니라 자료구조에 대해서도 처음 접하는 사람들이 본다면 이해를 금방 할 수 있을것이라 생각한다.

당연하게도 알고리즘에 대해서 이야기 하는 책이기 때문에 정렬, 이진 탐색, 그래프 탐색, 그리디 알고리즘, 동적 프로그래밍 알고리즘을 안다고 했을때 필요한 내용들은 모두 담겨있다. 또한 이러한 알고리즘을 이해하기 위해 필요한 배열, 연결 리스트, 스택, 해시 테이블, 트리, 그래프 같은 기초적인 자료구조 지식들을 같이 소개 한다. 또한 코딩 인터뷰에서 종종 분별력을 주기 위해 등장하는 동적 프로그래밍을 비롯해 역 인덱스, NP-hard 와 같은 내용들도 다루고 있어 허들을 넘어 알고리즘을 더 깊게 알게 되는데 도움이 됐다.

한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.