똑똑한 코드 작성을 위한 실전 알고리즘 - 파이썬 예제로 문제 해결 전략 익히기
조지 하이네만 지음, 윤대석 옮김 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기


--> 한빛출판네트워크로부터 책을 제공받아 작성했습니다.


알고리즘 책이 시중에 많이 나오는 것은 무슨 이유일까??

그렇다고 설명하는 알고리즘에 더 고차원적인 알고리즘이 추가 되어 있는 것도 아니다. 입문용 알고리즘의 테마는 고정되어 있지만, 그것을 설명하고 응용하는 방법을 각 저자 나름의 방법대로 설명하는 것이 다양하기 때문이리라 생각한다.


알고리즘을 공부하기 위해 여러가지 책을 보면서 나 자신이 가장 힘들다 라고 느낀점은 알고리즘 설명과 실제 소스 코드와의 괴리가 좀처럼 해결되지 않는 다는 점이다. 알고리즘의 설명에서는 간단하게 원리를 설명하지만, 그 원리를 직접 소스코드로 구현할 경우에 원리에서는 한 마디도 나오지 않았던 여러가지 추가적인 내용이 나와 있다.


일부 불친절한 책의 경우에 읽는 이의 이해력에 전적으로 의존해서 읽기는 다 읽었는데 어떻게 이런 소스코드로 작성되었는지 전혀 이해가 안 되는 경우도 많았다. 


이 책은 많지는 않지만 개인적으로 읽어봤던 알고리즘 서적중에 가장 쉽게 이해가 되었다. 원리 뿐만이 아니라 그 원리를 구현하기 위해 어떤 방법을 사용하고 해당 방법을 사용한 경우에 메모리의 움직임과 소스 코드의 움직임을 적절하게 제시를 하여 읽는 이의 이해력을 극대화 하는데 촛점을 두었다.


책의 내용을 따라가다 보면 어떤 원리로 알고리즘이 목적을 이루고, 그것을 위한 각각의 동작과 연결되는 소스코드의 설명은 많은 책들과 비슷하다. 이 책이 가장 주안점을 둔 부분은 소스코드가 실제 실행되면 이런 식으로 된다는 실행 시간별로 보여주는 메모리 도해이다. 


이 메모리 도해을 통해서 알고리즘의 원리와 소스코드의 괴리가 대부분 해소되는 경험은 이제까지의 알고리즘 서적이 얼마나 불친절했다는 것을 보여주는 예가 아닐까 감히 이야기 해 본다.


이 뒤에 이야기 할 몇 가지 개선이 필요한 부정적인 내용이 있음에도 불구하고, 가장 쉽게 알고리즘을 이해 시켜줄 서적으로 나는 이 책을 추천하길 주저하지 않을 것이다. 


이 책의 개선점으로는 다음과 같다.

첫번째로 조판 품질이 생각보다 많이 떨어진다. 책의 설명과 그림 혹은 소스코드가 어긋나는 경우가 꽤 많다. 완전히 동떨어진 형태는 아니지만, 설명하는 소스코드나 그림이 다른 페이지에 존재하는 경우가 상당히 많았다. 책을 읽는데 있어서 집중도를 많이 떨어뜨리는 요인이었다.


두번째는 특정 핵심 원리(네트웍의 노드 살피기 기능)의 경우에 소스코드가 아니라 라이브러리를 사용하여 구현이 없는 경우가 있다. 즉, 핵심 원리를 직접 구현해야 하는 경우에는 이 책은 도움이 될 수 없다는 것이다. 


세번째는 주로 마지막 장인 네트웍에서 보였던 현상인데, 공식에 따른 결과가 정확히 연결되지 않는 부분이 꽤 존재한다는 점이다. 대부분 어찌어찌 계산을 해서 맞다는 것을 확인 했지만, 마지막 몇 부분은 도저히 책의 내용이 나오질 않았다. 이 부분은 베타리딩에서 좀 잡아 주었으면 하는 아쉬움이 있었지만, 마지막 부분이고 어려운 내용이어서 힘들지 않았을까 이해를 한다. 그래도 계산 부분은 이해를 돕기 위해 주석을 좀 달아주었으면 하는 아쉬움이 많았다. 


책을 읽기에 아쉬운 점이 꽤 있었음에도 불구하고, 나는 이 책의 설명 방식이 너무나 마음에 든다. 그리고, 알고리즘의 설명에 있어서 소스코드와의 괴리를 가장 잘 매꾸어 읽는이가 알고리즘을 제대로 이해했음을 느끼게 해 준 책으로 많은 이들에게 추천을 하고 싶다. 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo