컴퓨터 과학은 문제를 해결하는 과정
문제 해결은 input이 있을 때 output을 도출해내는 과정!
컴퓨터는 0과 1로만 데이터를 표현하는 2진법을 사용
이는 전기의 on/off로 작동하는 컴퓨터에 적합한 방법(on/off, true/false, 1/0)
2진법은 각 자리가 0과 1로 이루어져 있으며 각 자리수는 2의 거듭제곱을 의미함
1의 자리는 2의 0제곱부터 시작
예시
2진법 1111 → 2**3 + 2**2 + 2**1 + 2**0 → 10진법으로 15
10진법 12 → 8 + 4 → 2**3 + 2**2 → 2진법 1100
binary digit의 줄임말
2진법에서 하나의 자릿수를 표현하는 단위이며 정보를 저장하고 연산을 수행하기 위한 측정 단위
여러 비트들로 디지털 데이터를 표현하여 많은 양의 정보를 저장 가능하며 데이터 수정을 위한 수학적 연산도 가능
많은 양의 데이터를 나타내기 위해 사용하는 비트열로 바이트는 8개의 비트로 만들어짐
8개의 비트 = 2**8 = 256개의 표현 가능
단위 | 정의 | 저장공간 크기 |
---|---|---|
bit | 0 or 1 | true/false |
byte | 8 bit | 영어 알파벳 한 개 |
KB | 1000 byte | 몇 개의 문단 |
MB | 1000 KB | 1분 길이의 MP3 노래 |
GB | 1000 MB | 30분 길이의 HD영화 |
TB | 1000 GB | '심슨네 가족' 16시즌 |
컴퓨터는 정보를 표현할 때 숫자로 표현하며 이를 위한 약속(표준)이 있다.
: 미국정보교환표준부호
총 128개의 부호로 정의
알파벳, 특수문자 등을 숫자로 정의
ASCII코드로는 문자들을 표현하기 충분하지 않아 더 많은 비트를 사용하여 다양한 문자를 표현 가능하도록 함
🥰🤣🥳와 같은 이모티콘도 표현 가능
이 역시 숫자로 표현
그림은 작은 점(픽셀)로 이루어져 있으며 이 픽셀의 색은 RGB로 표현됨
RGB(Red, Green, Blue) : 세가지 색의 비율을 나타내며 이들의 조합으로 색을 표현함
그림을 연속적으로 보여주면 영상이 되며 음악 또한 음표를 숫자로 표현 가능함
전처리 - 컴파일 - 어셈블 - 링크
C언어의 #include
와 같이 실질적인 컴파일이 이루어지기 전 전처리 과정을 지시
#include
는 전처리기에게 stdio.h와 같은 내용을 담는 새로운 파일을 생성하여 컴파일할 파일에 포함
컴파일러를 통해 C코드를 저수준 프로그래밍 언어인 어셈블리어로 컴파일 시행
기계어 : 컴퓨터의 CPU가 읽어 실행할 수 있는 0과 1로 이루어진 명령어의 조합
어셈블리 : 이러한 기계어를 사람이 조금 더 알아보기 쉽고 컴퓨터를 제어하기 쉽게 만든 언어
프로그램이 여러 개의 파일로 이루어진 경우 하나의 오브젝트 파일로 합치는 과정
링커를 통해 하나의 파일로 합쳐짐