Culture & Book/내가 읽은 그 책

[IT / 모바일] 그림으로 이해하는 알고리즘 (이시다 모리테루, 미야자키 슈이치) _ 책 리뷰 _ 기획자와 개발자를 위한 알고리즘 첫걸음

쿵야085 2024. 5. 17. 20:12
반응형

[IT / 모바일] 그림으로 이해하는 알고리즘  (이시다 모리테루, 미야자키 슈이치) 

책 리뷰 _ 기획자와 개발자를 위한 알고리즘 첫걸음

 

 

도서명ㅣ그림으로 이해하는 알고리즘
부제ㅣ알고리즘과 자료 구조, 쉽고 재미있게 시작하자!
저자ㅣ이시다 모리테루, 미야자키 슈이치

역자ㅣ이동규
출판사ㅣ길벗
페이지ㅣ264쪽  
출판일ㅣ2024년 04월 30일

 

 

 

 

 

 

저자 소개

저자 : 이시다 모리테루

프리랜서 엔지니어, 2011년 교토대학 대학원 석사 과정 수료. 여러 벤처기업을 거쳐 프리랜서로 독립한 뒤 2016년 엔지니어용 학습 앱 [알고리즘 도감]을 출시. 출시 후 1년 만에 전 세계 50만 다운로드를 달성하고 '애플이 뽑은 2016년 최고의 앱'에 선정되었다.

저자 : 미야자키 슈이치

효고현립대학 정보과학연구과 교수. 1998년 규슈대학 대학원 박사 과정을 수료하고(박사(공학)), 1998년부터 교토대학 정보학연구과 조교, 2002년부터 동 대학 학술정보미디어센터 조교수, 2007년부터 동 대학 부교수를 거쳐 2022년부터 교수로 재직중이다. 알고리즘과 계산 복잡도 이론, 특히 최근에는 근사 알고리즘과 온라인 알고리즘을 연구하고 있다. 주요 저서로는 『그래프 이론 입문 - 기초와 알고리즘』(2015, 모리키타 출판), 『안정적 매칭의 수학과 알고리즘』(2018, 현대수학사), 『알고리즘 이론의 기초』(2019, 모리키타 출판)가 있다.

역자 : 이동규

도쿄에 살면서 라인 재팬의 데이터 엔지니어로 일하고 있다. 컴퓨터학을 석사까지 공부하고 개발자와 데이터 엔지니어로 일한 지 어느덧 10년이 넘었다. 번역하며 공부하는 것이 즐거워 꾸준히 번역 활동을 하고 있다. 지은 책으로는 『함수형 언어 산책』이 있으며, 옮긴 책으로는 『15단계로 배우는 도커와 쿠버네티스』(제이펍, 2020), 『모두를 위한 리눅스 프로그래밍』(제이펍, 2018), 『처음 만나는 파이썬』(제이펍, 2017), 『자바스크립트와 Node.js를 이용한 웹 크롤링 테크닉』(제이펍, 2016), 『모두의 리눅스』(길벗, 2021) 등이 있다.

 

목차

서장 알고리즘의 기본
0-1 알고리즘이란?
0-2 계산 시간 측정 방법

1장 데이터 구조
1-1 데이터 구조란?
1-2 리스트
1-3 배열
1-4 스택
1-5 큐
1-6 해시 테이블
1-7 힙
1-8 이진 탐색 트리

2장 정렬
2-1 정렬이란?
2-2 버블 정렬
2-3 선택 정렬
2-4 삽입 정렬
2-5 힙 정렬
2-6 병합 정렬
2-7 퀵 정렬

3장 배열 탐색
3-1 선형 탐색
3-2 이진 탐색

4장 그래프
4-1 그래프란?
4-2 너비 우선 탐색
4-3 깊이 우선 탐색
4-4 벨먼-포드 알고리즘
4-5 다익스트라 알고리즘
4-6 A*
4-7 크루스칼 알고리즘
4-8 프림 알고리즘
4-9 매칭 알고리즘

5장 보안 알고리즘
5-1 보안 알고리즘
5-2 암호의 기본
5-3 해시 함수
5-4 대칭키 암호 방식
5-5 공개키 암호 방식
5-6 하이브리드 암호 방식
5-7 디피-헬먼 키 교환법
5-8 메시지 인증 코드
5-9 디지털 서명
5-10 디지털 인증서

6장 클러스터링
6-1 클러스터링이란?
6-2 k-평균 알고리즘

7장 데이터 압축
7-1 데이터 압축과 부호화
7-2 런 렝스 부호화
7-3 유일 복호 가능 부호
7-4 순시 부호
7-5 하프만 코드

8장 그 외 알고리즘
8-1 유클리드 호제법
8-2 소수 판별법
8-3 문자열 매칭
8-4 커누스-모리스-프랫 알고리즘
8-5 페이지랭크
8-6 하노이의 탑

찾아보기

 

ㅣ 그림으로 쉽게 배우는 알고리즘

 

알고리즘이란 문제를 해결하기 위한 계산의 실행 순서를 말하며, 컴퓨터 프로그램의 전 단계에 해당합니다. 

 

IT와 관련된 일을 하지 않았더라면 알고리즘이라는 제목의 책을 찾아서 읽었을까라는 생각이 드는데요. 개발자는 아니지만 기획자로 일을 하면서 개발자와 편하게 대화하기 위해서는 개발자만큼은 아니더라도 개발자가 이해하는 세계에 관해서는 어렴풋이라도 알고 있어야 한다는 생각을 하는데요. 기본적인 개발 용어도 공부해 보고, 기본적인 서비스의 플로우 차트등은 알아서 잘 그려서 전달해야 하는 거 같습니다. 

 

그런데 경력이 쌓이고 점점 더 복잡한 서비스들을 하게 되면서 자연스레 알고리즘에 관심을 가지게 되었는데요. 알고리즘을 알게 된다는 것은 문제를 체계적으로 분석하고 해결하는 능력을 기를 수 있다고 하는데요. 굳이 개발을 할 것이 아니더라도 일상적인 문제해결에도 도움이 된다고 합니다. 이런 이유로 이번에 선택해서 읽은 책은 <그림으로 이해하는 알고리즘>이란 책입니다. 

 

 

여러 책 중에서 <그림으로 이해하는 알고리즘>이란 책을 선택하게 된 이유는 제목에 나오듯이 그림이 많기 때문에 컴퓨터비전공자인 저에게는 쉽게 이해하기 좋을 거라고 생각했습니다. 너무 복잡한 용어들과 도형들로 설명된 알고리즘 책보다는 쉬운 그림들로 구성되어 있다면 더 쉽게 잘 읽을 수 있을 거란 기대를 하였고, 실제로 그림들이 잘 되어 있어서 지루하지 않게 읽을 수 있었던 거 같습니다. 또 책의 두께가 많이 두껍지 않다는 것입니다. 아무래도 처음으로 읽게 되는 알고리즘 책이다 보니 어렵지 않게 개념정도만 알면 되겠다고 생각했었는데요. 이번 책은 260페이지 정도의 분량에 크지 않은 사이즈라서 편하게 들고 다니면서 볼 수 있게 되어 있어서 좋았답니다. 알고리즘에 관해서 공부해보고 싶은데, 처음부터 너무 어려운 책을 보고 싶지 않은 분들이라면 이 책 <그림으로 이해하는 알고리즘>을 추천해보고 싶답니다. 

 

 

책의 구성은 기본적인 개념부터 점점 더 복잡한 주제로 발전해 나가는 방식으로 구성되어 있어서 입문자들이 실력을 키우기 좋게 되어 있는데요. 또한 다양한 주제를 포괄적으로 다루고 있어서 실무를 하고 있는 분들이 보더라도 바로 적용할 수 있는 유용한 알고리즘 지식을 얻을 수 있을 거 같습니다. 특히 각장마다 나오는 그림을 통해 직관적으로 알고리즘을 이해할 수 있다는 것도 너무 좋은 장점이라고 생각이 되었답니다. 

 

저도 이번 책을 보면서 알고리즘이란 무엇인지 전혀 모르고 있는 상태에서 알고리즘이란 무엇인지에 관해서 정의부터 분명하게 배우고 추상적이지만 알고리즘의 원리들을 각 장을 읽어나가며 알 수 있었답니다. 분명히 개발자라면 더 깊이 있는 지식을 요구하는 알고리즘 책을 필요로 할 수도 있지만, 알고리즘의 추상적인 개념과 입문자로서의 지식이 필요한 분들에게는 너무 좋은 책이라는 생각이 들었습니다. 

 

 

저는 비개발자인 기획자로서 기획자도 알고리즘을 배우면 좋겠다는 생각을 했는데요. 기획자는 제품과 서비스의 전략을 세우고, 사용자의 경험을 최적화하며 프로젝트를 성공적으로 이끌어야 하는데요. 알고리즘을 알고 배운다는 것은 기획자가 이러한 역할을 더 효과적으로 수행하는데 큰 도움이 될 거 같습니다. 우선 기획자가 알고리즘을 안다는 것은 개발팀과 원활하게 소통하고, 현실저인 계획을 세우기 위한 기술적인 지식을 갖추고 있다고 생각이 되는데요. 알고리즘을 알고 있기에 개발팀이 특정한 개발방식을 선택했다면 왜 그 방법을 선택했는지와 그 방식에 따른 문제 발생 소지도 이해할 수 있답니다. 

 

제일 중요한 이유는 현대 비즈니스가 데이터 중심으로 움직이게 되는데요. 알고리즘을 안다는 것은 데이터를 효율적으로 분석하고, 그 결과를 바탕으로 전략을 세울 수 있다는 것인데요. 특히 최근에 많이 쓰이는 기술적에 하나인 사용자 맞춤형 서비스와 인고지능, 머신러닝 등도 알고리즘과 관련이 되어 있기 때문인데요. 알고리즘에 대한 이해는 분명히 기획자의 역할을 더욱더 효과적이고 전략적으로 수행하는데 중요한 자산이 될 거 같습니다. 이런 이유로 혹시 비개발자라도 <그림으로 이해하는 알고리즘>은 읽어보면 좋을 거 같습니다. 

 

출판사로부터 책을 제공받아 주관적으로 작성한 글입니다.

 

 
그림으로 이해하는 알고리즘
알고리즘은 같은 목적을 달성하더라도 서로 다르다. 어떤 알고리즘은 실행 시간이 짧지만 메모리를 많이 사용하고, 어떤 알고리즘은 실행 시간이 길지만 메모리를 적게 사용한다. 다양한 알고리즘을 안다는 건 프로그램을 만들 때 선택지가 늘어난다는 의미다. 효율적인 알고리즘을 실행하기 위해서는 그에 맞는 적절한 자료 구조를 사용해야 한다. 즉, 상황에 맞게 최적의 알고리즘과 자료구조를 선택할 수 있는 능력은 좋은 프로그래머가 되기 위한 조건 중 하나다. 이 책은 ‘알고리즘 도감’이라는 애플리케이션을 기반으로 작성했다. 앱은 애니메이션을 사용해 알고리즘의 동작을 설명하는데, 이 책은 그림을 충분히 사용해 동작하는 앱만큼 알기 쉽게 만들었다. 또한 앱에는 없는 ‘알고리즘이란 무엇인가’, ‘알고리즘의 계산 시간’, ‘그래프의 기초’ 같은, 알고리즘 학습 전 알아야 하는 기본 내용을 새롭게 작성했다. 개정2판에는 1판과 앱에서 다루지 않은 ‘데이터 압축’을 추가하고 ‘최소 신장트리’, ‘매칭’ 같은 그래프 문제와 ‘문자열 매칭’을 새로 추가했다.
저자
이시다 모리테루, 미야자키 슈이치
출판
길벗
출판일
2024.04.30

 

 

[넷플릭스/유튜브] 넷플릭스 가격 부담 없이 겜스고에서 저렴하게 이용하는 팁

[넷플릭스/유튜브] 넷플릭스 가격 부담 없이 겜스고에서 저렴하게 이용하는 팁 OTT 서비스를 처음 접한 것이 넷플릭스였던거 같은데요. 넷플릭스 이외에도 국내에서 만날 수 있는 OTT 서비스들이

ilsang2.tistory.com

 

반응형