|
아스키코드(ASCII) & 바이너리코드(Binary) 설명 (IT 용어)
|
아스키(ASCII)코드란 미국의 ANSI(America National Standard Institute : 비영리, 비정부 조직의 단체로 미국 내의 자치적 표준안을 설계하는 표준 단체)가 제정한 코드표입니다.
컴퓨터는 글자 못 알아 본다고 하였지요? 그래서 자주 사용하는 영문자의 대문자와 소문자, 문장 기호, 특수 문자를 포함한 100여개의 문자를 미리 특정번호에 할당해 놓았지요. 그리고는 필요할때마다 이 번호보고 해당 문자를 컴퓨터가 인식하는 것입니다. 이때의 모든 컴퓨터에 적용될 표준코드표가 바로 아스키코드입니다. 아래에 아스키코드표를 마련했습니다.
문장기호 !가 33번에서 시작되는거 보이시죠? 왜 1번부터 시작하지 않냐면요 1번부터 32번까지는 모니터나 프린터를 제어하는 제어문자가 할당되어 있기 때문입니다.
영문자중 대문자 A는 65번으로 할당되어 있는것이 보일겁니다.
만약 이러한 문자번호할당에 표준코드표가 없다면 어떻게 될까요? 어떤 회사에서 만든 컴퓨터에서는 A를 65번에 대응하고 또 어떤 회사에서는 82번에 대응해서 사용한다면 두 컴퓨터간의 문서교환이 제대로 이루어지겠습니까? 아주 희한하게 되겠지요. 여기서 A가 저쪽 컴퓨터에서는 R로 보일테니 말입니다.
그래서 코드세트 표준화가 필요하게 된것이고 이것을 주도할 단체가 필요하게 되었지요. 이것이 ANSI라는 단체가 ASCII라는 코드를 개발한 배경입니다. 여기서 지정한 문자세트가 바로 위의 아스키(ASCII)코드, American Standard Code for Information Interchange 글자 그대로 정보교환을 위한 미국 표준 코드라는 뜻입니다
위의 아스키코드표를 보시면 마지막 번호가 127번으로 끝나는게 보이시죠? 즉 영문자의 대문자와 소문자, 문장 기호, 특수 문자를 다 합쳐도 127개면 충분하다는 것입니다.
127번까지라... 이진수로는 1111111 이 되니까 이진수 7개자리를 사용하는군요. 그래서 0 또는 1를 7개 사용한다는 뜻으로 아스키코드를 7비트 코드라고도 말합니다.(참고 : 비트는 0 또는 1을 말합니다.)
그런데 뭔가 좀 이상하지 않습니까? 컴퓨터는 기본적으로 8비트로 데이타를 처리한다고 하였는데 7비트만 사용한다면 나머지 1개의 비트는 무엇으로 사용하는지 궁금하지 않습니까? 이 한 개의 비트로는 패리티 비트로 이용하거나 다른 목적으로 이용하기도 합니다.
패리티 비트란 코드의 오류를 검출하는 방식이고 다른 목적이라는 얘기는 문자 편집 시스템에서 각각의 목적에 따라 Non-ASCII문자(예: ¤)로 사용되거나 포맷팅 정보(글자에 서식주기)를 표현하는데 사용되기도 한다는 것입니다. 전체로 보아선 결국 8비트를 사용하는 셈이지요.
아예 처음부터 8비트 전체를 사용하는 파일이 있습니다. 바로 그래픽, 동영상, 사운드나 워드프로세스 파일같은 멀티미디어 파일들입니다.
이렇게 8비트영역까지 사용하는 코드를 다른 말로 바이너리(Binary) 코드라고 하고 7비트영역까지만 사용하는 코드를 아스키코드라고 부르지요.
인터넷 초창기엔 당연히 텍스트문서인 아스키코드로 된 파일만이 존재했었습니다. 그러나 시간이 점점 흐르면서 그래픽이나 동영상, 사운드와 같은 멀티미디어 파일(바이너리 코드 : 8비트 파일)이 출현하게 되지요. 여기서 문제가 생기게 되었습니다.
무슨 문제냐면요 초창기의 인터넷망은 텍스트파일(아스키코드로 된 파일)이 전부였기 때문에 기본적으로 7비트 파일만을 전송하는 방식이면 OK 였다는 것이지요. 그러나 바이너리파일이 나타나고 기존의 7비트 전송방식으론 이 파일들을 전송할 수가 없게 되면서 호환성의 문제가 부각되게 되었습니다. 이 호환성의 문제를 해결하기 위해 초기에는 8비트 파일을 전송할때 이 녀석을 7비트로 바꾸어 전송해주는 uuencode방식과 전송받은 후 다시 8비트 파일로 바꾸어 주는 uudecode방식등이 쓰이기도 하였습니다.
즉 아스키코드와 바이너리코드의 구분은 컴퓨터에 표시할 대상을 몇 비트 코드로 나타내느냐에 따른 분류인 것입니다.