💻 컴퓨터 구조와 정보의 표현
🧠 1. 컴퓨터가 이해하는 정보
컴퓨터는 사람이 사용하는 문자나 그림이 아니라 이진수(0과 1) 형태의 정보를 이해한다.
컴퓨터가 다루는 정보는 크게 두 가지로 나뉜다.
| 구분 | 설명 |
|---|
| 데이터(Data) | 숫자, 문자, 이미지, 소리 등 컴퓨터가 처리하는 모든 대상 |
| 명령어(Instruction) | 데이터를 처리하는 방법을 지시하는 정보 (예: 더하기, 저장하기 등) |
➡️ 명령어와 데이터는 모두 메모리에 저장되어 CPU가 처리한다.
⚙️ 2. 컴퓨터의 4가지 핵심 부품
| 구성 요소 | 역할 | 예시 |
|---|
| CPU (중앙처리장치) | 명령어를 해석하고 실행 | 인텔 i7, AMD Ryzen |
| 메모리 (주기억장치) | 현재 실행 중인 프로그램과 데이터를 저장 | RAM |
| 보조기억장치 | 전원이 꺼져도 정보를 영구 저장 | SSD, HDD, USB |
| 입출력장치 | 사용자와 컴퓨터 간의 정보 교환 | 모니터, 키보드, 마우스 |
🧩 3. 컴퓨터의 전체 구조
-
메인보드(마더보드)
- 모든 부품을 연결하는 중심 회로판
- 각 부품은 메인보드의 슬롯, 커넥터, 포트를 통해 연결된다.
-
시스템 버스 (System Bus)
-
부품들 간의 정보 통로 역할
-
세 가지 버스로 구성됨
| 버스 종류 | 역할 |
|---|
| 주소 버스 (Address Bus) | 데이터의 위치(주소)를 전달 |
| 데이터 버스 (Data Bus) | 실제 데이터가 이동하는 통로 |
| 제어 버스 (Control Bus) | 읽기·쓰기 등 제어 신호를 전달 |
-
CPU 내부 구성
- ALU (산술논리연산장치) : 더하기, 빼기, 논리 연산(AND, OR 등) 수행
- 레지스터 : 연산에 필요한 값을 임시로 저장하는 초고속 저장공간
- 제어장치(Control Unit) : 명령어를 해석하고 필요한 제어 신호를 보냄
➕ CPU 내부의 모든 동작은 시스템 클록(Clock) 신호에 맞춰 일정한 속도로 수행됨.
💾 4. 메모리 (주기억장치)
- 프로그램이 실행되려면 반드시 메모리(RAM) 에 올라와야 한다.
- CPU는 명령어를 메모리에서 한 줄씩 읽어와 실행한다.
- 각 데이터는 고유한 주소(Address) 를 가지고 있어 CPU가 정확히 찾아갈 수 있다.
| 특징 | 설명 |
|---|
| 휘발성 | 전원이 꺼지면 내용이 사라진다. |
| 접근 속도 | 매우 빠르며, CPU와 직접 연결되어 있음 |
| 단위 | Byte(1바이트 = 8비트) 단위로 주소가 매겨짐 |
🧩 CPU ↔ 메모리 데이터 이동 과정
- CPU가 읽고자 하는 메모리 주소를 주소 버스로 보냄
- 제어 버스를 통해 ‘읽기(Read)’ 신호 전송
- 해당 주소의 데이터가 데이터 버스를 통해 CPU로 전달됨
🗃️ 5. 보조기억장치
| 종류 | 특징 |
|---|
| HDD | 자기디스크 기반, 용량 크고 가격 저렴, 속도 느림 |
| SSD | 반도체 기반, 속도 빠름, 전력 소비 적음 |
| USB / SD카드 | 이동식 저장매체, 휴대성 우수 |
- 비휘발성이라 전원이 꺼져도 데이터가 유지된다.
- 프로그램이나 파일은 실행 시 보조기억장치 → 메모리 → CPU 순으로 이동한다.
🖥️ 6. 입출력장치 (I/O Device)
- 외부 세계와 컴퓨터 내부를 연결하는 다리 역할
- 입력장치(Input) : 키보드, 마우스, 마이크, 스캐너
- 출력장치(Output) : 모니터, 프린터, 스피커
➡️ CPU와 입출력장치는 입출력 포트(I/O Port) 또는 디바이스 컨트롤러를 통해 연결된다.
🔢 7. 0과 1로 숫자를 표현하는 방법
💡 정보 단위
- 컴퓨터는 0과 1로 모든 정보를 표현하며, 0과 1로 표현된 정보만 이해할 수 있다.
- 0과 1을 나타내는 가장 작은 정보 단위를 비트(bit) 라고 한다.
- 전구의 꺼짐(0), 켜짐(1) 두 가지 상태를 표현할 수 있는 것과 같다.
- n비트로 2ⁿ가지의 정보 표현 가능

- 1024개씩 묶은 단위는 KiB, MiB, GiB 로 표현한다.
- 최근에는 2진 접두어(Ki, Mi, Gi) 를 사용하는 추세이다.
🧱 워드(Word)
- CPU가 한 번에 처리할 수 있는 정보의 크기 단위 (예: 32bit, 64bit)
- 하프워드 : 워드의 절반 크기
- 풀 워드 : 워드 크기
- 더블 워드 : 워드의 두 배 크기
💡 이진법 : 0과 1로 숫자 표현하기
2진법 (Binary)
- 0과 1만으로 수를 표현한다.
- 숫자가 1을 넘어가면 자리 올림이 일어난다.
- 컴퓨터에게 숫자를 알려줄 때는 10진수가 아니라 2진수를 사용한다.
- 표기 방법:
(2)를 붙이거나 0b를 앞에 붙인다.
- 음수 표현 시에는 2의 보수법을 사용한다.
2의 보수법
어떤 수를 그보다 큰 2ⁿ에서 뺀 값으로,
모든 비트를 반전시키고 1을 더하는 방식이다.
💭 Q. + -1011(2) = 0101(2) = 십진수 5 = 0101(2)
어떻게 구분할까?
→ CPU 내부에는 플래그 레지스터(flag register) 가 존재하여,
수의 부호(양수/음수)를 구분한다.
🧮 16진법 (Hexadecimal)
- 이진법은 숫자의 길이가 너무 길어지므로, 이를 보완하기 위해 16진법을 사용한다.

- 표기 방법:
(16)을 붙이거나 0x를 앞에 붙인다.
Q. 2진수나 10진수로는 부족한가? 16진법을 사용하는 이유는?
→ 2진수와 16진수는 서로 변환하기 쉽기 때문이다.

- 2진수를 16진수로 변환할 때: 4비트씩 끊어서 변환
- 16진수를 2진수로 변환할 때: 1자리 = 4비트로 변환

🔤 8. 0과 1로 문자를 표현하는 방법
💡 문자 집합과 인코딩
| 개념 | 설명 |
|---|
| 문자 집합 (Character Set) | 컴퓨터가 이해할 수 있는 문자들의 모음 |
| 인코딩 (Encoding) | 문자를 0과 1로 이루어진 코드로 변환하는 과정 |
| 디코딩 (Decoding) | 0과 1로 표현된 코드를 문자로 변환하는 과정 |

💡 아스키코드 (ASCII)
- 초창기 문자 집합 중 하나로, 알파벳, 숫자, 특수문자를 표현한다.
- 7비트로 하나의 문자를 표현하며,
나머지 1비트는 패리티 비트(오류 검출용) 로 사용한다.
- 총 2⁷ = 128개 문자 표현 가능.

- 단점: 한국어나 다양한 언어, 특수문자는 표현 불가
→ 언어별 인코딩 방식(EUC-KR 등)이 등장
💡 EUC-KR
- 한글 전용 문자 집합 기반 인코딩 방식
- 완성형 인코딩 방식: 글자 하나마다 코드 부여
- 2바이트(16비트) 로 표현 → 4자리 16진수
- 약 2,300자 한글 표현 가능, 하지만 여전히 부족함
💡 유니코드 (Unicode)
- 전 세계 모든 문자를 통합한 통일된 문자 집합
- 한글, 영어, 이모티콘까지 포함
- 인코딩 방식: UTF-8, UTF-16, UTF-32 등 다양
🔹 UTF-8 인코딩
- Unicode Transformation Format의 약자
- 가변 길이 인코딩 (1~4바이트)
- 문자에 따라 필요한 바이트 수가 다름
- 현대 웹 환경에서 가장 많이 사용되는 방식
💭 글자가 깨질 때?
인코딩 방식이 서로 다르거나 호환되지 않을 때 발생한다.
예를 들어, UTF-8로 저장된 파일을 EUC-KR로 읽으면 문자가 깨질 수 있다.
📚 9. 전체 흐름 요약
| 구성요소 | 역할 요약 |
|---|
| CPU | 명령어 해석 및 실행 (ALU + 제어장치 + 레지스터) |
| 메모리 | 실행 중인 명령어·데이터 저장 (휘발성) |
| 보조기억장치 | 영구 저장 (비휘발성) |
| 입출력장치 | 외부와 정보 교환 |
| 시스템버스 | 주소/데이터/제어 신호를 전달하는 통로 |
| 비트·바이트 | 정보 표현의 최소 단위 |
| 인코딩 | 문자를 0과 1로 변환하는 과정 |
| 유니코드 | 전 세계 문자를 통합한 표준 문자 체계 |