2024-07
백엔드 개발자의 시간을 아껴주는 책
서비스 성능을 높여주는 책
백엔드 개발자의 필독서로 추천한다.
길벗 출판사에서 책을 제공받아 작성된 서평입니다.
이 책을 보면
1
알고리즘(algorithm)은 계산이나 작업을 수행하는 순서.
요리에서 레시피와 같다.
2
프로그램은 컴퓨터에서 실행하도록 컴퓨터가 이해할 수 있는 언어로 작성한 것이다.
알고리즘은 프로그램을 작성하기 전에 사람이 이해할 수 있도록 작성한 것이다.
1
점수를 비교하여 나열하는 알고리즘 : 정렬
작은 숫자를 찾아서 교환하는 선택 정렬
컴퓨터가 알 수 있게 해법을 작성하는 알고리즘 설계
2
완전 탐색에 의한 정렬 - 숫자 50개를 정렬하는데 무한히 긴 시간이 필요할 수 있다.
선택 정렬에 의한 정렬 - 빠르다.
1
데이터 구조란?
2
전화번호부의 데이터 구조를 생각해 보자.
위에서부터 차례로 추가한다.?
가나다 순으로 기록하여 관리한다.?
3
위에서부터 차례로 추가한다.?
박 씨에게 전화를 걸고 싶다면, 위에서부터 하나씩 찾아봐야 한다.
데이터가 어디에 있는지 알 수 없다.
밑에서부터 찾거나 랜덤 하게 찾을 수도 있지만, 순서대로 찾는 방법과 다르지 않다.
전화번호 개수가 적다면 쉽게 찾는다, 500개 이상이면 무척 힘들어진다.
4
가나다 순으로 기록하여 관리한다.?
위에서 차례로 추가하는 법보다 빠르다.
첫 글자를 보고 위치를 대략 짐작할 수 있다.
데이터 추가는?
먼저 적절한 위치를 찾는다.
가나다순이므로 이름 사이에 입력해야 한다.
그러나 빈칸이 없으므로 모든 전화번호를 한 칸씩 뒤로 옮겨 적어야 한다.
5
두 방법의 장단점
데이터가 들어온 순서대로 기록하는 방법은 추가할 때는 편리하지만 검색할 때는 오래 걸린다.
가나다 순은 검색할 때는 편리하지만 추가할 때는 어렵다.
둘 다 장단점이 있다.
어떤 방법이 좋을지는 전화번호부를 어떻게 사용할지에 따라 달라진다.
데이터를 자주 추가하지 않는다면 가나다 순이 좋다.
6
두 방법을 조합하는 방법도 알려준다.
1
배열
데이터를 한 열로 연속해서 정렬하는 데이터 구조이다.
리스트와 달리 특정 데이터에 접글 할 때는 편리하지만, 추가하거나 삭제하려면 시간이 오래 걸린다.
2
스택
데이터를 한 열로 저장하지만, 서류를 쌓아 올릴 때처럼 마지막에 추가한 데이터에만 접근할 수 있습니다.
개발 업무에 필요한 보안 알고리즘의 개념등 필수로 알아야 하는 부분이 있다.
다른 어느 곳에서도 배울 수 없는 개념 정리를 해주는 책이다.
백엔드 개발자의 필독서로 추천한다.
https://brunch.co.kr/@topasvga/3415
감사합니다.