본문 바로가기
Review/Love Books

[책] 한 권으로 그리는 컴퓨터 과학 로드맵 _ 블라드스톤 페헤이라 필루

by jamiehun 2022. 6. 16.

 

한줄평
: 컴퓨터 전반에 대해 알기 쉽게 설명해둔 책으로 입문책으로 적절한 것 같다.
(알고리즘에 대한 설명도 함께 들어가 있는데 알고리즘은 각자의 언어로 따로 실습을 병행하며 공부해야할 것 같다.)

 

1. 기초지식

생각을 모델로

  • 순서도
  • 의사코드

논리적으로 따져보기

 

2. 복잡도

  • 최선의 경우와 최악의 경우 모두 고려 필요!
  • 시간 복잡도와 공간 복잡도가 존재함

빅오표시법

  • 연산비용이 얼마나 되는지를 지배적 항으로 표현하는데 사용함

지수시간 알고리즘의 무서움..!

 

3. 데이터

추상

  • 세부사항을 생략하여 복잡한 사물의 기능을 단순한 방식으로 다루기 위한 인터페이스

프로시저 추상

  • 복잡한 처리과정을 프로시저 속에 감춰둠

데이터유형

  • 추상데이터 유형
    • 데이터 변수를 조작하기 위한 인터페이스를 정의하며 메모리 속에서 실제로 데이터를 저장하고 연산하는데 필요한 세부사항을 감출 수 있음
  • 이점
    • 간결성, 유연성, 재사용성, 조직성, 편의성, 오류수정용이성
  • 종류
    • 기본데이터 유형 : 정수, 부동소수점 실수, 연산 등
    • 스택(stack) : LIFO (후입선출)
      • push(e) : 새 항목 e를 스택의 가장 위에 추가
      • pop() : 가장 위의 항목을 가져오고 그 항목을 스택에서 제거
    • 큐(queue) : 대기열, FIFO
      • enqueue(e) : 새 항목 e를 큐의 가장 뒤에 추가
      • dequeue() : 큐의 가장 앞 항목 가져오고 그 항목을 큐에서 제거
    • 우선순위 큐(priority queue) : 우선순위가 있는 큐
      • enqueue(e, p) : 우선순위 p에 따라 새항목 e를 큐에 추가
      • dequeue() : 큐의 가장 앞쪽 항목을 가져오고 큐에서 제거
    • 그 외에도 리스트, 맵, 집합 등이 있음
      • 집합 : 고유한 항목들을 순서 상관없이 모아두는 것으로 수학의 집합과 비슷함

 

6. 데이터베이스

관계형 데이터베이스 (Relational Model)

  • table, row, column(=field)
  • 필드와 제약사항을 정해둔 것 → 스키마 (schema)
  • 정규화 : 표를 나누고 중복 정보 제거하는 변환 과정
  • SQL (Structured Query Language)
    • select, from, where 등

비관계형 데이터베이스 (Non Relational Model)

  • NoSQL DB가 가장 대표적
    • 가장 유명한 문서저장소 방식 (document store) ; 고정된 스키마 필요 X
    • 각 데이터 항목에 서로 다른 필드 지정 가능함
    • 방대하고 불안정하며 구조가 일치하지 않는 데이터를 효율적으로 다룰 수 있음
    • 강력하지만 프로그래머가 모든 책임을 떠안아야 함

빅데이터

  • 양(volume), 속도(velocity), 다양성(variety) 세가지 측면에서 다루기가 극도로 까다로운 상황
  • 주로 수천테라바이트를 다룸
  • 메가데이터가 개발중이며, 수백만 테라바이트를 다루는 기술도 나올 예정

 

7. 컴퓨터 구조

메모리(Memory)

  • 컴퓨터가 수행해야 할 명령어를 써놓는 공간

CPU

  • 메모리에서 명령어와 데이터를 읽어 그에 맞게 계산하는 기능

CPU register

  • CPU 자체의 메모리 셀들
    • 예를 들면, 메모리 220번 셀의 데이터를 레지스터 3번으로 복사하라
    • 레지스터 3번의 수를 레지스터 1번의 수에 더하라

Program Counter(프로그램 카운터)

  • 다음에 수행해야될 명령어가 기록된 메모리의 주소를 가리키는 특별한 레지스터