콘텐츠로 건너뛰기

파일 크기 단위 변환표

B / KB / KiB / MB / MiB / GB / GiB 변환 요약표. 프로그램 구현, 설정값 확인, 테스트 설계에 활용하세요.

SI(십진) vs IEC(이진) — 단위마다 격차 확대 KB / KiB KB = 1,000 B KiB = 1,024 B (+2.4%) MB / MiB MB = 1,000,000 B MiB = 1,048,576 B (+4.9%) GB / GiB GB = 10^9 B GiB = 2^30 B (+7.4%) OS는 GiB를 "GB"로 표시하는 경우가 많음
그림: 10^3과 2^10의 차이는 단위마다 확대

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 MB100,000 B0.1 MiB104,858 B
0.5 MB500,000 B0.5 MiB524,288 B
1 MB1,000,000 B1 MiB1,048,576 B
2 MB2,000,000 B2 MiB2,097,152 B
5 MB5,000,000 B5 MiB5,242,880 B
10 MB10,000,000 B10 MiB10,485,760 B
20 MB20,000,000 B20 MiB20,971,520 B
25 MB25,000,000 B25 MiB26,214,400 B
50 MB50,000,000 B50 MiB52,428,800 B
100 MB100,000,000 B100 MiB104,857,600 B
256 MB256,000,000 B256 MiB268,435,456 B
512 MB512,000,000 B512 MiB536,870,912 B
1 GB1,000,000,000 B1 GiB1,073,741,824 B

주요 서비스·도구에서의 단위 해석

서비스 / 설정단위 표기실제 해석
PHP(php.ini)MMiB(2진수)10M = 10,485,760 B
Nginx(client_max_body_size)mMiB(2진수)10m = 10,485,760 B
Apache(LimitRequestBody)바이트 지정바이트(직접 값)10485760 = 10 MiB
Windows 탐색기MB로 표시MiB(2진수)로 계산「9.99 MB」= 10,476,544 B
macOS FinderMB로 표시MB(10진수)「10 MB」= 10,000,000 B
Linux(ls -lh)MMiB(2진수)10M = 10 MiB
Gmail 첨부 한도25 MBMB(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 초가 기준입니다.