본문 바로가기

디스크와 파티션

[디스크 정보] '메가, 기가, 테라, 페타...' 저장 용량의 단위

Ⅰ. 저장 용량의 기본 단위 Byte 그리고 SI Prefix 와 IEC Prefix

저장 장치는 기본적인 용량의 단위로 바이트(Byte)를 사용합니다.

비트(Bit) 와 바이트(Byte)

비트(Bit)란 컴퓨터에서 사용되는 최소의 단위로써 Binary digit 의 약자입니다. 즉, 2진수라는 것으로 0 과 1 로 구분되는 컴퓨터에서 사용되는 최소의 정보 처리 단위입니다. 익히 알다시피 컴퓨터는 전기로 움직이는 전자 제품입니다. 디지털에선 꺼졌다(0) 켜졌다(1) 의 두 가지 경우 밖에 없죠. 이러한 0 과 1 로 표현되는 정보의 처리 단위가 바로 비트입니다. 보통 표시할 땐 소문자 b 로써 표현합니다.

바이트(Byte)란 컴퓨터가 처리하는 정보의 기본 단위입니다. 비트가 0 과 1 두 가지의 경우 밖에 표시하지 못하므로 일정한 단위로 묶어 바이트라고 표시하고 이를 정보 처리의 기본 단위로 사용하고 있습니다. 흔히 8 개의 비트를 하나로 묶어 1 Byte 라고 하고 있으며 이로써 1 Byte 가 표현할 수 있는 정보의 개수는 28 = 256 개가 됩니다.(1 Byte = 8 Bit) 이러한 1 Byte 는 문자를 표현하는 가장 작은 단위로 256 개의 정보로 숫자, 영문자, 특수기호 등을 모두 표현하게 됩니다.(한글과 같은 동양권 문자는 1 바이트가 아닌 2 바이트로 표현하기 때문에 2 바이트 문자라고 표현됩니다.) 거의 모든 저장 장치의 용량을 표시할 땐 이러한 바이트를 기준으로 삼게 됩니다. 보통 표시할 땐 대문자 B 로써 표현합니다.



Prefixes for bit and byte multiples
Decimal
Value SI
1000 k kilo
10002 M mega
10003 G giga
10004 T tera
10005 P peta
10006 E exa
10007 Z zetta
10008 Y yotta
Binary
Value IEC JEDEC
1024 Ki kibi K kilo
10242 Mi mebi M mega
10243 Gi gibi G giga
10244 Ti tebi
10245 Pi pebi
10246 Ei exbi
10247 Zi zebi
10248 Yi yob
하지만 바이트는 굉장히 작은 단위이기 때문에 큰 용량의 파일이나 저장 장치의 용량을 바이트만으로 표현하기엔 부적절 합니다. 그래서 컴퓨터에서도 다른 대부분의 단위가 그러하듯 SI prefix 라는 표준 단위 접두어를 붙임으로써 큰 단위의 수를 보다 간결하게 표현하고 있습니다. 이러한 SI prefix 에서 사용하는 단위는 보통 1,000(103) 배가 기준이 됩니다. 우리가 흔히 길이의 표준 단위인 미터로만 표현하기엔 너무 긴 길이는 킬로를 붙여 킬로미터로 표현하는 것을 생각해 보시면 이해가 빠르실겁니다.[1km = 1,000 m]

이러한 SI prefix 는 사람이 흔히 사용하는 Decimal 즉, 10진수를 기준으로 하는 단위이기 때문에 Binary 즉, 2진수를 기준으로 하는 컴퓨터에 바로 적용하면 약간의 문제가 생기게 됩니다. 그래서 컴퓨터와 같이 2진 단위를 위한 IEC prefix 라는 표준이 존재하고 있습니다. 이러한 IEC prefix 의 단위는 1,024(210) 배가 기준이 됩니다.


그런데 일반적으로 컴퓨터에서 용량을 표현할 땐 IEC Prefix 를 따로 구분하여 사용하는 경우는 흔치 않고 그냥 SI Prefix 를 그대로 사용하고 있습니다. 그냥 1KB 라면 통념적으로 1,024 Byte 로 알아서 1,024 배로 적용하여 사용하고 있는 것이죠. 이는 우리가 사용하는 윈도우에서도 그냥 1,024 Byte 는 1KB 로 표현하는 것을 가장 큰 예시로 들 수 있겠습니다. 이러한 표기법이 워낙에 널리 사용되니 그냥 표준처럼 굳어버린 겁니다. 하지만 엄밀히 SI prefix 표준을 따지자면 1KB 는 1,000 Byte 가 됩니다. 정확하게 IEC prefix 를 사용하여 표현하면 1 KB 는 1KiB 로 표시해야 맞습니다.

이렇듯 10진수 기준의 SI prefix 를 2진수를 사용하는 컴퓨터에 그냥 그대로 적용하여 사용해 버린 결과 원래의 표준인 Decimal 의 1,000 배와 컴퓨터에서 그냥 통념적으로 Binary 에 적용하여 사용하는 1,024 배의 사이에서 표준과 통념이 대립하여 작은 오해가 생길 수 있게 됩니다. 어짜피 우리가 사용하는 1 KB = 1,024 Byte 라는 기준은 통념일 뿐 정확한 표준이 아니기 때문이죠.[물론 이러한 문제를 해결하기 위해 따로 IEC prefix 표준을 만든 것 입니다.] 하지만 컴퓨터에서 SI prefix 를 바이너리에 적용하여 1,000 배가 아닌 1,024 배로 사용하는 것은 워낙에 오랜 시간에 걸쳐 전세계적으로 사용된 덕분에 표준처럼 굳어버렸고 크게 문제가 되진 않고 있습니다.




Ⅱ. 컴퓨터의 저장 용량 단위

아래는 컴퓨터에서 사용하는 용량 단위를 정리한 표 입니다. 표기는 정확한 표준은 아니지만 관례적으로 사용하는 SI prefix  표기법과 표준인 IEC prefix 의 표기법을 함께 표시했습니다. 컴퓨터의 저장 장치에서 사용하는 용량의 단위는 아래와 같습니다.


컴퓨터에서 사용하는 용량 단위
관례적 표기 IEC prefix 내용
이름 기호 이름 기호 2진 기준 값 (Byte)
kilo byte KB kibi byte KiB 210 Byte 1,024 Byte
mega byte MB mebi byte MiB 220 Byte 1,048,576 Byte
giga byte GB gibi byte GiB 230 Byte 1,073,741,824 Byte
tera byte TB tebi byte TiB 240 Byte 1,099,511,627,776 Byte
peta byte PB pebi byte PiB 250 Byte 1,125,899,906,842,624 Byte
exa byte EB exbi byte EiB 260 Byte 1,152,921,504,606,846,976 Byte
zetta byte ZB zebi byte ZiB 270 Byte 1,180,591,620,717,411,303,424 Byte
yotta byte YB yobi byte YiB 280 Byte 1,208,925,819,614,629,174,706,176 Byte

※ 원래 SI prefix 와 IEC prefix 는 K, M, G, T, P, E, Z, Y 와 Ki, Mi, Gi, Ti, Pi, Ei, Zi, Yi 이지만 저장 장치에서 용량을 표기할 때는 Byte 인 B 와 결합하여 표기하기 때문에 B 를 포함하여 표기하였습니다.


각각의 용량은 한 단계씩 넘어갈 때 마다 1,024 배 된다고 생각하시면 됩니다. 즉 1,024 KB = 1 MB 이고 1,024 MB = 1 GB, 1,024 GB = 1 TB, 1,024 TB = 1 PB... 와 같습니다.

IEC prefix 는 우리가 흔히 보지는 못하는데요. 가끔 어떠한 자료에서는 이러한 IEC prefix 를 사용하기도 합니다. 마이크로소프트의 테크넷 자료나 위키피디아의 자료를 보시다 보면 가끔 IEC prefix 를 사용한 자료를 만나게 되는데요. IEC prefix 표기법과 관례적으로 사용되는 SI prefix 표기법을 명확하게 구분하여 사용하는 경우 해당 자료에서 SI prefix 로 표기된 것은 원래 SI prefix 의 계산법인 1,000 배로 계산한 자료일 가능성이 높습니다.

예로 DVD 의 용량을 표기하면서 DVD = 4.7 GB (4.38 GiB) 라는 식으로 자료에 표현되어 있다면 이 때 4.7 GB 는 SI prefix 대로 계산하여 4,700,000,000 Byte 임을 의미합니다. 그리고 이를 정확하게 컴퓨터에서 인식하는 4.38 GiB 도 함께 표시해 준 것 입니다.

이러한 예 이외에 통상의 자료에서 SI prefix 표기만을 사용하여 표현한 경우에는[파워 윈도우즈 블로그를 포함한 대부분의 자료와 운영체제, 프로그램에서는 이와 같이 표기] 우리가 통념적으로 사용하는 2진법 기준의 1,024 배로 계산한 관례적 표기임을 의미합니다.




Ⅲ. SI prefix - 관례적 표기와 정확한 표기 사이의 오차

윈도우에서 표시되는 저장 용량 단위는 관례적인 표기에 따라 SI prefix 로 표기합니다. 1,024 Byte 는 1 KB 로 표기하고 1,024 KB 는 1 MB 로 표기하는 것이지요. 그러나 위에서 이야기 했듯이 SI prefix 표기법은 10진법을 기준으로 하여 1,000 배로 단위가 올라가기 때문에 엄밀하게 표기대로만 따진다면 1 KB 는 1,000 Byte 가 되고 1 MB 는 1,000 KB 가 됩니다.

그래서 이러한 2진법 기준의 1,024 배로 단위가 올라가는 관례적인 계산 방법과 10진법 기준의 1,000 배로 단위가 올라가는 정확한 계산 방법 사이에는 해석에 따라 오차가 생길 수 있습니다. 과연 얼마의 오차가 생길까요? 아래는 2진법(Binary) 기준의 계산과 10진법(Decimal) 기준의 계산 사이의 오차를 정리한 표와 그래프 입니다.

Prefix Bin ÷ Dec Dec ÷ Bin Percentage difference
kilo 1.024 0.9766 +2.4% or ?2.3%
mega 1.049 0.9537 +4.9% or ?4.6%
giga 1.074 0.9313 +7.4% or ?6.9%
tera 1.100 0.9095 +10.0% or ?9.1%
peta 1.126 0.8882 +12.6% or ?11.2%
exa 1.153 0.8674 +15.3% or ?13.3%
zetta 1.181 0.8470 +18.1% or ?15.3%
yotta 1.209 0.8272 +20.9% or ?17.3%


GB(기가바이트) 단위에서는 10진법 기준의 계산법에 비해 2진법 기준의 계산법이 약 6.9% 정도 적어지게 되고 TB 로 넘어가면 무려 약 9% 나 더 적어지게 됩니다.




Ⅳ. 오차는 나의 돈?

그런데 문제는 이러한 저장 용량을 표기하는 것에 있어서 지금까지 컴퓨터와 운영체제에서 관례적으로 사용되어 왔고 모든 이들에게 통념적으로 인식되어 왔던 2진법 기준의 계산법과 원래 SI prefix 에 정의된 10진법 기준의 정확한 계산법 사이에서 자칫 해석에 따라 위와 같은 오해와 오차가 실제로 발생할 수 있다는 겁니다. 그리고 이러한 오해와 오차를 지금까지 실제로 교묘하게 이용해 온 집단이 있습니다. 바로 하드 디스크 제조 업체와 같은 저장 장치 제조 업체들이 그들입니다.

살아있는 놈들이나 죽은 놈들이나 모두 같은 놈들



이러한 하드 디스크 제조 업체들은 그 때까지 모든 컴퓨터 관련 분야에서 관례적으로 2진법 기준으로 계산되어 표기되던 용량의 단위를 아주 정직하고도 과감하게 관례를 버리고 SI prefix 표준에 따라 10진법 기준으로 계산하여 하드 디스크의 용량을 표기하기 시작했습니다.

이렇게 동일한 표기지만 위에서 이야기하였듯 해석에 따라 그 값은 달라지게 되죠. 제조 업체가 출시하는 10진법 기준의 계산에 따른 160 GB 용량의 하드 디스크는 지금까지 우리가 모두 그러한 걸로 믿어 의심치 않던 2진법 기준으로 계산하게 되면 149 GB 밖에 되지 않는 것 입니다. 그리고 실제로 제조 업체가 160 GB 용량이라고 표기한 하드 디스크는 컴퓨터에선 149 GB 로 인식됩니다. 마찬가지로 320 GB 용량의 하드 디스크는 298 GB 이며 640 GB 용량의 하드 디스크는 596 GB 이죠.

테라바이트 급으로 넘어가면 용량의 차이는 더욱 커집니다. 1 TB 용량의 하드 디스크는 927 GB 이며 1.5 TB 용량의 하드 디스크는 1.39 TB 이고 2 TB 용량의 하드 디스크는 1.81 TB 인 것 입니다. 2 TB 용량의 하드 디스크의 경우 무려 용량 차이가 약 200 GB 에 다다르는 것이죠.

이것은 비단 하드 디스크 제조 업체들만의 문제는 아닙니다. USB 플래시 메모리 드라이브를 비롯한 CF, SD 와 같은 플래시 메모리류의 저장 장치를 제조하는 샌디스크, 킹스턴 등과 같은 업체들도 이러한 방식으로 용량을 표기하고 있습니다. 어느 것이나 소비자 입장에선 지금까지 자신이 알던 용량으로 믿고 구매했는데 오차만큼의 차이가 발생하게 되고 그만큼 자신이 손해를 보았다고 느낄 수 밖에 없습니다.


실제로 미국에서는 소비자들이 이러한 것에 불만을 품고 하드 디스크와 플래시 메모리 카드 제조 업체들을 상대로 소송을 건사례도 있습니다.



위의 기사를 통해 보아서도 알겠지만 사실 엄밀하게 따지자면 관련 업체들의 표기법이 문제가 되는 것은 아닙니다. 왜냐하면 그들은 SI prefix 에 의한 정확한 계산법대로 계산하고 표기했을 뿐이며 우리는 그것을 관례적으로 계산되어온 방식으로 계산을 했을 뿐이기 때문입니다. 더불어 컴퓨터의 용량을 표기하는 IEC prefix 라는 GiB(기비바이트) 나 TiB(테비바이트) 와 같은 정확한 표기법도 이미 제정이 되어 사용되고 있는 상태이기 때문이죠.

그러나 캐플이 생각하기에 이러한 제조 업체들에겐 도의적인 책임이 있다고 생각합니다. 비록 SI prefix 의 표기법을 빌려 쓴 것이지만 지금까지 모든 컴퓨터와 운영체제, 프로그램 관련 업체들에서 이러한 관례적인 표기법을 사용해왔고 따라서 사용자들은 거의 대부분이 이러한 표기법에 적응하여 응당 그러한 것이라는 인식이 지배적인 상황이었기 때문이죠. 이와 같은 인식이 대한민국 한 군데도 아니고 전세계적으로 하나의 기정 사실로써 굳어있는 상태에서 애써 굳이 그러하지 않아도 되었던 것을 꿋꿋하면서도 정말 깔끔하고 신속하게 오직 그들만 끝끝내 SI prefix 를 정확하게 적용하여 계산하였다는 것은 표기법의 오차로 인해 발생하는 이익을 위한 것이라고 밖에는 생각할 수 없기 때문입니다.

초창기 마땅한 대안이 없어 SI prefix 의 표기법을 빌려온 것 뿐이고 비록 빌려온 것이지만 모두가 2진법 기준의 계산 방법을 사용하고 있는 상황에서 말이죠. 이러한 내용을 그들 자신도 스스로 알고 있으니 소액의 환불과 함께 10진법으로 계산한 것임을 밝히는 안내문을 적고 새로운 제품을 구매시 5~10% 할인 된 가격으로 구매할 수 있는 화해 안을 제시한 것일 테지요.

※ 램의 경우에는 표기된 용량과 인식되는 용량이 동일합니다. 그 외에 몇 가지 저장 장치의 경우 표기된 용량과 인식되는 용량이 동일하기도 합니다.


저울의 눈금을 속이는 장사치는 3 대가 빌어 먹는다는 말이 있습니다. 그들은 그들 나름대로의 이유로 저장 용량을 표기하였지만 이러한 사실을 몰랐던 소비자들에게 그들의 행위는 저울의 눈금을 속이는 장사치의 행위와 다를 바가 없게 느껴지지 않을까요? 전 충분히 그러한 인식도 가능하다고 생각합니다.

그러니까 얼른 하드 디스크 기술 개발에 박차를 가해서 가격을 사정없이 내려! 그게 니들이 할 일이야!!!




Ⅴ. 부록

1. SI prefix 표

추가로 이 포스팅에서 논란의 중심이 되었던 SI prefix 표를 올려드리도록 하겠습니다. 우리가 일상 생활에서 많이 접할 수 있는 단위들이 잘 정리되어 있습니다.

SI prefixes
Prefix Symbol 1000m 10n Decimal Short scale Long scale Since
yotta Y 10008 1024 1000000000000000000000000 Septillion Quadrillion 1991
zetta Z 10007 1021 1000000000000000000000 Sextillion Trilliard 1991
exa E 10006 1018 1000000000000000000 Quintillion Trillion 1975
peta P 10005 1015 1000000000000000 Quadrillion Billiard 1975
tera T 10004 1012 1000000000000 Trillion Billion 1960
giga G 10003 109 1000000000 Billion Milliard 1960
mega M 10002 106 1000000 Million 1960
kilo k 10001 103 1000 Thousand 1795
hecto h 10002?3 102 100 Hundred 1795
deca da 10001?3 101 10 Ten 1795
10000 100 1 One
deci d 1000?1?3 10?1 0.1 Tenth 1795
centi c 1000?2?3 10?2 0.01 Hundredth 1795
milli m 1000?1 10?3 0.001 Thousandth 1795
micro μ 1000?2 10?6 0.000001 Millionth 1960
nano n 1000?3 10?9 0.000000001 Billionth Milliardth 1960
pico p 1000?4 10?12 0.000000000001 Trillionth Billionth 1960
femto f 1000?5 10?15 0.000000000000001 Quadrillionth Billiardth 1964
atto a 1000?6 10?18 0.000000000000000001 Quintillionth Trillionth 1964
zepto z 1000?7 10?21 0.000000000000000000001 Sextillionth Trilliardth 1991
yocto y 1000?8 10?24 0.000000000000000000000001 Septillionth Quadrillionth 1991
  1. The metric system was introduced in 1795 with six prefixes. The other dates relate to recognition by a resolution of the CGPM.
  2. The 1948 recognition of the micron by the CGPM was abrogated in 1967.