CS50 - 컴퓨터와 컴퓨팅
[컴퓨터와 컴퓨팅]
1. 하드웨어
하드웨어 : 컴퓨터를 물리적으로 구성하는 요소로 컴퓨터에 연결되어 추가적인 기능을 수행.
입출력장치 : 사용자가 입력한 자료를 컴퓨터가 이해할 수 있는 형태로 변환하는 장치
- 입력 장치(마우스, 키보드 스캐너)
- 출력 장치 (모니터, 프린터)
2. 기억 장치
- 기억 장치 : 입력된 명령이나 데이터가 저장되는 공간.
- 주 기억 장치(RAM) : 기억된 정보를 읽어내기도 하고 다른 정보를 기억시킬 수 있는 메모리로서, 응용 프로그램을 일시적으로 불러오거나, 데이터를 일시적으로 저장하는데 사용되는 임의 접근 기억 장치 (저장 단위 : GB)
- 보조 기억 장치(하드 드라이브/SSD/플래시 드라이브:USB) : 영구적으로 데이터를 저장
중앙처리장치(Central Processing Unit, CPU / 프로세서) : 입력장치에서 받은 명령을 실제로 처리. (초당 연산 속도 단위 : GHz)
하드 디스크 : 하드디스크는 엄청나게 많은 양의 데이터를 기억장치에 저장할 수는 있지만, 데이터를 읽고 쓰는 데에 많은 시간이 소요
RAM : 하드디스크보다 훨씬 빠르게 데이터를 읽고 쓸 수 있어서, 실행중인 프로그램이나 열려있는 파일들이 더 빨리 접근될 수 있도록 메모리를 저장하는데 사용. 여러 프로그램을 실행하기 위해서는 운영체제와 프로그램을 동시에 실행시킬 때 사용.
CPU : 한번에 32 또는 64bit의 블록 단위로 굉장히 적은 양의 데이터를 조작하고 계산. 하지만 중앙처리장치는 이러한 비트들을 굉장히 빠른 속도로 처리
- L1, L2, L3 캐시 : RAM보다 더 빠르게 정보를 읽고 쓰는 더 작은 단위의 기억장치. L1 캐시가 이 셋 중에서 가장 작고 빠르며, 중앙처리장치가 재빨리 받아 처리할 수 있도록 몇 킬로바이트의 데이터만을 저장. L2 캐시는 L1 캐시보다 조금 크지만, 그만큼 더 느림. L3 캐시는 보통 몇 메가바이트를 저장할 수 있어 셋 중 가장 크지만 가장 느립니다. 그래도 L3 캐시는 RAM보다는 빠릅니다.
기억장치의 타협점은 용량과 속도에서 찾습니다. 속도가 빠른 기억장치는 용량이 작은 경향이 있고 속도가 빠른 기억장치는 각 용량 단위의 가격이 더 비쌈. 예를 들면, RAM의 1GB 가격이 하드디스크 1GB 가격보다 비쌉니다.
- 가상 기억 장치 : 일시적으로 데이터를 RAM에서 하드디스크로 옮기고, 사용자가 필요로 할 때 다시 정보를 불러옴.
3. 비트와 바이트
비트 : “binary digit”의 줄임말. 0과 1, 두 가지 값만 가질 수 있는 측정 단위. 디지털 데이터를 여러 비트들로 나타냄으로써 두 가지 값만을 가지고도 많은 양의 정보를 저장 가능. 또한 컴퓨터는 저장되어 있는 데이터를 수정하기 위해 비트에 수학적 연산을 수행 가능.
비트열 : 비트 한 개는 많은 양의 데이터를 나타내기에 부족. 때문에 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용.
4. 2진수
- 2진수 : 비트란 이진법의 최소단위로, 숫자 0,1로 신호를 나타내는 최소의 단위를 비트라 합니다. 비트를 가지고 수학적 연산을 하기 위해, 컴퓨터는 0과 1만을 사용하는 2진수라는 수 체계를 사용
5. ASCII 코드
- ASCII : 문자를 컴퓨터가 이해할 수 있는 이진 데이터(0 또는 1)로, 혹은 그 반대로 변환하는 표준
- ASCII 한계 : 기본 ASCII 코드 표는 7비트만 이용해서 모든 문자들을 나타냄. 확장 ASCII는 8번째 비트를 추가하여 총 256개의 문자를 나타낼 수 있지만 모든 문자를 표현 할 수는 없음.
- 유니코드 : 100만개 이상의 문자들을 나타낼 수 있는 문자 인코딩 표준
6. 16진수
16진수(Hexadecimal) : 16진수를 사용하면 10진수보다 2진수를 간단하게 나타낼 수 있음. (0~9 a~f)
16진수의 유용성 : ASCII 코드에 의해 “A, B, C”는 10진수로 65, 66, 67에 해당합니다. 컴퓨터는 10진수를 이해할 수 없으므로 2진수로 표현해보면 “01000001 01000010 01000011"이 됩니다. 하지만 16진수로 표현하면 2진수로 표현했을 때 보다 훨씬 간단해집니다. 또한 컴퓨터는 8개의 비트가 모인 바이트 단위로 정보를 표현합니다. 2개의 16진수는 1byte의 2진수로 변환되기 때문에 정보를 표현하기 매우 유용.
0x : 4bits씩 16진수로 변환 후 0x를 붙혀 뒤에 오는 문자들이 16진수임을 알려줌 (ex : 0xff = 255)
7. 이미지
- 이미지 파일 형식 확장자
- BMP : 이미지 데이터를 가장 단순하게 저장. 압축을 하지 않아 파일 크기가 크다는 단점.
JPG : 이미지를 압축하는 장점.할 수 있는데 비해 JPEG는 1600만 색상 고해상도에 적합
GIF : 256색. 이미지의 전송을 빠르게 하기 위한 압축저장 방식을 사용. JPEG보다 압축률은 낮지만 압축 시 이미지의 손상이 적음.
PNG : GIF와 JPEG의 장점만을 합쳐 놓은 압축방식. GIF보다 압축률이 좋고 JPEG보다 원본에 손상이 적어 효과적
8. 가상 현실과 증강 현실
가상 현실(VR) : 가상의 환경이나 상황을 컴퓨터로 만들어서 사람들이 실제로 그 상황에 들어와있는 것 처럼 느끼고 상호 작용할 수 있도록 만들어 주는 인터페이스. 작동원리 : 양안 시차만큼 다른 각도로 촬영된 영상이 재생 + 모션 트래킹 센서
증강 현실(AR) : 현실의 환경에서 가상의 이미지가 겹쳐서 보여지는 것
9. 인공지능
자연어처리 : 자연어란 인간이 일상적으로 사용하는 언어. 인간이 평소에 사용하는 언어이기 때문에 같은 의미라도 표현 방법이 다양한 것이 특징. 컴퓨터는 기계어를 사용하기 때문에, 명령을 내리기 위해서 규칙이 정해져 있는 프로그래밍 언어를 이용. 때문에 컴퓨터가 사람의 언어를 기계적으로 분석하여 컴퓨터가 이해할 수 있는 형태로 바꾸어 처리하는 것을 자연어 처리라는 과정이 필요.
음성 인식 : 소리 센서를 통해 입력된 음향 신호를 단어나 문장 등으로 변환하는 기술
머신 러닝 : 인공 지능을 구현하기 위한 하나의 분야. 머신 러닝을 통해 컴퓨터는 많은 데이터를 스스로 학습하여 그 데이터에 대한 패턴을 파악.