안녕하세요.
이번에 감사하게도 두 번째로 레뷰(REVU) 캠페인에 선정되어서 독서후기를 올리게 되었습니다. 캠페인 미션이다 보니 책의 장점을 좀 더 설명할 수 있습니다. 양해 부탁드립니다.
그러나 책을 읽어 보고 적는 것이며, 구매하려는 분들께 참고가 되도록 적어 보았습니다.
1. 책 제목과 표지
영어를 잘하시는 분이라면 그로킹(groking) 의미를 잘 알겠지만, 저는 그로킹의 의미를 몰라서 찾아보았습니다.
grok를 영어사전에서 찾아보면 '깊이 이해하다, 본질적으로 공감하다'라고 나옵니다. 제목을 한국어로 해본다면 '알고리즘 완벽 이해하기' 아니면 '완벽히 이해하는 알고리즘' 되지 않을까 합니다.

솔직히, 개정판 이전 내용을 보지 못해서 그로킹 알고리즘 책이 유명한지는 몰랐지만, 아마존 프로그래밍 언어 분야 베스트셀러라고 합니다. 전 세계 10만 독자 ^^, 원서로 보실 분은 "Grokking Algorithms, Second Edition"로 검색하면 됩니다.
2. 출판 정보
국내 개정판 1쇄 발행은 2025년 1월 2일로 신상 책입니다.

3. 목차
크게 13장 챕터로 구성되어 있으며, 컴퓨터 관련 자격증이나 전공 수업을 듣다 보면 한 번쯤 들어보았을 정렬과 탐색 알고리즘의 주제입니다. AI, 머신러닝이 대세가 되다 보니 KNN 내용도 들어 있습니다.
1. 알고리즘의 소개
2. 선택 정렬
3. 재귀
4. 퀵 정렬
5. 해시 테이블
6. 너비 우선 탐색
7. 트리
8. 균형 트리
9. 다익스트라 알고리즘
10. 탐욕 알고리즘
11. 동적 프로그래밍
12. KNN 알고리즘
13. 더 공부해야 할 것

4. 내용 확인
알고리즘은 수학이고 어려운 과목이라는 선입견이 있는 사람에게는 목차를 보고 "어렵겠다." 생각할 수 있습니다. 그러나 아래 내용에서 이야기하겠지만, 많은 페이지마다 일러스트를 포함해서 이해하기 쉽게 구성해 놓았습니다.
학교 수업처럼 복잡한 수식과 프로그래밍 코드 중심으로 설명하는 것이 아니어서 프로그래밍 지식이 없어도 읽을 수 있습니다. 그러나 프로그래밍 지식이 있다면 나오는 코드는 쉽게 이해할 수 있습니다.
책에서 요구하는 수학 지식은 p21에 나와 있습니다. 알고 있어야 할 수학 지식은 간단하게 함수(x 변수에 5를 넣어 값을 구하는 것) 정도 알고 있으면 됩니다. 그리고 프로그래밍은 책에서 기본적으로 파이썬을 기본으로 하고 있으나, 자바 스크립트 언어를 알고 있어도 가능하다고 합니다.
개인적으로는 어떤 프로그래밍 언어라도 해봤다면 코드 이해하는 것은 문제없어 보이며, 배포한 github 사이트에 들어가 보면 여러 종류(c, kotlin, javascript, php, dart 등)의 언어로 알고리즘이 구현되어 있습니다.

p30 - "빅오 표기법"
책 내용이 "알고리즘"이다 보니 얼마나 빠른지 표시하는 방법(빅오 표기법)과 처리시간을 조금 강조하고 있습니다. 쉽게 이해할 수 있게 예로, 네모칸 그리기를 통해서 연산 횟수를 줄이는 알고리즘 시간에 대해 설명합니다.

p42 - 알고리즘 학습을 위해서 컴퓨터 구조 지식이 필요한 부분도 쉽게 이해할 수 있도록 그림을 추가해서 설명합니다.

p59 - 예제 코드
앞에서 설명한 이론을 바탕으로 각 장에 맞게 알고리즘 구현하는 코드를 함수로 나눠서 설명합니다.

p61 - 연습문제
한 장(Chapter)을 마무리하면서 내용을 잘 이해했는지에 대한 질문이며, 부족한 부분을 추가적으로 채워주는 내용입니다. 정답은 뒤쪽 연습문제 풀이 페이지에서 확인할 수 있습니다.

위와 같은 구성으로 각 장은 그림과 함께 각 알고리즘 이론이 쉽게 설명합니다.
p306 - "오렌지와 자몽 분류하기"
KNN 알고리즘이 새로운 나온 알고리즘은 아니지만, 머신 러닝과 데이터 과학이 크게 발전하고 컴퓨터 성능이 좋아지면서 KNN 알고리즘이 주목받게 되었고 최신 트렌드에 맞게 설명하고 있습니다.

13장 - "더 공부해야 할 것"
앞에서 다루지 않았던 선형 회귀 알고리즘을 포함한 10가지 알고리즘을 추가로 간단하게 소개하고 있습니다. 조금 어려운 내용이긴 하나 이런 것도 있구나, 알고리즘 추가 지식으로 읽기 좋을 듯합니다. 깊이 공부해 볼 수 있는 좋은 주제라고 생각됩니다.

5. 실습해 보기
책에서는 실제로 파이썬을 설치해서 소스코드 하나하나를 설명해 주지는 않습니다. 그러나 책에서 알려주는 github 소스코드 사이트에 들어가면 온라인상에서 파이썬 코드를 실행해 볼 수 있는 https://pythontutor.com/ 사이트를 확인해 보라고 합니다.
제공 파이썬 코드를 복사해서 pythontutor 사이트에 붙여 넣기 후 실행하면 데이터가 어떻게 변화하는 시각적으로 보여줍니다.
1. 한빛미디어 자료실 (현재 시점으로 자료실에 올라와 있지 않음)
2. github
https://github.com/egonSchiele/grokking_algorithms/

Selection Sort 실행 결과

6. 전반적인 후기
알고리즘 책이라 읽는 데 오래 걸릴 거라고 생각했는데 재미있는 그림과 개념 설명을 하고 있어서 빠르게 읽을 수 있었습니다. 컴퓨터 프로그래밍에 조금 관심이 있거나 지식이 있다면 알고리즘에 대해서 쉽게 읽을 수 있습니다.
빅오 표기법을 시작으로 재귀, 트리 등 어려운 주제를 초보자에게 이해시키기 위해서 많은 일러스트와 예시를 이용하고 있습니다. 자료구조와 알고리즘은 효율적인 프로그램을 만들기 위한 중요한 요소이기에 직접 구현할 수 있는 능력이 필수이지만 이해하지 못한 상태에서는 시작도 하지 못할 것입니다. 이 부분을 잘 잡아서 초보자를 위한 입문 책으로 만든 것이라 생각됩니다.
완성된 Python 소스코드를 책 내용에서는 보여주지 않지만, 공개한 github 사이트 링크를 참고하면 Python 이외의 다양한 언어로 된 알고리즘 소스코드를 확인할 수 있습니다.
마지막으로, 알고리즘 코딩 실습 위주의 내용을 원하시는 분이라면 이 책과 맞지 않을 수 있습니다. 코드 중심의 설명이라고 하기보다는 알고리즘 이해 중심의 책이며, 개념을 익히고 "코드 구현을 이렇게 하면 되는구나" 하고 재미있게 읽을 수 있는 알고리즘 입문용 책이라고 생각됩니다.
감사합니다.
'Book Report' 카테고리의 다른 글
생각이 글이 되기까지, 10대들을 위한 글쓰기 수업, 독서후기 (4) | 2025.02.19 |
---|---|
독서의 기록, 독서후기, 40대 대기업 부장의 내 인생을 바꾸는 작은 기적 (3) | 2025.02.09 |
블로그 글쓰기는 어떻게 삶의 무기가 되는가 [독서후기] (6) | 2025.01.22 |
[독서후기] 현업 시니어와 함께 하는 임베디드 소프트웨어 베이직 with 라즈베리파이 (4) | 2025.01.19 |
[독서후기] FREE WAY 프리웨이 (4) | 2025.01.05 |