맥 용량이 Finder와 다르게 보일 때: GB와 GiB 표시 기준 맞추기
클린맥 같은 정리 도구의 용량이 Finder 숫자와 다른 이유는 GB(1000)와 GiB(1024) 차이예요. 표시 기준을 통일하는 방법을 정리했어요.
클린맥 같은 맥 저장공간 정리 도구를 쓰다 보면 한 번쯤 이런 의문이 생겨요. 앱은 남은 용량을 465GB라고 하는데 Finder는 500GB라고 보여주거든요. 어느 쪽이 틀린 걸까요. 둘 다 맞아요. 기준이 다를 뿐이에요.
같은 바이트, 다른 이름
저장장치 제조사와 macOS는 1GB를 1,000,000,000바이트로 계산해요. 애플 공식 문서에도 macOS가 10진 기준으로 용량을 표시한다고 적혀 있어요. 반면 프로그래밍 세계의 오래된 관습은 1024 기준이에요. 이쪽은 정확히 부르면 GiB(기비바이트)이고, 1GiB는 1,073,741,824바이트예요.
차이는 단계마다 2.4%씩 벌어져요. KB에서 GB까지 세 단계를 지나면 약 7.4%가 되죠. 직접 계산해 보면 500GB 디스크는 465.7GiB로 표시되고, 1TB는 931.3GiB가 돼요. 앞에서 말한 465GB가 바로 여기서 나온 숫자예요.
GB(1000 기준, macOS Finder·제조사)와 GiB(1024 기준, 터미널 df -h·Windows 탐색기) 비교
터미널에서도 바로 확인돼요. df -h를 돌려 보니 단위가 Gi로 찍히고, df -H로 바꾸면 Finder와 같은 숫자가 나와요. 옵션 한 글자로 두 기준을 오가는 셈이에요. 비교해 보니 Windows 탐색기는 1024로 계산하면서 라벨은 GB라고 붙이는 쪽이라, 혼란이 거기서 더 커져요.
도구를 만드는 쪽에서 통일하는 법
용량 표시 기능을 직접 만들어 보니 문제는 계산이 아니라 기준이 섞이는 데서 생겼어요. 어떤 화면은 1024로 나누고 어떤 화면은 1000으로 나누면 같은 앱 안에서도 숫자가 어긋나요. 손볼 곳은 3단계면 끝나요.
const UNITS = ["B", "KB", "MB", "GB", "TB"];
function formatBytes(bytes: number, base: 1000 | 1024 = 1000) {
let i = 0;
let value = bytes;
while (value >= base && i < UNITS.length - 1) {
value /= base;
i += 1;
}
const unit = base === 1024 && i > 0 ? UNITS[i].replace("B", "iB") : UNITS[i];
return `${value.toFixed(1)} ${unit}`;
}macOS용 도구라면 기본값을 1000으로 두는 게 맞아요. 사용자가 매일 보는 Finder와 숫자가 같아지니까요. 테스트해 보면 500,000,000,000바이트를 넣었을 때 "500.0 GB"와 "465.7 GiB"가 각각 나오는지만 확인하면 돼요. 이 두 케이스만 통과해도 용량이 다르다는 문의는 대부분 사라져요.
숫자 옆에 기준을 적는 습관
이 문제는 용량에만 있는 게 아니에요. 라이프케어로그에서 만드는 플랜씨 금융계산기도 같은 고민을 해요. 연봉 실수령을 계산할 때 세전인지 세후인지, 월인지 연인지가 빠지면 숫자는 있는데 의미가 없어져요. 사용자는 자기 기준으로 읽어 버리고, 그 순간 "계산이 틀렸다"는 문의가 시작되죠. 용량 정리 도구든 계산기든, 숫자를 보여주는 도구의 첫 번째 일은 기준을 함께 보여주는 거예요.
관련 글
댓글
아직 댓글이 없어요. 첫 댓글을 남겨주세요.