2026년 03월 08일

💾 컴퓨터가 이해하는 정보 단위

Java Spring Boot
Cover Image

💾 컴퓨터가 이해하는 정보 단위

💡 핵심 질문: 컴퓨터는 0과 1밖에 모르는데, 어떻게 숫자·문자·이미지·영상을 표현할까요? 모든 것은 정보 단위로부터 시작됩니다.


1. 가장 작은 단위 — 비트 (bit)

CPU는 0과 1만 이해할 수 있습니다. 이 0 또는 1 하나를 나타내는 가장 작은 정보 단위가 바로 비트(bit) 입니다.

비트가 늘어날수록 표현 가능한 정보의 수는 2의 거듭제곱으로 증가합니다.

비트 수표현 가능한 경우의 수예시
1 bit2¹ = 2가지0, 1
2 bit2² = 4가지00, 01, 10, 11
3 bit2³ = 8가지000 ~ 111
8 bit2⁸ = 256가지0 ~ 255 (1바이트)
32 bit2³² = 약 43억가지int 범위 (-2,147,483,648 ~ 2,147,483,647)

📐 공식: N비트 → 2ᴺ 가지 정보 표현 가능

0  → 0
1  → 1
   ↑ 1비트로는 딱 2가지

00 → 0
01 → 1
10 → 2
11 → 3
   ↑ 2비트로는 4가지

Java 관점: int는 32비트, long은 64비트입니다. int의 최대값이 약 21억인 이유가 바로 2³¹ - 1 이기 때문입니다. (1비트는 부호 표현에 사용)


2. 프로그램 관점의 정보 단위

비트는 너무 작은 단위입니다. 실제 프로그램은 수백만, 수십억 비트로 이루어져 있으므로 더 큰 단위가 필요합니다.

단위 체계

bit → byte → kB → MB → GB → TB
  ×8    ×1,000  ×1,000  ×1,000  ×1,000
단위크기실생활 감각
1 bit0 또는 1 하나동전 앞/뒤
1 byte8 bit영문자 1글자 ('A' = 1byte)
1 kB1,000 byte짧은 텍스트 파일
1 MB1,000 kBMP3 음악 1곡 (약 3~5MB)
1 GB1,000 MB영화 파일 1편 (약 1~4GB)
1 TB1,000 GB일반 노트북 SSD 용량

📌 1,000 vs 1,024 엄밀히 말하면 두 가지 기준이 존재합니다.

표기기준예시
kB, MB, GB (SI 단위)× 1,000제조사 스펙, 네트워크 속도
KiB, MiB, GiB (이진 단위)× 1,024OS 파일 크기, 메모리 용량

500GB SSD를 사면 OS에서 465GB로 보이는 이유가 바로 이 차이 때문입니다.

Java 관점: 기본 자료형의 크기도 모두 비트 단위로 정의되어 있습니다.

boolean // 1 bit  (논리값)
byte    // 8 bit  = 1 byte  (-128 ~ 127)
short   // 16 bit = 2 byte
int     // 32 bit = 4 byte  (-2^31 ~ 2^31-1)
long    // 64 bit = 8 byte
float   // 32 bit = 4 byte  (부동소수점)
double  // 64 bit = 8 byte  (부동소수점)
char    // 16 bit = 2 byte  (유니코드)

Integer.MAX_VALUE가 2,147,483,647인 것, Long이 훨씬 큰 수를 담을 수 있는 것 — 모두 비트 수의 차이입니다.


3. CPU 관점의 정보 단위 — 워드 (word)

프로그램의 전체 크기를 표현할 때는 GB, MB를 쓰지만, CPU가 실제로 처리할 때는 전혀 다른 단위를 사용합니다.

워드(word)란?

CPU가 한 번의 연산 사이클에서 처리할 수 있는 데이터의 크기

2GB 프로그램이 있어도 CPU는 한 번에 2GB를 처리하지 않습니다.
워드 크기만큼 잘라서 읽고, 처리하고, 또 읽고, 처리하고... 반복합니다.

워드 크기와 CPU 세대

CPU 세대워드 크기표현 가능 메모리 주소
구형 CPU16 bit64 KB
32비트 CPU32 bit최대 4 GB
현대 CPU (주류)64 bit최대 16 EB (사실상 무제한)

💡 왜 32비트 OS에서 RAM을 4GB 이상 못 쓸까요? 32비트 워드로 표현할 수 있는 메모리 주소가 최대 2³² = 4,294,967,296 (약 4GB)이기 때문입니다. 64비트 OS로 넘어오면서 이 한계가 사라졌습니다.

Java 관점: JVM도 32비트/64비트 버전이 따로 존재했습니다. 64비트 JVM에서는 객체 참조(reference)의 크기가 기본 64비트이지만, JVM의 Compressed OOPs(Ordinary Object Pointers) 옵션으로 32비트처럼 압축하여 메모리를 절약하는 최적화를 수행합니다.


4. 핵심 요약

정보 단위 계층 구조

  bit (0 또는 1)
   ↓ × 8
  byte (8 bit) ← 문자 1개, Java boolean/byte의 기본 단위
   ↓ × 1,000
  kB → MB → GB → TB  ← 파일/메모리/저장장치 용량 표현
   
  word ← CPU가 한 번에 처리하는 단위 (현대 = 64 bit)
단위관점핵심 포인트
bit물리적0 또는 1, 모든 정보의 최소 단위
byte프로그램8 bit, 문자 1개의 기본 단위
kB ~ TB프로그램파일·메모리 크기 표현
wordCPUCPU가 한 번에 처리하는 크기 (현대: 64 bit)

← 목록으로 돌아가기