-
컴퓨터과학 기초CS(ComputerScience) 2020. 11. 5. 11:20
안녕하세요. 그린입니다!
이번 포스팅에서는 CS 즉 ComputerScience == 컴퓨터과학을 뜻하죠. 이 컴퓨터과학에 대해 알아보겠습니다.
컴퓨터를 전공하였다면 전공과목으로 수강하였던 부분이기도 하지만 이번 CS카테고리에서는 이 부분을 아주아주 기초부터
심화된 내용까지 다뤄보도록 하겠습니다.
우리가 프로그래밍을 한다하더라도 컴퓨터에 대해 원초적으로 잘 알고 코딩을 한다면 더 좋은 성과가 있겠죠??
부담없이 쭉 일어보고 아는것을 다진다라는 생각으로 구독해주시면 감사하겠습니다~!
1. CS 기초 용어
-. 프로그래머 : 컴퓨터 프로그램을 만드는 사람
-. 프로그래밍 : 컴퓨터 프로그램을 만드는 일
-. 프로그램 : 컴퓨터에 의해 실행될 수 있는 일련의 기능 모음 (집합체)
2. 컴퓨터의 발전과 역사
-. 컴퓨터는 예전부터 그 뿌리를 찾는다면 전자계산기로부터 시작하였다.
(초기 컴퓨터의 모습은 십진법보다 이진법이 효율적으로 생각하여 이진법으로 출발하였다.)
-. 최초 다용도 디지털 컴퓨터 - ENIAC
-. 최초 프로그램 내장 방식 컴퓨터 - EDSAC
-. 제 1세대 컴퓨터 -> 진공관 활용
-. 제 2세대 컴퓨터 -> 트랜지스터
-. 제 3세대 컴퓨터 (현재) -> 직접회로
3. 컴퓨터의 구성
-. 하드웨어와 소프트웨어로 구성
-. 하드웨어 : 컴퓨터와 그 주변을 구성하는 물리적 장치 (입력장치,출력장치,기억장치,제어장치,연산장치)
-. 기억장치
1) 주기억장치 (램)
: 빠르고 전원이 꺼지면 데이터가 지워짐
주기억장치라 불리는 이유 : CPU 입장에서 데이터를 직접 읽고 쓸 수 있기때문 아닐까?? (CPU가 동작하기 위해 필수적인 요소기도함)
-> 보조 기억장치는 데이터를 직접 읽고 쓸 수 없어 전달을 통함
2) 보조기억장치 (하드디스크)
: 매우 느리지만 전원이 꺼져도 데이터 보존
-. 제어/연산장치
: 중앙처리장치 (CPU - Central Processing Unit)
-. 소프트웨어 : 프로그램-> 명령어의 집합
1) 운영체제 / 로드 / 장치드라이버 / 컴파일러 / 어셈블러 / 링커 / 유틸리티 구성
2) 응용 소프트웨어 : 애플리케이션으로 불림 (워드 / 게임 등)
4. 컴퓨터의 구조
1) 하버드 구조
: 메모리가 2개로 명령어 메모리와 데이터 메모리
-> 메모리 2개 구조로 속도가 빠르지만 구성에 비용이 많이 들며 복잡함 (비쌈)
2) 폰 노이만 구조
: 메모리가 1개로 명령어+데이터 메모리를 한곳에서 처리
-> 메모리 1개 구조로 속도가 하버드 구조보다는 느리고 메모리 속박 및 버스 병목 문제를 가짐
3) 하버드 + 폰 노이만 구조
: 현대에는 두가지를 병합한 메모리를 사용한다
-> CPU 내부 : 하버드(L1,L2캐시) / CPU 외부 : 폰 노이만
5. 32/64Bit 아키텍처
-. 0과 1을 한번에 처리할 수 있는 개수 (32/64개)
-. 정수타입은 꼭 4byte가 아님. (32비트일 시) // 아키텍처에 따라 달라짐 (스위프트에서는 8byte)
-. 2^32 bit == 4GB (32비트로 표현할 수 있는 최대)
6. IPv4 / IPv6
-. IPv4 : 32bit (현재 포화상태로 전세계에서 아이피 돌려막기중)
-. IPv6 : 128bit
7. 데이터 표현방식
-. 정수 : 0과 1로 표현 (10진수/8진수/16진수)
-. 실수 : IEEE754 방식으로 부호/지수/가수 3부분으로 나누어 표현
-. 문자 : 문자표에 의해 숫자를 매칭 (ASCII,Unicode,UTF-8 등...)
-. 인코딩(Encoding) : 데이터를 코드화
8. 컴퓨터의 연산
-. 컴퓨터는 덧셈만 가능 (가산기와 반가산기로 구성)
-. 뺄셈 : -부호를 붙여 덧셈(보수 이용) / 나눗셈 : 뺄셈으로 덧셈 / 곱셈 : 덧셈
-. 연산은 꼭 프로그래밍할때 필요함으로 자세하게 알아두는것이 좋다.
[추가사항]
-. 커널 : 운영체제의 핵심으로 응용 소프트웨어 등이 돌아가게 하는 기능
이상으로 컴퓨터 기초에 대해 간략하게 알아보았습니다.
원래 알고있는 내용을 아주아주 간단하게 정리한것으로 쉽게 느껴질 수 있지만 보다 더 자세하게 목차들에 대해
조사해보며 찾아본다면 폭 넓은 학습이 될것입니다.
다음 포스팅에서는 좀 더 심화된 컴퓨터과학 학습을 해보겠습니다.
감사합니다!
'CS(ComputerScience)' 카테고리의 다른 글
Cache (0) 2021.02.04 HTTP & TCP/IP (0) 2021.01.18 OS와 Process (0) 2021.01.05 자료구조와 알고리즘 (0) 2020.12.08 SOLID (0) 2020.12.03