대학교 학부 컴공 전공 2학년 때 배웠던 자료구조, 3학년 때 배웠던 알고리즘. 배운만큼 소화를 시키지 못하여 피상적으로이해한 후에 과제 때 구현하고 시험보고 잊어버렸던... 어려운 과목이었습니다.

 

그런데 직장인이 되어 소스코드를 분석하는 업무를 하다보니 C로 된 프로그램 중에 자료구조를 사용한 소스코드들이 꽤 있었습니다. 검색 시에도 효율적인 정렬, 검색 알고리즘을 적용한 소스코드들이 많았습니다. 실행 속도를 높이기 위하여, 혹은 저장공간의 효율성과 문제 해결을 위한 목적 등 다양한 용도로 자료구조와 알고리즘을 사용하고 있었습니다.

 

 

저는 실제 업무간에 쓰일 법한 자료구조/알고리즘 소스코드와 그 원리에 익숙해지기 위해서 이 책을 관심있게 읽었습니다. 업무간에 활용되는 목적뿐만 아니라 전산직렬 공무원 시험에도 과목으로 포함되어 있고, SW 회사에서도 입사 면접에서는 자료구조/알고리즘 부분을 많이 물어보기 때문에 자료구조와 알고리즘은 IT 분야에서 기본적인 소양으로 꼭 이해하고 있어야 할 것입니다. 

 

이 책은 제목처럼 C언어로 짜여진 소스코드로 자료구조, 알고리즘을 설명하고 있습니다. 전공자여서 용어들이 익숙해서 쉽게 읽히는 건지는 몰라도 지루하지 않게 설명이 되어 있습니다. 

앞서 자료구조와 알고리즘의 개념을 설명하고 C언어 포인터 등을 통해 메모리를 다루는 방법을 기본개념으로 설명하고 그 이후에 세부적인 자료구조 종류와 알고리즘 종류를 다루고 있습니다.

 

이 책에서는 자료구조를 왜 공부해야 하냐는 질문에 "자료구조에 따라 애플리케이션의 성능이 크게 달라질 수 있기 때문에 자료구조 지식을 갖고 있으면 적절한 자료구조를 선택할 수 있다"고 하면서 "자료구조는 데이터를 효율적으로 사용할 수 있게 해주는 핵심 부품이므로 자료구조를 모르면 알고리즘을 공부하기 어렵다"고 하였습니다.

 

알고리즘을 왜 공부해야 하냐는 질문에는 "자원을 효율적으로 활용하고 고성능의 코드를 작성하여 메모리와 프로세싱 파워를 이해한 상태로 문제를 효과적으로 해결할 수 있기 때문이다" 라고 설명하였습니다.

 

단원별로 연습문제도 수록되어 있는데 아쉽게도 해답은 별도로 제공하지 않습니다. 

 

이 책을 보니 옛날 수업을 듣던 생각도 났습니다. 대학생이라면 수업의 복습 겸 자습 서브교재로 한번 읽어보면 이해가 더 쉬울 책이라고 생각이 듭니다. 

 

" 이 책은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다 "