하드웨어: 중앙처리장치(CPU) + 기억장치 + 입출력장치 +주변기기
CPU: 입력장치에서 받은 명령을 처리.
CPU가 1초에 얼마나 많은 연산을 할 수 있는지 속도를 측정하는 단위는 GHZ.
기억장치: 주기억장치(응용 프로그램을 일시적으로 불러오거나, 데이터를 일시적으로 저장하는 임의 접근 기억 장치인 RAM) + 보조기억장치(RAM과 달리, 데이터를 영구적으로 저장하는 HDD와 SSD)
컴퓨터가 계산을 수행하기 위해선, bit&byte 형태로 기억장치에 저장할 수 있어야 한다. 나중에 데이터를 검색할 수 있도록 보관하기 위해서 이다.
CPU 캐시메모리로 갈 수록, 속도가 빠르지만 용량이 작고 HDD로 갈 수록, 속도가 느리지만 용량이 크다.
컴퓨터는 여러 프로그램을 실행하기 위해서, 운영체제와 프로그램을 동시에 실행시켜야 하는데, 이 때는 RAM을 사용한다. 너무 많은 공간의 RAM이 사용되면, 운영체제는 가상 기억장치를 써서 일시적으로 데이터를 RAM에서 하드디스크로 옮기고, 사용자가 필요로 할 때 다시 정보를 불러온다.
RAM이 하드디스크보다 비싼이유
컴퓨터 성능의 주요 결정 요인이다. 동적인 동시작업 처리 속도가 실질적인 사용자 입장에서의 체감속도와 가장 큰 연관이 있어서.
왜 이렇게 다른 단계의 기억장치가 있을까?
CPU를 항상 일 하게 만들기 위한(효율적인 일 처리) 기술적으로 효율적인 구성
HDD와 SSD의 차이
HDD는 데이터를 읽고 쓰는 속도가 SSD에 비해 느리지만, 저장공간이 크고, 가격이 저렴하다.
입 출력 장치: 입력장치(마우스, 키보드, 스캐너 등으로 사용자가 입력한 자료를 컴퓨터가 이해할 수 있는 형태로 변환하는 장치) + 출력장치(모니터, 프린터 등으로 모니터를 이야기할 때 크기와 해상도를 언급한다. 모니터의 크기는 대각선 끝과 끝의 길이로 인치로 표현하며, 해상도는 이미지의 선명도를 숫자로 표현한다. 화면의 이미지를 확대하면, 하나의 작은 점인 픽셀들로 구성되는데, 픽셀의 개수가 해상도이며, 개수가 많아질수록 선명한 이미지를 표현한다.)
주변기기: 컴퓨터 자체부품이 아닌 컴퓨터와 연결하여 사용하는 기기로, 키보드와 외장 스피커 등. 이 때 키보드와 스피커는 출력장치이자 주변기기로 볼 수 있다. 주변기기는 보통 컴퓨터에 있는 물리적 포트에 꽃혀 컴퓨터에 연결되는데, 많이 알려진 포트로는 범용 직렬 버스(USB)포트가 있다.
1990년대 개발된 USB 포트는 업계 표준으로 대부분의 컴퓨터 주변기기들은 모두 USB 연결을 지원함.
usb에 대해서
usb는 데이터를 손쉽게 이동시키려는 목적으로 만들어졌고, CD를 시작으로 용량과 휴대성을 늘린 장치이다. 현재는 클라우드 서비스를 많이 사용해서 이전보단 usb의 보편화가 줄어든 것 같다. 애플의 경우에는 자회사의 이윤추구와 독점을 위해 표준 포트를 꺼릴 것 같고, 기존 다른 회사들은 굳이 피할 이유는 없어 보이나, usb보단 클라우드 서비스에 집중하는 추세인 것 같다.
bit: 정보를 저장하고 연산을 수행하기 위해 컴퓨터는 bit라는 측정 단위를 쓴다. binary digit(이진 숫자)의 약어이며, 0과1 두가지 값만 갖는다.
byte: 1byte는 8bit로 구성되고, 비트 하나는 0과 1로 표현될 수 있어서 2^8 = 256 개의 서로 다른 바이트가 존재할 수 있다.
하나의 비트로는 어떠한 값이 참인지 거짓인지, 예를 들면, 노트북이나 휴대전화가 충전 중인지 아닌지에 대한 정보만 컴퓨터에 저장할 수 있다. 하나의 바이트(8 bit)로는 알파벳 하나를 표시할 수 있다.
더 큰 데이터 단위는 더 복잡한 유형의 데이터를 저장할 수 있다.
컴퓨터는 bit 형태로 데이터를 나타내기에, 2진수의 수 체계를 사용한다.
10진수를 2진수로 표현
ex) 0 = 0000, 6 = 0110, 11 = 1011
2진수로 컴퓨터에서는 문자를 어떻게 처리할까?
ASCII는 문자를 컴퓨터가 이해할 수 있는 0,1의 이진 데이터 혹은 그 반대로 변환하는 표준 방법.
ASCII 인코딩 표준
ASCII에서 소문자는 같은 대문자 글자보다 항상 2^5만큼 크다.
ASCII의 한계
기본 ASCII 코드 표는 7비트만 이용해서 모든 문자들을 나타낸다.
2^7개, 즉 128개의 문자를 나타낼 수 있다는 것을 의미.
확장 ASCII는 8번째 비트를 추가하여 총 256개의 문자를 나타낼 수 있다. 소문자와 대문자 통틀어 52개 알파벳 밖에 없으므로, 그 외 남는 공간에 구분 기호, 숫자, 몇몇 기본 심볼들($나 % 기호 등) 같은 다른 종류의 문자들을 나타낼 수 있다.
그러나 8비트 ASCII 코드로도 나타낼 수 없는 문자들이 아직도 많이 있고, 우리가 사용할 수 있는 문자들의 개수는 256개보다 많다. 수학 기호들과 영어 외 다른 언어의 글자들은 표준 ASCII 표에 들어가기 힘들다. 이 때문에 훨씬 더 많은 문자들을 포함할 수 있는 유니코드(Unicode)가 등장. 유니코드는 100만개 이상의 문자들을 나타낼 수 있는 문자 인코딩 표준이며, 유니코드의 첫 128개의 문자는 ASCII의 128개의 문자와 동일하므로 서로 호환이 된다.
많은 정보를 처리하는 컴퓨터에게는 2진수가 너무 길다-> 컴퓨터 과학에선 숫자를 16진수로 표현하는 경우가 많다.
16진수에서 10은 a, 11은 b, …, 15는 f를 대입하여 사용한다. 4bits씩 16진수로 변환 후 0x를 붙혀 뒤에 오는 문자들이 16진수임을 알려줌.
ex) 숫자 50, 128, 256을 16진수로 표현한다면? 0x32, 0x80, 0x100
10진수->16진수 한번에 바꿀 수도 있고,
10진수->2진수->16진수로 바꿀 수도 있다.
16진수를 쓰는 이유는?
컴퓨터는 0과 1만 이해할수 있기 때문에, 2진수와 16진수를 사용하며, 16진수 체계는 각자릿수가 4bit 패턴과 완벽히 대응되므로, 컴퓨터의 기본단위 1byte 표현에도 잘 맞는다. (4bit * 2) 이런 실용성 때문에, 프로그래머들은 16진수 패턴을 주로 사용한다.
컴퓨터는 어떻게 이미지 파일을 구별할 수 있는가?
이미지: 이미지는 비트맵(.bmp), JPG(.jpg), PNG(.png), GIF(.gif) 등 여러 가지 파일 유형으로 저장된다.
사진을 찍어 이미지에 저장하면 그 이미지는 보통 JPEG라는 확장자를 갖게 되고 이미지를 압축하여 저장한다.
윈도우에서 많이 볼 수 있는 파일 형식에는 BMP도 있다.
하나의 이미지를 다양한 이미지 파일 형식으로 저장할 수 있는데, 저장되는 형식에 따라 파일 안에 들어가 있는 비트 데이터들의 구조 또한 다르다.
이 때문에 각각의 이미지 파일은 보통 첫 부분에 파일을 구분할 수 있는 구분자를 넣어둔다.
JPEG 파일을 들여다보면 파일을 구분할 수 있는 정보가 처음에 보이고 나머지 정보들이 그 다음에 저장되는 것이다.
BMP 파일 형식은 이미지 데이터를 가장 단순하게 저장하고, 압축을 하지 않아 파일 크기가 크다는 단점이 있다.
BMP도 JPEG처럼 파일의 가장 처음 부분에 비트맵 파일에 대한 정보가 있다는 것을 알 수 있다.
JPEG: 이미지를 압축하는 장점을 갖고 있으며, GIF 파일이 256색을 표시할 수 있는데 비해 JPEG는 1600만 색상을 나타낼 수 있어 고해상도를 나타내기에 적합
GIF: 이미지의 전송을 빠르게 하기 위한 압축저장 방식을 사용. JPEG 보다 압축률은 낮지만 압축 시 이미지의 손상이 적다.
PNG: GIF와 JPEG의 장점만을 합쳐 놓은 압축방식. GIF보다 압축률이 좋고, JPEG 보다 원본에 손상이 적어 효과적.
가상현실(Virtual Reality): 가상의 환경이나 상황을 컴퓨터로 만들어서 사람들이 실제로 그 상황에 들어와있는 것 처럼 느끼고 상호 작용할 수 있도록 만들어 주는 인터페이스. VR의 원리는 양안시차의 발생과 모션 트래킹 센서의 사용.
증강현실(Augmented Reality): 가상현실은 가상의 환경에서 가상의 물체와 상호 작용하는 반면, 증강현실은 현실의 환경에서 가상의 이미지가 겹쳐서 보여지는 것.
AR은 스마트폰과 같이 카메라와 디스플레이가 함께 있는 기기가 필요하며 VR과 같이 사람의 시선(카메라의 위치)를 계산하기 위해 위치와 기울기를 측정하는 센서가 필요하다.
이제 컴퓨터는 정해진 답만 말하지 않는다.
인공지능은 어떻게 정보를 처리할까?
자연어(인간의 일상 언어) 처리: 컴퓨터가 사람의 언어를 기계적으로 분석하여 컴퓨터가 이해할 수 있는 형태로 바꾸어 처리하는 것. 문장 전체를 이해하기 보다 구와 절로 나누어 사용된 단어의 조합으로 의미를 파악하는 것 역시 자연어 처리의 일부.
음성 인식: 소리 센서를 통해 입력된 음향 신호를 단어나 문장 등으로 변환하는 기술.
ex) 네이버 클로바, 아이폰 시리, 갤럭시 빅스비.
머신 러닝(기계 학습): 인공 지능을 구현하기 위한 하나의 분야로 컴퓨터가 많은 데이터를 스스로 학습하여 그 데이터에 대한 패턴을 파악하는 것.