도서 리뷰 – 알고리즘 산책: 수학에서 제네릭 프로그래밍까지

알고리즘 산책 수학에서 제네릭 프로그래밍까지에 대한 이미지 검색결과

길벗 출판사 도서 소개

프로그래밍은 추상화(abstraction)의 연속이다. 데이터를 추상화하고 흐름을 추상화하고 모듈과 빌딩블록을 추상화하며 심지어는 서비스와 어플리케이션도 추상화한다.

헌데 추상화라는 단어만큼 추상적인 것도 없다. 누군가는 추상화라는 단어를 듣고 타입 추상화를 떠올릴 것이며 누군가는 자료구조나 객체를 떠올릴 것이다. 컴퓨터 과학에서 누군가가 추상화라는 단어를 사용한다면 이 단어가 다양한 계층에서 서로 다른 의미로 쓰인다는 것을 미리 알고 있어야 이해에 도움이 될 것이다.

알고리즘 산책에서 다루는 추상화는 크게 두가지이다. 수학적 추상화와 제네릭 프로그래밍이다.  이 책은 제네릭 프로그래밍이 어떻게 데이터 타입을 추상화 하는지에 대하여 여러 수학적 사례를 들어 설명한다. 이를테면, 고대 이집트인들의 곱셈하는 방식으로부터 곱셈 알고리즘을 도출한 후 이를 점진적으로 개선한다. 이후 이를 일반화하여 덧셈 연산으로부터 닫혀있는 타입에서 동작하는 템플릿으로 알고리즘을 재구현한다. 이 과정은 매우 흥미롭다. 알고리즘을 개선하는 시도와 이를 어떻게 일반화하는지를 보여주면서 제네릭 프로그래밍의 목적이 무엇인지 독자에게 자연스럽게 알려준다.

꽤 많은 수식과 증명이 나온다. 때문에 수학과 친하지 않다면 쉽게 읽히는 책은 아니다. 허나 저자의 친절한 설명과 함께 코드 구현이 수반하기 때문에 고교 수학 과정을 성실히 이수하였다면 이해하는데 큰 무리는 없을 것이다. 틈틈이 수학과 수학자의 역사를 읽을거리로 제공하는 것도 이 책의 가치를 높인다.

c++처럼 type define이 자유로운 강타입 언어에서 제네릭 프로그래밍이 갖는 의미는 매우 크다. 문제 해결하는 방법을 일반화하고, 이 일반화된 문제해결 방법이 어떤 타입에 제한되는지(또는 어떤 타입에 적용 가능한지) 정의하는 방법이 어떻게 수학의 문제해결 방식과 맞닿아 있는지에 대한 설명이 탁월하다. 누군가가 제네릭 프로그래밍을 주제로 책을 추천해 달라 한다면 알고리즘 산책은 단연 선순위이다.

주개발 언어가 c++ 가 아닌 프로그래머라면 type에 조건을 주는 concepts 부분이 잘 이해가 가지 않을 수도 있겠다. 이번 기회에 이 책을 읽으면서 인식의 지평을 넓히는 계기가 되었으면 한다.

concepts 소개

마지막으로 이런 훌륭한 책을 리뷰할 수 있도록 출간해 주신 길벗 출판사에게 감사드린다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중