우선, 이 책을 읽으시는 분들에게 말씀드리고 싶은 것은 이 책을 대하기 전에 C언어의 포인터 개념과 구조체, 배열 개념을 꼭 숙지하고 보시라는 것이다. 또한 약간의 수학적 개념들도 알고 있으면 책을 이해하는 데 도움이 된다고 생각한다.
현재 나는 JAVA 언어(매니지드 언어)에 익숙해진지라 리스트 개념이나 스택, 큐를 직접 만들어 사용하진 않지만 원리를 이해하는 것이 얼마나 깊이 있고, 때로는 자료구조를 응용해야 하는 경우가 있는데 그럴 때 필히 필요한 책이라고 생각해도 과언이 아닌 것 같다.
설사, 언어가 다르더라고 핵심 개념이나 심지어 코딩 테스트에서도 접할 수 있는 개념들이 책에 다 녹아있다. 현업에서 개발 시간에 쫓기다 보면, ‘이걸 왜 알아야 하지?’ ‘왜 해야 하지?’라는 생각을 못 하게 되는데, 시간이 지날수록 설계를 잘하는 것이 유지 보수나 확장업무에서도 큰 시너지를 가져온다는 것을 알기때문에 이 책은 그런 의미에서 정말 값진 책이다.
현업에서 쓰는 메시 지큐 (RabbitMQ, kafka)의 방식도 스며들듯 이해할 수 있었고, C언어 쪽은 메모리 관리를 개발자가 컨트롤하기에 좀 더 깊이 파보고 싶은 생각도 들게 만들었다. 대학교 1학년 C언어라는 과목을 처음 배웠을 때를 생각하며, C언어 기본서의 문법들을 되새기며, 한 챕터 한 챕터를 넘어가느라 시간이 조금 걸리긴 했지만 역시나 기본 중의 기본이 가장 중요하다는 것을 다시 한번 새삼 깨닫게 되는 시간이었다.