본문 바로가기

독서/IT

[IT 5분 잡학사전] 노개북 챌린지 7일차 TIL

2023-01-19 TIL 에피소드 22~25

  • 세줄 요약
코드를 효율적으로 작성하기 위한 자료구조와 선형/이진 검색 알고리즘, 휘발성/비휘발성 메모리, 배열의 원리, 작업 단계를 측정하여 작업시간을 측정하는 시간복잡도, 알고리즘으로 작업을 완료할 때까지 걸리는 절차 수를 표현하는 Big-O 표기법 등을 알 수 있다.

 

 

  • 책에서 기억하고 싶은 내용
자료구조와 알고리즘은 코드를 효율적으로 만들기 위한 것이다(22. 자료구조와 알고리즘은 필수라고?)

알고리즘이란, 컴퓨터에게 내리는 지시 사항을 나열한 것
- 패스파인더(pathfinder) 알고리즘 : 지도 앱에서 목적지까지 최대한 빨리 가는 방법을 알려주는 기능을 구현할 때 사용
- 압축(compression) 알고리즘 : 이미지를 최대한 덜 손상하면서도 용량을 효율적으로 줄일 수 있는 알고리즘(PNG, JPG)

선형 검색 알고리즘(25. 검색 알고리즘이 뭐죠?)
- 배열을 앞에서부터 하나씩 검색하고, 그래서 배열 크기가 커지면 검색 시간도 정비례로 커짐

이진 검색 알고리즘
- 거대한 배열을 다룰 때 효과적
- 이진 검색 알고리즘을 사용하고 싶다면 배열은 항상 정렬되어 있어야 한다.(정렬이 끝난 배열)
- 중앙값을 기준으로 왼쪽, 오른쪽 점프 점프

자료구조는 데이터를 효율적으로 보관하고 찾기 위한 것이다
- 자료구조의 자료는 데이터를 말함
- 데이터를 보기 좋게, 찾기 좋게 보관
- 자료구조에 따라 프로그램 속도가 달라짐
- 자료구조의 방식은 프로그램의 목적에 맞게 달라짐

자료구조인 배열과 시간 복잡도(23. 배열이 뭐죠?)
- 시간 복잡도는 프로그램의 작업 속도가 얼마나 빠른지 측정하는 방법
- 속도를 측정하는 방법은 작업이 얼마나 많은 단계를 거치는지를 측정한다

컴퓨터의 기억 공간인 메모리
- 비휘발성 메모리 : 컴퓨터를 껐다가 켜도 데이터가 남아있음, 컴퓨터의 하드 드라이브
- 휘발성 메모리 : 컴퓨터를 끄면 램에 있는 데이터는 모두 사라짐, 램(RAM)
- 램
  - 프로그램에 필요한 데이터가 저장됨, 프로그램의 변수, 함수 등
  - 램이 있어서 프로그램을 실행할 수 있는 것
  - 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장함, 속도가 안정되고 빠름 → 주소가 적힌 박스가 많이 있는 창고와 비슷(배열)

배열의 원리
- 배열은 램에 줄줄이 이어진 형태로 공간을 차지하고 있다.
- 컴퓨터는 배열의 시작 주소와 길이를 알고 있다. 그래서 배열은 읽는 속도가 아주 빠르다.(배열의 검색은 읽기보다 시간이 많이 필요하다)
- 배열은 맨 앞부터 차곡차곡 채워져 있어야 한다. 그래서 배열은 삽입과 삭제가 느리다.

Big-O(빅오) 표기법은 알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N을 이용해서 O(N), O(log N)와 같이 표현하는 것이다(24. 알고리즘의 속도는 어떻게 표현할까?)
- 사용하는 이유 : 설명을 간단하게 할 수 있고 알고리즘 분석을 빠르게 함
- 상수 시간이란 이미 실행 횟수가 고정으로 정해진 것을 말함
- 빅오는 실행 단계에 영향을 주는 요소만 고려함
- 배열의 길이를 N이라고 하면 검색 횟수는 최대 N이 되는 것
- 이차 시간은 중첩 반복문이 있을 때 발생함 : O(N*N)

 

 

  • 오늘 읽은 소감은?
평소에 자료구조와 알고리즘은 단어만 들어도 거부감이 들었는데 니꼴라스쌤이 이해하기 쉽고 재밌게 설명해주셔서 술술 읽혔다! 

학생일 때 수학 좀 열심히 할 걸. 학생일 때의 내가 지금의 나를 본다면 정말 열심히 공부했을 것이다. 수학을 왜 배우는지 이유를 모르니 머리에 잘 들어오지 않았다. 주입식 교육방식은 정말 바뀌어야 한다. (의식의 흐름대로 쓰는 중^^ 이틀동안 7시간 잠) 

 

 

  • 떠오르는 생각을 가볍게 적어보세요
나도 이제 컴공과 대화에 낄 수 있는 것인가!

 

 

  • 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요
램은 휘발성 메모리로, 컴퓨터를 끄면 저장된 데이터가 모두 사라진다고 한다. 이런 램이 프로그램을 어떻게 실행할 수가 있지? 컴퓨터 끄면 메모리가 사라졌다가 켜면 다시 메모리에 프로그램의 변수나 함수들이 다시 저장되는 것인가?