brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 21. 2024

(책) 그림으로 이해하는 알고리즘-2024-07

2024-07

백엔드 개발자의 시간을 아껴주는 책

서비스 성능을 높여주는 책

백엔드 개발자의 필독서로 추천한다.




길벗 출판사에서 책을  제공받아 작성된 서평입니다.







이 책을 보면


<1> 알고리즘과 프로그램의 차이를 알려준다.

<2> 왜 알고리즘을 알아야 하는지 알려준다.

<3> 기본 개념과 예제를 통해 이해하기 쉽게 알려준다.

<4> 데이터 구조에 대해 알 수 있다 - 배열, 스택, 큐, 해시테이블 등

<5> 이외에도 정렬, 배열 탐색, 그래프, 보안 알고리즘, 클러스터링, 데이터 압축을 알 수 있다.

<6> 개인 정리




<1> 알고리즘과 프로그램의 차이를 알려준다.




1

알고리즘(algorithm)은 계산이나 작업을 수행하는 순서.

요리에서 레시피와 같다.


2

프로그램은 컴퓨터에서 실행하도록 컴퓨터가 이해할 수 있는 언어로 작성한 것이다.

알고리즘은 프로그램을 작성하기 전에 사람이 이해할 수 있도록 작성한 것이다.




<2> 왜 알고리즘을 알아야 하는지 알려준다.


1

점수를 비교하여 나열하는 알고리즘 : 정렬


작은 숫자를 찾아서 교환하는 선택 정렬

컴퓨터가 알 수 있게 해법을 작성하는 알고리즘 설계



2

완전 탐색에 의한 정렬 - 숫자 50개를 정렬하는데 무한히 긴 시간이 필요할 수 있다.

선택 정렬에 의한 정렬 - 빠르다.






<3> 기본 개념과 예제를 통해 이해하기 쉽게 알려준다.


1

데이터 구조란?




2

전화번호부의 데이터 구조를 생각해 보자.

위에서부터 차례로 추가한다.?

가나다 순으로 기록하여 관리한다.?



3

위에서부터 차례로 추가한다.?


박 씨에게 전화를 걸고 싶다면, 위에서부터 하나씩 찾아봐야 한다.

데이터가 어디에 있는지 알 수 없다.

밑에서부터 찾거나 랜덤 하게 찾을 수도 있지만, 순서대로 찾는 방법과 다르지 않다.

전화번호 개수가 적다면 쉽게 찾는다, 500개 이상이면 무척 힘들어진다.



4

가나다 순으로 기록하여 관리한다.?


위에서 차례로 추가하는 법보다 빠르다.

첫 글자를 보고 위치를 대략 짐작할 수 있다.

데이터 추가는?

먼저 적절한 위치를 찾는다.

가나다순이므로 이름 사이에 입력해야 한다.

그러나 빈칸이 없으므로 모든 전화번호를 한 칸씩 뒤로 옮겨 적어야 한다.



5

두 방법의 장단점

데이터가 들어온 순서대로 기록하는 방법은 추가할 때는 편리하지만 검색할 때는 오래 걸린다.

가나다 순은 검색할 때는 편리하지만 추가할 때는 어렵다.

둘 다 장단점이 있다.

어떤 방법이 좋을지는 전화번호부를 어떻게 사용할지에 따라 달라진다.

데이터를 자주 추가하지 않는다면  가나다 순이 좋다.



6

두 방법을 조합하는 방법도 알려준다.




<4> 데이터 구조에 대해 알 수 있다 - 배열, 스택, 큐, 해시테이블 등


1

배열

데이터를 한 열로 연속해서 정렬하는 데이터 구조이다.

리스트와 달리 특정 데이터에 접글 할 때는 편리하지만, 추가하거나 삭제하려면 시간이 오래 걸린다.



2

스택

데이터를 한 열로 저장하지만, 서류를 쌓아 올릴  때처럼 마지막에 추가한 데이터에만 접근할 수 있습니다.



<5> 이외에도 정렬, 배열 탐색, 그래프, 보안 알고리즘, 클러스터링, 데이터 압축을 알 수 있다.




<6> 개인 정리


개발 업무에 필요한 보안 알고리즘의 개념등 필수로 알아야 하는 부분이 있다.

다른 어느 곳에서도 배울 수 없는 개념 정리를 해주는 책이다.

백엔드 개발자의 필독서로 추천한다.




같이 보면 좋을 책

https://brunch.co.kr/@topasvga/3415


감사합니다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari