02. 비트와 바이트
1. 디지털 데이터란?
컴퓨터가 이해할 수 있는 0과 1의 집합
┌─────────────────────────────────────────────────────────────────┐
│ 아날로그 vs 디지털 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 아날로그 (Analog) 디지털 (Digital) │
│ │
│ ~~~~∿~~~~∿~~~~ ▁█▁█▁▁█▁█▁ │
│ 연속적인 신호 0과 1의 불연속 신호 │
│ (음성, 자연의 소리) (컴퓨터 데이터) │
│ │
└─────────────────────────────────────────────────────────────────┘컴퓨터는 0과 1만 이해할 수 있다
2. 비트 (bit)
정보를 나타내는 최소 단위 (Binary Digit)
┌───────────────────────────────────────┐
│ 1 bit │
│ │
│ ┌───┐ ┌───┐ │
│ │ 0 │ or │ 1 │ │
│ └───┘ └───┘ │
│ │
│ (전기 OFF) (전기 ON) │
│ (거짓) (참) │
└───────────────────────────────────────┘비트로 표현할 수 있는 가짓수
| 비트 수 | 표현 가능 수 | 경우의 수 |
|---|---|---|
| 1 bit | 0, 1 | 2개 (2¹) |
| 2 bit | 00, 01, 10, 11 | 4개 (2²) |
| 3 bit | 000 ~ 111 | 8개 (2³) |
| 4 bit | 0000 ~ 1111 | 16개 (2⁴) |
| 8 bit | 00000000 ~ 11111111 | 256개 (2⁸) |
n bit로 2ⁿ개의 서로 다른 값을 표현 가능
3. 바이트 (Byte)
8개의 비트를 모아 하나의 단위로 표현
┌─────────────────────────────────────────────────────────────────┐
│ 1 Byte = 8 bits │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌───┬───┬───┬───┬───┬───┬───┬───┐ │
│ │ 0 │ 1 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1 │ ← 문자 'A' (65) │
│ └───┴───┴───┴───┴───┴───┴───┴───┘ │
│ ↑ ↑ │
│ bit 7 (MSB) bit 0 (LSB) │
│ (Most Significant) (Least Significant) │
│ │
└─────────────────────────────────────────────────────────────────┘데이터 크기 단위
| 단위 | 크기 | 환산 |
|---|---|---|
| 1 Byte | 8 bits | 기본 단위 |
| 1 KB (킬로바이트) | 1,024 Bytes | 2¹⁰ Bytes |
| 1 MB (메가바이트) | 1,024 KB | 2²⁰ Bytes |
| 1 GB (기가바이트) | 1,024 MB | 2³⁰ Bytes |
| 1 TB (테라바이트) | 1,024 GB | 2⁴⁰ Bytes |
| 1 PB (페타바이트) | 1,024 TB | 2⁵⁰ Bytes |
컴퓨터에서는 1024 (2¹⁰) 기준, 저장장치 표기는 1000 기준 (마케팅)
실생활 예시
| 데이터 종류 | 대략적 크기 |
|---|---|
| 영문 1글자 | 1 Byte |
| 한글 1글자 (UTF-8) | 3 Bytes |
| 일반 문서 | 수십 KB |
| MP3 음악 (4분) | 3~5 MB |
| HD 영화 (2시간) | 4~8 GB |
| 4K 영화 (2시간) | 50~100 GB |
4. 문자 코드 (Character Code)
숫자와 문자의 대응표
ASCII 코드
American Standard Code for Information Interchange
┌─────────────────────────────────────────────────────────────────┐
│ ASCII 코드표 (일부) │
├──────────┬──────────┬──────────┬──────────┬──────────┬─────────┤
│ 문자 │ 10진수 │ 2진수 │ 문자 │ 10진수 │ 2진수 │
├──────────┼──────────┼──────────┼──────────┼──────────┼─────────┤
│ 'A' │ 65 │ 01000001 │ 'a' │ 97 │ 01100001│
│ 'B' │ 66 │ 01000010 │ 'b' │ 98 │ 01100010│
│ 'C' │ 67 │ 01000011 │ 'c' │ 99 │ 01100011│
│ '0' │ 48 │ 00110000 │ ' ' │ 32 │ 00100000│
│ '1' │ 49 │ 00110001 │ '\n' │ 10 │ 00001010│
└──────────┴──────────┴──────────┴──────────┴──────────┴─────────┘- 7비트로 128개 문자 표현 (0~127)
- 영문 알파벳, 숫자, 특수문자, 제어문자 포함
- 한글, 한자 등 표현 불가 (영문 기준)
다양한 문자 인코딩
| 인코딩 | 설명 | 특징 |
|---|---|---|
| ASCII | 영문 기본 | 7비트, 128자 |
| EUC-KR | 한글 완성형 | 2바이트, 2,350자 |
| CP949 | 한글 확장 | EUC-KR + 8,822자 |
| UTF-8 | 유니코드 | 가변 길이 (1~4바이트) |
| UTF-16 | 유니코드 | 2~4바이트 |
UTF-8 인코딩
┌─────────────────────────────────────────────────────────────────┐
│ UTF-8 가변 길이 인코딩 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 문자 범위 바이트 수 예시 │
│ ───────────────────────────────────────────────────── │
│ U+0000 ~ U+007F 1 byte 'A' → 0x41 │
│ U+0080 ~ U+07FF 2 bytes 'ñ' → 0xC3 0xB1 │
│ U+0800 ~ U+FFFF 3 bytes '가' → 0xEA 0xB0 0x80 │
│ U+10000 ~ U+10FFFF 4 bytes 😀 → 0xF0 0x9F 0x98 0x80 │
│ │
└─────────────────────────────────────────────────────────────────┘UTF-8: 전 세계 문자를 하나의 인코딩으로 표현, 웹 표준
5. 데이터 전송과 전기 신호
네트워크에서 데이터는 전기 신호로 변환되어 전송
┌─────────────────────────────────────────────────────────────────┐
│ 데이터 전송 과정 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 송신 측 │
│ ┌─────────┐ │
│ │ 'Hi' │ 문자 데이터 │
│ └────┬────┘ │
│ ↓ │
│ ┌─────────────────────────┐ │
│ │ 01001000 01101001 │ 비트열로 변환 │
│ │ ('H'=72) ('i'=105) │ (ASCII) │
│ └────────────┬────────────┘ │
│ ↓ │
│ ┌─────────────────────────┐ │
│ │ ▁█▁▁█▁▁▁ ▁██▁█▁▁█ │ 전기 신호로 변환 │
│ │ (0=LOW, 1=HIGH) │ │
│ └────────────┬────────────┘ │
│ ↓ │
│ ═══════════════════ │
│ 네트워크 │
│ ═══════════════════ │
│ ↓ │
│ 수신 측 │
│ ┌─────────────────────────┐ │
│ │ 전기 신호 → 비트열 │ │
│ │ → 문자 데이터 ('Hi') │ │
│ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘전송 매체별 신호
| 매체 | 신호 형태 | 특징 |
|---|---|---|
| UTP 케이블 | 전기 신호 (전압) | 가장 일반적, 100m 제한 |
| 광케이블 | 빛 신호 | 고속, 장거리, 간섭 없음 |
| 무선 (Wi-Fi) | 전파 (라디오파) | 이동성, 간섭 가능 |
6. 비트 연산
컴퓨터가 데이터를 처리하는 기본 연산
논리 연산
| 연산 | 기호 | 설명 | 예시 |
|---|---|---|---|
| AND | & | 둘 다 1이면 1 | 1010 & 1100 = 1000 |
| OR | | | 하나라도 1이면 1 | 1010 | 1100 = 1110 |
| XOR | ^ | 서로 다르면 1 | 1010 ^ 1100 = 0110 |
| NOT | ~ | 비트 반전 | ~1010 = 0101 |
시프트 연산
왼쪽 시프트 (<<)
00001010 << 2 = 00101000 (10 → 40, ×4)
오른쪽 시프트 (>>)
00101000 >> 2 = 00001010 (40 → 10, ÷4)왼쪽 시프트 n번 = ×2ⁿ, 오른쪽 시프트 n번 = ÷2ⁿ
요약
| 용어 | 핵심 |
|---|---|
| 디지털 데이터 | 0과 1의 집합 |
| 비트 (bit) | 정보의 최소 단위 (0 또는 1) |
| 바이트 (Byte) | 8 bits, 문자 1개 표현 |
| 문자 코드 | 숫자-문자 대응표 |
| ASCII | 영문 기본 코드 (7비트, 128자) |
| UTF-8 | 유니코드, 가변 길이, 웹 표준 |
| 전기 신호 | 비트 정보를 물리적으로 전송 |
단위 환산 (암기)
1 Byte = 8 bits
1 KB = 1,024 Bytes
1 MB = 1,024 KB
1 GB = 1,024 MB
1 TB = 1,024 GB핵심 포인트
1. 컴퓨터는 0과 1만 이해
2. 8 bits = 1 Byte
3. 문자는 문자 코드로 숫자에 대응
4. 네트워크 전송 시 비트 → 전기 신호 변환
5. UTF-8이 현재 표준 인코딩