한줄평
: 컴퓨터 전반에 대해 알기 쉽게 설명해둔 책으로 입문책으로 적절한 것 같다.
(알고리즘에 대한 설명도 함께 들어가 있는데 알고리즘은 각자의 언어로 따로 실습을 병행하며 공부해야할 것 같다.)
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(프로그램 카운터)
- 다음에 수행해야될 명령어가 기록된 메모리의 주소를 가리키는 특별한 레지스터
'Review > Love Books' 카테고리의 다른 글
[책] 구글은 SKY를 모른다 _ 이준영 (0) | 2022.07.21 |
---|---|
[책] 수학을 읽어드립니다 _ 남호성 (0) | 2022.06.30 |
[책] 처음 떠나는 컴퓨터과학 산책 _ 김현철, 김수환 (0) | 2022.06.15 |
[책] 거의 모든 IT의 역사 _ 정지훈 (0) | 2022.04.13 |
[책] 비전공자를 위한 이해할 수 있는 IT 지식 _ 최원영 (0) | 2022.03.03 |