[컴퓨터공학] 컴퓨터 공학 기초
cs 기초
하드웨어를 알아야 하는 이유
* 컴퓨터의 기본 구조를 이해하고 컴퓨터에서 동작하는 소프트웨어에 대한 개발이 이루어져야 Clean Code를 작성할 수 있음!!
What is Computer?
Compute
+er
Computation vs Calculation
"calculation"
implies a strictly arithmetic process,
whereas "computation"
might involve applying rules in a sysematic way
Computer vs Calculator
Stored Program
computer -> Computer- Stores and Executes instructions
Fixed Program
computer -> Calculator- just calculate
Computer Science and Engineering
- 컴퓨터의 소프트웨어를 다루는 학문
- 컴퓨터라는 물리적 기기를 연구하는 것이 아닌
Computer
의 개념과 구조를 이해하고 구현하는 학문
Basic Computer architecture
- Program counter - contains the address (location) of the instruction being executed at the current time
- ALU(Arithmetic Logic) -
+, -, *, /, AND, OR, NOT
Architecture Naming
- x86
8080 - 8bit
8086 - 16bit
8088 - 8bit
80286 - 16bit
80386 - 32bit
…
Architecture Naming
-
IA64
Itanium - IA64 based 64bit, 1999
….
-
AMD64
Opteron - x86-64based 64bit, 2003
Athlon, AMD Phenom, AMD FX
Ryzen
..
-
Intel64== AMD64Xeon - x86-64 based 64bit, 2004
Core2
Core i Series
CISC&RISC Architecture
- Complex Instruction Set Computers
- 복잡한 명령구조
- 어드레싱에 강점
- 전력 신경쓸 필요없이 고성능 컴퓨팅에 사용
- Intel x86, AMD64, ..
- Reduced Instruction Set Computers
- 명령어의 단순화
- 메모리 접근 횟수가 적음
- 저전력 프로세싱에 사용
- SPARC, ARM, ..
Memory
-
컴퓨터에서 사용할 수 있도록 정보를 저장하는 공간
- Random Access Memory
- 자유롭게 읽고 쓸 수 있는 주기억장치
- 메모리의 주소로 그 위치에 접근
- RAM의 어떤 위치로든 같은 시간에 접근(Random Access)
- 컴퓨터가 느려지면 재부팅을 하세요!
- Read Only Memory
- 전원이 공급되지 않아도 그 정보를 유지하는 주기억장치
- 비싸거나 느려서 안정적인 정보를 저장해야 할 때 사용
- BIOS, OS, Firmware 정보 저장에 쓰임
OS
- Operating System : 운영체제
- 시스템 하드웨어를 관리하고, 응용 프로그램 실행을 위한 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어
Kernel
- 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템소프트웨어
Operating System == Kernel??
운영체제의 핵심 역할 수행
- 하드웨어, 프로세스 보안
- 시스템 자원 관리(스케줄링)
-
하드웨어 추상화 - 일관성 있는 인터페이스 제공
- Windows 10 - Windows NT 10.0
- MacOS - NXU/Darwin
- Linux - Linux
Type
- Single-tasking / Multi-tasking
- 한번에 1개 / n개의 프로그램을 동시 수행(achieved by time-sharing)
-
Single-user / Multi-user
- Distributed
Hardware <–> Operating System
<–> Application Software <–> User
Chronicles of OS
Unix
- Starting in the 1970s by AT&T
- Ken Thompson, Denis Ritchie, ..
Unix-like
- Solaris
- BSD
- MacOS
Linux
- Unix-clone OS
- GNU/Linux
- Sep 17 1991 by Linus Torvalds
Distribution of Linux
- Android
- Tizen
- Chrome OS
- ..
Windows
- CP/M-DOS -> MS-DOS
- Windows 1
- ..
- Windows 10
- Windows 95
- Windows 98
- Windows 2000
Windows 9x vs Windows NT
MS-DOS based -> 16bit
WindowsNT Kernel(3.1) based -> 32bit
WindowsNT Kernel(6.1) based -> x86-64(AMD64)
Database
data
- 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 정보.
- Latin “Datum”의 복수형 “Data”에서 유래
Database
- 체계화된 데이터의 모임
- 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음
DB?? DBMS??
DBMS(DataBase Management System)
- 데이터의 모임인 Database를 만들고, 저장, 관리 할 수 있는 기능을 제공하는 응용프로그램
- Oracle, Mysql, MariaDB, DB2, MS SQL Server, ..
DBMS의 조상님
dBASE
- 마이크로컴퓨터용 최초의 DBMS
- 1979년 Ashton이 개발
- SQL이 아닌 독자 스크립트 언어로 실행 -> dbf 파일 생성
Characteristics
- 데이터의 무결성
- 데이터의 중복 방지
- 보안 (추상화, 접근권한)
- 성능 향상
- 프로그램 수정과 유지 보수 용이
Differences between DataBase & File System
자기기술성
File System
- .hwp -> 한글
- .doc -> Microsoft Word
- .xls -> Microsoft Excel
DB
- Only SQL(RDBMS)
SQL(Structured Query Language)
데이터 관리를 위해 설계된 특수 목적의 프로그래밍 언어
SQL - 데이터 정의언어 (DDL)
데이터를 정의
CREATE - DB 개체 정의
DROP - DB 개체 삭제
ALTER - DB 개체 정의 변경
SQL - 데이터 조작언어 (DCL)
데이터 검색, 등록, 삭제, 갱신
INSERT - 행, 테이블 데이터 삽입
UPDATE - 테이블 업데이트
DELETE - 특정 행 삭제
SELECT - 테이블 검색 결과 집합
SQL - 데이터 제어언어(DML)
데이터 액세스 제어
GRANT - 작업 수행권한 부여
REVOKE - 권한 박탈
RDBMS vs NoSQL
구분 | RDBMS | NoSQL |
---|---|---|
형태 | Table | Key-value, Document, Column |
데이터 | 정형 데이터 | 비정형 데이터 |
성능 | 대용량 처리시 저하 | 잦은 수정시 저하 |
스키마 | 고정 | Schemeless |
장점 | 안정적 | 확장성, 높은 성능 |
유명 | Mysql, MariaDB, PostgreSQL | MongoDB, CouchDB, Redis, Cassandra |
ppt 44까지 했음
댓글남기기