Post

TIL - day 6

Day 6

오늘 읽은 범위

에피소드 21 ~ 에피소드 25

책에서 기억하고 싶은 내용을 써보세요

에피소드 21 - 서버리스는 서버가 없다는 뜻?

  • 서버리스는 서버 없음이 아니라 우리가 직접 관리 하지 않는 서버를 의미해 (p.123)

  • 서버리스에선 함수들이 잠을 자고 있어. 그리고 그 함수가 필요할 때 깨워서 요청한 작업을 수행해. 그러고 나서 함수는 다시 잠이 들지. 그러면 전력도 낭비하지 않을 수 있고, 하드웨어를 더 효율적으로 쓸 수 있어. (p125)

  • 서버리스 단점

    • 서버리스의 함수는 잠에서 깰 때 시간이 필요하다 (콜드 스타트)
    • 서버 제공자에게 지나치게 의존한다.

에피소드 22 - 자료구조와 알고리즘은 필수라고?

알고리즘은 컴퓨터에게 내리는 지시사항을 나열 한 것 (p.133)

  • 목적지까지 최대한 빨리 가는 방법을 알려주는 기능을 구현할 때는 패스파인더 알고리즘을 사용 (p.134)

  • 이미지를 최대한 덜 손상하면서 용량을 효율적으로 줄이는 압축 알고리즘

  • 자료 구조의 종류

    • 데이터를 작은 것부터 큰 순서로 정리하는 자료구조 (데이터 크기 기준)
    • 이름표를 붙여서 정리하는 자료구조 (검색을 위한 인덱스 기준)
    • 데이터가 들어오는 순서로 정리하는 자료구조 (생성 시간 기준)


에피소드 23 - 배열이 뭐죠?

  • 시간 복잡도는 프로그램의 작업 속도가 얼마나 빠른지를 측정하는 방법 (p.137)

  • 시간 복잡도는 실제 시간을 재지 않고 작업이 얼마나 많은 단계를 거치는지를 측정해 (p.137)

  • 비 휘발성 메모리 : 컴퓨터 전원을 끄더라도 저장한 값이 사라지지 않음, Eg. 하드 드라이브

  • 휘발성 메모리 : 컴퓨터 전원을 끄면 저장한 값이 사라짐, Eg. 램(RAM)

램은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장, 데이터에 접근하는 속도가 매우 안정되고 빠름 => 각각의 데이터 보관 박스에 주소가 있기 때문에 가능

배열은 맨 앞부터 차곡차곡 채워져있어야 한다. 그래서 배열은 삽입과 삭제가 느리다 (p.144)


에피소드 24 - 알고리즘의 속도는 어떻게 표현할까?

  • 알고리즘으로 작업을 완료할때까지 걸리는 절차 수 N을 이용해서 O(N), O(log N)과 같이 표현을 하는데 이것을 빅오(Big-O) 표기법이라고 함 (p.145)

  • 선형 알고리즘

    • 배열을 앞에서부터 하나씩 검색하고, 그래서 배열 크기가 커지면 검색 시간도 정비례로 커짐
    • 배열의 길이를 N이라고 하면 검색 횟수는 최대 N이 됨
  • 시간 복잡도를 표현하는 Big-O 표기법

    • 단지 설명을 간단하게 만들어줄 뿐만 아니라 알고리즘 분석을 빠르게 할 수 있게 해줌
    • 배열의 길이가 길어지면 시간은 제곱배로 느려지니까 O(N²)

에피소드 25 - 검색 알고리즘이 뭐죠?

  • 선형 검색 알고리즘

    • 맨 처음 배열부터 검색을 시작
    • 배열의 길이가 길어지면 검색시간도 길어짐
    • y = x
  • 이진 검색 알고리즘

    • 데이터의 정렬이 끝난 배열에서만 사용할 수 있음 (항상 정렬되어 있어야함)
    • 배열의 중앙에서 검색을 시작
    • 거대한 배열을 다룰 때 효과적
    • y = log x

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

CS 지식이 있으면 더 효율적인 코드를 작성할 수 있기때문에 꼭 필요한 것 같다는 생각이 들었다. 많이 부족한 CS 지식을 채우려고 노력해야겠다… 공부하고 공부해도 어려운 CS

This post is licensed under CC BY 4.0 by the author.