기억장치 표기 용량에 대해서 (GB와 GiB 차이점)

조관희·2025년 3월 24일
0
post-thumbnail

안녕하세요 🙇🏻

기억장치 표기 용량에 대해서 알아보려고 합니다.

A라는 친구는 아래와 같이 말하고 있어요.

💁‍♂️ : “내 컴퓨터는 1GB(기가바이트) 용량이라, 1MB 게임을 1000개 설치할 수 있어!”

라는 기대감으로 1000개의 게임을 처리하려고 하는데, 막상 설치해보니 953개의 게임만 설치할 수 있더라구요.

왜 그럴까요?

이에 대해서 간단히 알아보기 위해서 기억장치 표기 용량에 대한 개념 이해가 필요합니다.

기억장치 표기 용량은 어떻게 표기되나요?

윈도우에서는 위와 같이 931GB 용량을 지원하고 있습니다. 하지만 왼쪽에 실제 용량은 훨씬 크죠?

931,000,000,000 bytes 로 표기되었음을 기대했을거에요.

이유는 윈도우 운영체제는 GB(SI 표기법, SI : 국제단위계, Système international d’unités, 영어: International System Units 약칭 SI) 라고 표시하지만 실제로는 GiB(이진 표기법) 사용해서 생기는 현상입니다.

즉, 원래는 다음과 같은거죠. 931GB는 원래 931GiB 입니다.

GB와 GiB의 차이점은 무엇인가요?

현실세계에서 미터법은 1km(킬로미터)에 얼마인가요? 1000m(미터)이죠? 실제로 컴퓨터는 바이너리 형식으로 저장되며 1KB(킬로바이트)는 1024B(바이트)를 나타냅니다.

하지만 미터법을 파생하여 현실세계에서 보여지는 단위를 이해하기 쉽게! 편의상 1024B(바이트)를 1KB(킬로바이트)라고 부르기 시작했습니다.

조금 어색하죠?

하지만 데이터의 용량이 커진다면 그 격차는 매우 커질거에요!

위에 표시를 보면 알 수 있지만, 단위가 커질 수록 Difference(차이)가 더 커지는 것을 알 수 있습니다.

간단하게 이해를 돕기위해 계산해보죠.

100TB = 100,000,000,000,000바이트

100TiB = 109,951,162,777,600바이트

입니다. 만약에 100TiB 계산되는 컴퓨터에 100TB로 표기해서 90.95TiB 만 사용하게 되어 사용자 입장에서는 9.05TiB 즉, 9,950,580,231,372 바이트를 사용하지 못하지? 라고 느끼게 됩니다.

그러면 혼동을 야기하겠죠?

그래서 IEC(국제 전기 표기 회의)에서는 표준을 개발하여 KiB(키비바이트), MiB(메비바이트), GiB(지비바이트) 등 단위를 개발하였습니다. 단위를 명확하게 표기해서 단위에 맞는 바이트를 제공하는거죠.

근데 일반적으로 GiB 라고 한다면 일반사람들이 1024바이트로 계산해야지~ 라고 생각할까요?

그래서 어떤 단위를 쓰라는거야? GB? GiB?

정답은 없습니다. 하지만 1024 거듭제곱으로 사용하는 컴퓨터 계산방식은 KiB, MiB를 사용하는 것이 올바른 표기방법입니다.

반면, SI(국제단위계) 기준으로는 1000의 거듭제곱으로 사용하는 KB, MB를 사용하는게 맞겠죠.

주로 일반 사용자에게는 GB, MB가 익숙합니다.

그래서 실제로 내부적으로는 GiB단위로 1024 거듭제곱으로 계산하고 보여지는 단위를 GB, MB 인 SI 표기법을 사용합니다.

즉, 앱의 파일크기가 100MB 가 필요하다면 실제로는 100MiB(=104.86MB)를 사용하고 UI적으로 사용자 혼동을 줄이기 위해 MB로 표기하는거에요.

그래서 결론은 다음과 같아요.

  • 사용자나 마케팅용(소비자 친화적 정보): 10진 기준(GB, MB)
  • 기술 문서·시스템 내부 계산(정확성 강조): 2진 기준(GiB, MiB)

이런 내용을 소개하는 이유는?

이사님이 말씀하셨죠.

🤔 : 우리 파일 단위 정해진 규칙이 있었나?

왜 규칙이 필요한가?

조씨가 1GB 하드 드라이브를 구매했다고 가정해보죠.

미터법 측정 단위는 1000MB 저장 용량이 있을 것이라고 예상했고, 조씨는 게임을 1MB 1000개를 설치하길 기대하고 빨리 집에서 1000개를 설치해보려고 했습니다.

그런데! 각 용량이 1MB인 953개의 게임만 설치가 되어지고, 이제 용량은 꽉 차버렸어요..

화가난 조씨는 신고들어가야겠지? 라며 소송합니다.

  • 왜 953개 설치가 되는가?

1GB → MiB 단위로 나타내면,

1,000,000,000 bytes / 1024 / 1024 = 953 MiB

실제 1MB 게임은 1 MiB를 사용했고, 조씨가 구입한 1GB 하드 드라이브는 953 MiB 이므로 953개의 게임을 설치할 수 있었음.

(게임 1MB는 1MiB로 계산되며 보여지기로는 MB를 표기함)

실제로 이러한 소송에 대한 부분이 있었고, 오늘날에도 여전히 혼란은 이어진다고하네요…

https://www.crn.com/news/channel-programs/189602434/western-digital-settles-hard-drive-capacity-lawsuit

위의 문제점으로 우리만의 규칙과 정의가 필요합니다.

위의 그림을 보여드린 이유는 만약에 대용량 파일을 처리할 때, 요금제를 두어 월 1만원 요금제 사용 시, 2KB 제공을 해준다면 첫 번째 방법을 사용했을 경우 유저는 48bytes 손해볼 수 있습니다.

하지만 아래의 방법은 유저가 2000bytes를 기대했겠지만 실제로는 48bytes를 제공하는 입장에서 더 제공해주어서 올바른 동작을 기대할 수 있겠죠.

위의 문제는 미터표기법이 일반적이기 때문에 유저들의 기대에 부합하기 위해서는 후자가 올바르지 않을까라는 생각이 있습니다.

즉, 파일 단위를 보여줄 때, 1024(이진 표기법, KiB)로 나눌 것인가? 1000(SI 표기법, KB)로 나눌 것인가? 를 정하면 좋을 것 같아요.

프로젝트를 진행하면서 파일의 수는 많아지고 용량을 차지하고 있어서 이러한 부분을 우리만의 정책을 만들어 약속하는 것은 어떨까요?

Ref.


https://www.ibm.com/docs/en/storage-insights?topic=overview-units-measurement-storage-data

https://namu.wiki/w/기억장치/표기 용량과 실제#s-3

https://massive.io/ko/file-transfer/gb-vs-gib-whats-the-difference/

profile
Allright!

0개의 댓글

관련 채용 정보