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


컴퓨터를 공부하다보면 비트(bit)바이트(Byte) 에 대해서 들어보게 되는데 이번 포스팅에선 비트(bit)와 바이트(Byte)에 대한 간단한 개념 설명 및 실제 사례 등을 알아보고자 한다.

사람과 사람간에 의사소통을 하기 위해 언어가 필요하다면 컴퓨터도 장비간에 의사 소통을 하기 위해 필요한 언어같은 것이 있다. 그 하나의 예가 바로 2진수(또는 비트(bit)) 이다.

  • 비트(bit)

비트(bit)란 binary digit의 약자로 컴퓨터에서 사용되는 최소단위이며 2진수로써 1 또는 0의 값을 가진다. 이를 컴퓨터와 연관시켜보면 컴퓨터는 전원을 이용한 기계이기 때문에 전원이 On 되었을 때 혹은 전원이 Off 되었을 때 이렇게 두 가지 상태만을 감지할 수 있다. 이것을 간단히 2진수로서 표현이 가능한데, 바로 1과 0이다. 좀 더 자세하게 말하면 컴퓨터는 단순히 데이터를 저장할 메모리와 이를 처리하는 연산장치, 그리고 입출력 장치로 구성되어 있는데 데이터를 저장할 메모리 소자나 데이터를 처리하는 소자가 충전(On) 혹은 방전(Off)되거나 하는 상태를 기점으로 1과 0이 세트되는 것이다.

  • 바이트(Byte)

컴퓨터는 일반적으로 8개 단위의 비트(8bit)를 하나의 그룹으로 사용하는데 이를 바이트(Byte)라고 한다. 1Byte = 8bit이고 1바이트에 On/Off 상태(즉, 1과 0)를 조합하여 나타낼 수 있는 수는 00000000 ~ 11111111 즉, 총 256 (2^8)개가 되기 때문에 1바이트(Byte)는 0부터 255 까지 값을 나타낼 수 있다. 또한 바이트(Byte)로 ASCII 코드와 같은 데이터 문자를 표현(영문, 숫자는 한 글자당 1Byte, 한글, 한자는 한 글자당 2Byte)하기도 한다.



보통 bit와 Byte는 모두 앞 글자가 b로 시작하기 때문에 비트는 소문자 b, 바이트는 대문자 B로 표기한다. 필자도 이 포스팅에선 비트는 b, 바이트는 B로 표현을 하겠다. 비트(bit) 와 바이트(Byte)의 개념을 알아 봤으니 흔히 볼 수 있는 실제 건물의 인터넷 속도와 데이터 전송 속도에 대해 알아보도록 하자. 어떤 집이 K사 100M 상품을 사용하고 있는데 실제 데이터 다운로드 시에 100M 속도가 나오지 않는다. 왜 그런걸까?

ISP(인터넷 서비스 업체)에서 100M라고 말하는 것은 실질적으로 100Mbps를 말하는데 이는 Byte 단위가 아닌 bit 단위를 나타내는 것이다. 즉, bps는 bit per second로 초당 전송되는 비트를 의미한다. 하지만 우리가 일반적으로 컴퓨터에서 데이터 파일을 나타내는 단위는 Byte로 표현이 된다. 따라서, 데이터 파일을 전송 시(다운로드, 업로드 등) 이를 실제 파일 전송 단위인 Byte로 변환해보면 100Mbps = 12.5MBps 즉, 초당 12.5MB라는 전송 속도가 나오게 되는 것이다. 물론 실제 전송시에는 이처럼 이론상의 속도가 나올수도 있지만 네트워크 대역폭, 혼잡도, 장비 성능 등 여러가지 변수들에 의해 속도가 달라질 수는 있다.

정리하면

- 비트(bit) : 컴퓨터에서 사용하는 가장 작은 데이터 단위로 하나의 비트는 2진수 1 또는 0으로 표현되어
  데이터를 처리, 저장, 전송 할 때 사용된다.
  
- 바이트(Byte) : 데이터 파일의 크기, 디스크 또는 그 외 저장 매체의 공간, 그리고 네트워크를 통하여 
  전송 되는 데이터의 양을 표현하는데 사용 되는 측정 단위이다. 1Byte = 8bit로도 표현된다.
  
- bps(bit per second) : 초당 비트 수이며, 통신 기기의 속도를 나타낸다.



참고 블로그 : http://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1%ED%8E%B8-Bit-%EC%99%80-Byte-%EC%B0%A8%EC%9D%B4%EC%A0%90?category=702276


이전글: [MySQL] ERROR 2002 (HY000) : Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 다음글: [MySQL] ERROR 1242 (21000) : Subquery resturns more than 1 row