동일한 파일 용량이 다르게 표시되는 이유

새로 산 외장 하드를 컴퓨터에 연결했을 때, 혹은 친구에게 받은 파일을 내 컴퓨터에 저장했을 때 고개를 갸웃거린 적이 있으신가요? 분명 1TB라고 적혀 있는 하드디스크를 샀는데 컴퓨터에서는 931GB로 표시되거나, 1MB짜리 텍스트 파일을 복사했는데 내 컴퓨터에서는 용량이 더 커져 있는 마법 같은 상황 말이죠.

“설마 불량품을 산 건 아닐까?”, “바이러스에 걸려 파일이 변조된 건 아닐까?” 하고 걱정하셨던 분들이 계실 텐데요. 결론부터 말씀드리면 이는 지극히 정상적인 현상입니다. 컴퓨터가 데이터를 계산하는 방식과 우리가 숫자를 세는 방식이 서로 다른 언어를 사용하기 때문에 발생하는 재미있는 오해일 뿐이죠. 오늘은 이 미스터리한 숫자 차이 뒤에 숨겨진 컴퓨터 공학의 원리, 진법의 차이와 클러스터(Cluster)의 개념에 대해 아주 쉽고 자세하게 알아보겠습니다.

1. 제조사와 운영체제의 동상이몽 : 10진수와 2진수의 전쟁

가장 먼저 짚고 넘어가야 할 것은 저장 장치 제조사와 윈도우 운영체제 사이의 계산법 차이입니다. 이 차이는 파일 용량이 다르게 보이는 가장 큰 원인 중 하나입니다.

우리가 일상생활에서 사용하는 숫자는 10진수입니다. 1km는 1,000m이고, 1kg은 1,000g이죠. 하드디스크나 SSD, USB 메모리를 만드는 제조사들도 이 10진법을 따릅니다. 그들에게 1KB는 정확히 1,000Byte입니다.

  • 제조사 기준 : 1KB = 1,000 Byte, 1MB = 1,000,000 Byte

하지만 컴퓨터, 즉 윈도우 운영체제는 0과 1밖에 모르는 2진수 세상에 살고 있습니다. 컴퓨터에게 1,000이라는 숫자는 딱 떨어지는 숫자가 아닙니다. 컴퓨터는 2^10인 1,024를 1KB의 기준으로 삼습니다.

  • 윈도우 기준 : 1KB = 1,024 Byte, 1MB = 1,048,576 Byte

이 미세한 차이는 용량이 커질수록 눈덩이처럼 불어납니다. 제조사가 “이건 1TB(1조 바이트) 제품입니다”라고 내놓아도 윈도우는 이걸 1,024로 세 번 나누어 계산합니다. 그 결과 약 931GB라는 숫자가 나오게 되는 것이죠. 사실 국제표준(IEC)에서는 이를 구분하기 위해 1,024 단위를 GiB(기비바이트)라고 부르기로 했지만 윈도우는 여전히 관습적으로 GB라는 단위를 쓰고 있어 혼란이 계속되고 있습니다.

2. 파일의 진짜 크기는? 크기 vs 디스크 할당 크기

파일 속성 창을 열어보면 더 헷갈리는 정보가 나옵니다. 바로 크기디스크 할당 크기가 서로 다른 값을 보여주기 때문입니다. 보통 ‘디스크 할당 크기’가 더 큰 경우가 많습니다. 왜 파일은 하나인데 크기는 두 개일까요?

이것을 이해하려면 컴퓨터가 데이터를 저장하는 최소 단위인 ‘클러스터(Cluster)’를 알아야 합니다. 하드디스크를 거대한 벌집이라고 상상해 보세요. 운영체제는 데이터를 저장할 때 이 벌집 구멍(클러스터) 하나하나에 데이터를 채워 넣습니다. 윈도우의 기본 파일 시스템인 NTFS의 경우, 보통 클러스터 하나의 크기는 4KB(4,096바이트)입니다.

여기서 중요한 규칙이 있습니다. “하나의 클러스터에는 하나의 파일 조각만 들어갈 수 있다.”

만약 여러분이 메모장에 “안녕”이라는 두 글자를 적어 저장했다고 가정해 봅시다. 이 파일의 실제 크기는 고작 4바이트입니다. 하지만 컴퓨터는 이 4바이트짜리 파일을 저장하기 위해 4,096바이트짜리 클러스터 하나를 통째로 내어줍니다. 아주 작은 사탕 하나를 담기 위해 거대한 택배 박스를 쓰는 셈이죠.

  • 크기 : 파일의 실제 데이터 양 (4바이트)
  • 디스크 할당 크기: 파일이 실제로 차지하고 있는 물리적 공간 (4,096바이트)

이때 낭비되는 공간(4,092바이트)을 전문 용어로 ‘슬랙 공간’이라고 합니다. 파일 개수가 수만 개, 수십만 개로 늘어나면 이 슬랙 공간들이 모여 무시 못 할 용량 차이를 만들어냅니다. 이것이 바로 파일의 용량이 다르게 표시되는 두 번째 이유입니다.

3. 파일 시스템에 따른 오버헤드

세 번째 이유는 저장 장치가 사용하는 파일 시스템의 종류(FAT32, NTFS, exFAT)에 따라 데이터를 관리하는 방식이 다르기 때문입니다.

도서관에서 책을 찾으려면 책의 목록이 적힌 카드가 필요하듯이, 컴퓨터도 파일이 어디에 있는지 기록해 두는 ‘장부’가 필요합니다. 윈도우의 NTFS 파일 시스템은 보안 기능, 권한 설정, 파일 압축 등 다양한 기능을 제공하기 때문에, FAT32 같은 단순한 시스템보다 관리용 데이터(메타데이터)를 더 많이 기록합니다.

따라서 똑같은 파일을 FAT32로 포맷된 USB에서 NTFS로 포맷된 외장 하드로 옮기면, 미세하게나마 디스크 할당 크기가 달라질 수 있습니다. 이는 파일 자체가 변한 것이 아니라, 그 파일을 담고 관리하는 ‘그릇’의 두께가 달라졌기 때문입니다.

4. 압축 파일과 희소 파일의 반전

드물지만 반대로 ‘크기’보다 ‘디스크 할당 크기’가 더 작은 경우도 있습니다. 이는 윈도우의 파일 압축 기능을 사용했거나 희소 파일일 때 발생합니다.

  • NTFS 압축 : 사용자가 속성에서 ‘내용을 압축하여 디스크 공간 절약’을 체크하면, 운영체제는 파일을 실시간으로 압축해서 저장합니다. 실제 데이터는 100MB지만, 디스크에서는 50MB만 차지할 수 있는 것이죠.
  • 희소 파일 : 데이터의 대부분이 ‘0’으로 채워진 파일(주로 가상 머신 이미지나 데이터베이스 파일)의 경우, 운영체제는 0인 부분은 실제로 저장하지 않고 “여기는 비어 있음”이라는 정보만 기록합니다. 덕분에 엄청난 용량을 절약할 수 있습니다.

숫자의 거짓말에 속지 마세요

정리하자면, 파일 용량이 다르게 보이는 것은 컴퓨터의 고장이 아닙니다. 그것은 10진수와 2진수의 계산법 차이, 데이터를 효율적으로 관리하기 위한 클러스터 구조, 그리고 파일 시스템의 특성이 만들어낸 자연스러운 결과입니다.

이제 누군가 “왜 1TB 하드를 샀는데 용량이 적지?”라고 묻거나 “파일 크기가 왜 제각각이야?”라고 묻는다면, 자신 있게 설명해 주세요. 컴퓨터는 아주 꼼꼼한 정리 정돈 규칙을 가지고 있고, 우리는 그 규칙에 따라 보여지는 숫자를 보고 있을 뿐이라고 말이죠. 이 차이를 이해하는 것이야말로 진정한 컴퓨터 고수로 거듭나는 첫걸음입니다.

지금까지 ‘토니노드의 글’ 이었습니다. 긴 글 읽어주셔서 감사합니다!