02. 비트와 바이트

02. 비트와 바이트

1. 디지털 데이터란?

컴퓨터가 이해할 수 있는 0과 1의 집합

┌─────────────────────────────────────────────────────────────────┐
│                     아날로그 vs 디지털                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   아날로그 (Analog)              디지털 (Digital)                │
│                                                                 │
│   ~~~~∿~~~~∿~~~~               ▁█▁█▁▁█▁█▁                      │
│   연속적인 신호                  0과 1의 불연속 신호              │
│   (음성, 자연의 소리)            (컴퓨터 데이터)                   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

컴퓨터는 0과 1만 이해할 수 있다


2. 비트 (bit)

정보를 나타내는 최소 단위 (Binary Digit)

┌───────────────────────────────────────┐
│              1 bit                    │
│                                       │
│        ┌───┐        ┌───┐            │
│        │ 0 │   or   │ 1 │            │
│        └───┘        └───┘            │
│                                       │
│     (전기 OFF)    (전기 ON)           │
│       (거짓)       (참)               │
└───────────────────────────────────────┘

비트로 표현할 수 있는 가짓수

비트 수표현 가능 수경우의 수
1 bit0, 12개 (2¹)
2 bit00, 01, 10, 114개 (2²)
3 bit000 ~ 1118개 (2³)
4 bit0000 ~ 111116개 (2⁴)
8 bit00000000 ~ 11111111256개 (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 Byte8 bits기본 단위
1 KB (킬로바이트)1,024 Bytes2¹⁰ Bytes
1 MB (메가바이트)1,024 KB2²⁰ Bytes
1 GB (기가바이트)1,024 MB2³⁰ Bytes
1 TB (테라바이트)1,024 GB2⁴⁰ Bytes
1 PB (페타바이트)1,024 TB2⁵⁰ 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이면 11010 & 1100 = 1000
OR|하나라도 1이면 11010 | 1100 = 1110
XOR^서로 다르면 11010 ^ 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이 현재 표준 인코딩