파일 크기 단위 변환표
B / KB / KiB / MB / MiB / GB / GiB 변환 요약표. 프로그램 구현, 설정값 확인, 테스트 설계에 활용하세요.
SI 단위계(10진수)와 IEC 단위계(2진수)의 차이
파일 크기를 나타내는 단위에는 국제단위계(SI) 기반의 10진수 단위와 IEC가 제정한 2진수 단위 두 종류가 있습니다. 특히 MB와 MiB의 혼동이 경계값 테스트 실패로 이어지는 경우가 많습니다.
| SI 단위 | 읽는 법 | 바이트 수 | IEC 단위 | 읽는 법 | 바이트 수 | 차이 |
|---|---|---|---|---|---|---|
| KB | 킬로바이트 | 1,000 | KiB | 키비바이트 | 1,024 | +2.4% |
| MB | 메가바이트 | 1,000,000 | MiB | 메비바이트 | 1,048,576 | +4.86% |
| GB | 기가바이트 | 1,000,000,000 | GiB | 기비바이트 | 1,073,741,824 | +7.37% |
| TB | 테라바이트 | 1,000,000,000,000 | TiB | 테비바이트 | 1,099,511,627,776 | +9.95% |
MB → 바이트 변환표
| MB(10진수) | 바이트 수 | MiB(2진수) | 바이트 수 |
|---|---|---|---|
| 0.1 MB | 100,000 B | 0.1 MiB | 104,858 B |
| 0.5 MB | 500,000 B | 0.5 MiB | 524,288 B |
| 1 MB | 1,000,000 B | 1 MiB | 1,048,576 B |
| 2 MB | 2,000,000 B | 2 MiB | 2,097,152 B |
| 5 MB | 5,000,000 B | 5 MiB | 5,242,880 B |
| 10 MB | 10,000,000 B | 10 MiB | 10,485,760 B |
| 20 MB | 20,000,000 B | 20 MiB | 20,971,520 B |
| 25 MB | 25,000,000 B | 25 MiB | 26,214,400 B |
| 50 MB | 50,000,000 B | 50 MiB | 52,428,800 B |
| 100 MB | 100,000,000 B | 100 MiB | 104,857,600 B |
| 256 MB | 256,000,000 B | 256 MiB | 268,435,456 B |
| 512 MB | 512,000,000 B | 512 MiB | 536,870,912 B |
| 1 GB | 1,000,000,000 B | 1 GiB | 1,073,741,824 B |
주요 서비스·도구에서의 단위 해석
| 서비스 / 설정 | 단위 표기 | 실제 해석 | 예 |
|---|---|---|---|
| PHP(php.ini) | M | MiB(2진수) | 10M = 10,485,760 B |
| Nginx(client_max_body_size) | m | MiB(2진수) | 10m = 10,485,760 B |
| Apache(LimitRequestBody) | 바이트 지정 | 바이트(직접 값) | 10485760 = 10 MiB |
| Windows 탐색기 | MB로 표시 | MiB(2진수)로 계산 | 「9.99 MB」= 10,476,544 B |
| macOS Finder | MB로 표시 | MB(10진수) | 「10 MB」= 10,000,000 B |
| Linux(ls -lh) | M | MiB(2진수) | 10M = 10 MiB |
| Gmail 첨부 한도 | 25 MB | MB(10진수) | 25,000,000 B |
| AWS S3 콘솔 | MiB 표시 | MiB(2진수) | 표시 그대로 |
계산식
// 자바스크립트에서의 변환 함수
const UNITS = {
// SI(10進数)
KB: 1_000,
MB: 1_000_000,
GB: 1_000_000_000,
TB: 1_000_000_000_000,
// IEC(2進数)
KiB: 1_024,
MiB: 1_048_576,
GiB: 1_073_741_824,
TiB: 1_099_511_627_776,
};
const toBytes = (value, unit) => value * UNITS[unit];
const fromBytes = (bytes, unit) => bytes / UNITS[unit];
// 예: 10 MiB 를 바이트로 변환
console.log(toBytes(10, 'MiB')); // → 10485760
// 예: 10000000 바이트를 MB 로 변환
console.log(fromBytes(10_000_000, 'MB')); // → 10
console.log(fromBytes(10_000_000, 'MiB').toFixed(2)); // → 9.54
1_000, 'MB' => 1_000_000, 'GB' => 1_000_000_000,
'KiB' => 1_024, 'MiB' => 1_048_576, 'GiB' => 1_073_741_824,
];
return (int)($value * ($units[$unit] ?? 1));
}
echo toBytes(10, 'MiB'); // → 10485760
echo toBytes(25, 'MB'); // → 25000000
경계값 테스트 파일과의 대응
DevLab은 주요 업로드 상한에 맞춘 경계값 테스트 파일을 제공합니다. 대상 시스템의 단위 해석에 맞는 파일을 선택하세요.
- 임계값 테스트 파일 목록 — 각 상한의 바로 아래·정확히·바로 위 파일 세트
❓ 자주 묻는 질문
1GB 는 1000MB 인가요, 1024MB 인가요?
SI 접두어로서의 GB 는 1000MB 입니다. 1024MB 를 가리키는 것은 GiB(기비바이트)이며 2 진 접두어라고 부릅니다. 스토리지 제조사는 SI 로 용량을 표기하고 Windows 는 GiB 값을 GB 로 표시하므로 500GB 드라이브가 465GB 로 보입니다. 차이는 약 7% 이고 테라바이트대에서는 더 벌어집니다.
업로드 상한을 설정할 때 어느 단위로 계산해야 하나요?
설정하는 소프트웨어가 해석하는 단위에 맞추세요. PHP 의 upload_max_filesize 와 nginx 의 client_max_body_size 는 모두 M 을 1024×1024 로 다루므로 사실상 MiB 입니다. 반면 사용자에게 10MB 까지라고 안내하면 10,000,000 바이트로 받아들입니다. 경계에 딱 맞는 파일로 실측해 안내문과 구현을 맞추는 것이 확실합니다.
네트워크 속도의 Mbps 와 파일 크기의 MB 는 무엇이 다른가요?
소문자 b 는 비트, 대문자 B 는 바이트이며 1 바이트는 8 비트입니다. 100Mbps 회선으로 이론상 흘릴 수 있는 것은 초당 12.5MB 정도이고 실제로는 프로토콜 오버헤드로 1 할 전후 떨어집니다. 100MB 파일이라면 이상값으로 8 초, 현실에서는 9〜10 초가 기준입니다.