그림으로 이해하는 알고리즘 - 알고리즘과 자료구조, 쉽고 재미있게 시작하자! 그림으로 이해하는 시리즈
이시다 모리테루.미야자키 슈이치 지음, 이동규 옮김 / 길벗 / 2024년 4월
평점 :
장바구니담기


어쩌다 한 번 검색했더니 이후로 내내 그것과 관련된 정보가 노출됩니다. 유튜브도 그렇고 SNS도 그렇고 내 행동을 어떻게 읽었는지 계속해서 관심사 위주로 컨텐츠를 제공해 줍니다.

 

우리는 모두 알고리즘의 노예입니다. 원하든 원치않든 우리의 검색패턴은 이미 읽히고 있고, 하루가 되지 않아 어느새 우리는 알고리즘의 고리 안에 갇혀 버립니다. 도대체 무슨 원리로 이런 시스템이 가능한 걸까요?

 

길벗에서 출간된 신간, 그림으로 이해하는 알고리즘은 하루 종일 우리를 감시하는 알고리즘의 원리를 낱낱이 파헤쳐주는 공학 기술 서적입니다. 그 복잡한 걸 내가 이해할 수 있을지 걱정이 되신다고요? 걱정하실 것 없습니다. 책의 제목에서 보여지듯 이 책은 모든 내용을 그림으로 이해시켜 줍니다.

 

직관적으로 생각해 보면 알고리즘은 분명 서열대로 배열하는 것과 관련이 있을 것 같습니다. 내가 한 번 검색한 내용과 연결된 것을 최상단으로 보내는 순서의 조작이 있을 것이고, 더 어려운 것은 내가 검색한 내용과 더 깊이 연결된 것들이 어떤 것인지를 분류하는 작업일 것입니다.

 

그런데 그걸 어떻게 설명하냐고요? 이 책은 합니다. 그것도 그림으로 보여주면서 합니다. 먼저 이 책은 데이터 구조부터 설명해 갑니다. 쉽게 엑셀을 생각하시면 각 셀에 들어가는 정보값이 있을 것입니다. 전화번호부를 생각하면 데이터는 이름과 전화번호 두가지가 있을 것입니다. 이것들을 누구를 기준으로 어떻게 배열하느냐에 따라 최상단에 놓일 데이터와 뒤로 밀릴 데이터가 나뉘어 집니다. 이름을 가나다 순으로 배열하느냐, 전화번호를 0부터 수열로 배열하느냐에 따라 상단에 노출되는 정보는 달라질 것입니다.

 

이 책은 또 힙이라는 그래프의 트리 구조를 설명합니다. 이것은 그림을 통해 직관적으로 이해되기 때문에 그저 술술 읽으며 넘어가시면 됩니다. 지금까지 소개된 것은 데이터의 수열 정렬과 그래프의 트리 구조 같은 것입니다. 이걸로 알고리즘을 이해할 수 있을까요? 이 책은 이것들을 사용해 가장 기본부터 알고리즘을 설명해 갑니다.

 

그래프의 트리 구조에서 최간 경로를 찾는 벨먼 포드 알고리즘과 특정 지점에 도달하기 위해 어떤 경로를 우선해서 탐색하는 가 등 다양한 방식으로 정렬의 우선순위를 정할 수 있습니다. 크루스칼 알고리즘, 프림 알고리즘 등 최소 신장 트리를 구하는 방법들이 계속해서 제시됩니다. 어떻게 보면 수열과 극한 같기도 하고 어떻게 보면 집합과 명제 같기도 한 내용들을 차근차근 살펴보다 보면 알고리즘이 어떤 식으로 데이터를 분류하고 우선순위를 정하는 가를 수학적으로 파악할 수 있게 됩니다.

 

책의 후반부에는 데이터를 찾는 알고리즘을 넘어 보안의 영역에서 알고리즘이 어떻게 사용되는가까지 다뤄 갑니다. 조금 어렵지만 포기하지 않고 읽어나간다면 알고리즘이 무엇인지에 대해 조금 더 선명한 시각을 가질 수 있을 것입니다.

 

효율적인 프로그래밍을 위해선 알고리즘이 어떻게 작동하는지를 명확히 이해해야 합니다. 이 책이 코딩의 벽에 가로막힌 여러분의 머릿 속을 차곡차곡 정리해주는 역할을 해주리라 기대합니다.

 

좀더 직관적인 프로그래머가 되고자 하는 분들께 이 책, 그림으로 이해하는 알고리즘을 추천해 드립니다. 이 책을 통해 가장 효율적인 프로세스가 어떤 것인지 고민하고 이해하며 좀더 좋은 코딩을 해갑시다. 읽는 것만으로도 여러분에게 큰 힘이 되어주리라 확신합니다. 이 책을 꼭 읽어보세요.

 

 

본 리뷰는 출판사로부터 책을 제공받아 주관적으로 작성하였습니다.


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