도서 리뷰: 그로킹 알고리즘

nofence 2025. 2. 28. 23:45

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

IT 세계에서 현실 세계의 복잡한 문제를 해결하기 위해 프로그래밍을 사용하고 프로그래밍이라는 과정을 거쳐 하나의 프로그램이 완성된다. 그런데 프로그램은 시간과 공간의 제약을 받을 수 밖에 없는 태생적 한계를 갖고 있기 때문에 보다 효율적으로 자원을 사용하기 위한 노력이 수반돼야 한다. 즉 최초에 프로그램을 작성할 때부터 효율성을 고려한 알고리즘 전략을 세워야 하고 이를 통해 비로소 시간과 공간의 제약을 극복할 수 있는 기반이 마련된다. 일련의 문제 해결을 위한 절차인 알고리즘은 비단 프로그래밍에 국한되지 않지만, 프로그래밍 세계에서 어느 정도 정형화되고 보편화된 다양한 기법이 존재하고 있으며 이는 우리보다 앞서 여러가지 문제를 해결한 선구자들과 거인의 어깨 위에 올라선 거장들의 노력 덕분에 고안되었고 지금껏 우리는 그 혜택을 톡톡히 누릴 수 있게 된 셈이다. 그런데 알고리즘을 학습하는 것이 결코 쉽지 않은데, 그 이유는 특정 알고리즘을 이해하기 위해 필히 선행되어야 하는 배경지식과 그에 따른 표현에 있어 다양한 수식이 동반되기 때문이다. 그래서 알고리즘 학습을 시작하는 이들이 시작하기도 전에 지레 겁을 먹거나, 학습 도중 포기하는 경우을 종종 목격하게 된다. 그렇다면 보다 쉽게 알고리즘을 학습할 수 있는 방법은 없을까? 오늘 소개하는 서적이 바로 그 물음에 대한 답이 되어 줄 수 있으리라 생각한다.

 

 

여타 서적과 마찬가지로 이 책은 빅오 표기법을 위시하여 기본적인 알고리즘 학습 토픽으로 자주 사용되는 정렬, 트리, 재귀, 탐색 등 다양한 알고리즘 기법에 대한 설명이 저자의 독특한 표현 방식과 풍부한 그림을 통해 전달된다. 난해하고 복잡한 수식 대신 간결하고 직관적인 도해로써 쉽지 않은 알고리즘도 어느 순간 이해의 영역에 다가서게 된다. 물론 모든 알고리즘을 그림으로써 온전히 표현할 수 있다면 더 할 나위 없겠지만 적어도 특정 알고리즘이 어떻게 코드로 구현되는지에 대한 이해도 반드시 필요하기 때문에 본 서적에서는 그러한 사항을 충족하기 위해 파이썬 코드로 설명이 확장된다. 따라서 파이썬에 대한 기본적인 이해가 선행되어 있다면 보다 더 나은 학습으로 이어질 수 있겠지만 그렇지 않더라도 핵심을 이해하는 데 크게 문제되지는 않는다. 중요한 건 알고리즘이 어떻게 동작하며, 어떤 논리 구조를 갖추고 있는지 파악하는 것이며 그림을 통해 그러한 일련의 흐름을 따라갈 수 있다면 그것만으로도 충분하다고 볼 수 있겠다. 마지막 챕터에서는 추가적으로 공부해야 하는 영역을 제시하면서 다양한 기법의 알고리즘에 대한 소개도 놓치지 않고 있다. 

 

이 책은 복잡한 수식 없이도 실세계에서 다양하게 사용되는 알고리즘에 대해 누구나 쉽게 다가갈 수 있도록 도와 주며 명쾌하고 탁월한 설명으로 알고리즘 학습의 정도를 제시한다. 알고리즘의 늪에 빠져 허우적대는 모든 이들에게 이 책을 통해 다시금 알고리즘 학습을 재개하기를 권고하며, 처음 알고리즘 학습을 시작하는 초심자에게도 이 서적과 함께 진정한 알고리즘의 세계로 온전히 진입할 수 있기를 추천한다. 비록 이 책 한 권으로 알고리즘 학습을 완성할 수 없지만 적어도 알고리즘의 기초를 쌓고 더 나아가 심화된 학습을 이어 갈 수 있는 지적 근육이 충분히 단련되리라 생각한다. 알고리즘 학습을 망설이고 있다면, 지금 바로 이 서적과 함께 학습을 시작해 보면 어떨까?

반응형