프로그래밍 또는 IT를 하다 보면 인코딩, 디코딩, 바이너리, 16진수 등 비슷한 단어들을 많이 듣게 된다
이상하게 항상 헷갈리는 개념이다
그리고 항상 이해했다 뒤돌아 서면 까먹게 된다
잊어버리면 다시 찾아와 볼 수 있게 잘 정리해보려 한다
항상 어떠한 것이 생긴 것에는 이유가 있다
그렇기에 why? 이러한 문자 변환이 필요했는지부터 알아보자
1. 바이너리(Binary)
모든 디지털 데이터는 0과 1, 즉 이진수로 표현되고 이것이 바이너리이다
컴퓨터는 이러한 이진수를 사용하여 모든 종류의 정보를 처리하고 저장한다
우리가 살고 있는 세계에는 많은 언어가 있고, 각 언어는 자신만의 문자를 가지고 있다
예를 들어, 영어에는 A, B, C와 같은 문자가 있고, 한국어에는 ㄱ, ㄴ, ㄷ와 같은 글자가 있다
이런 글자들을 컴퓨터가 이해하려면 0, 1 즉, 바이너리 형태로 변경해 주어야 한다
[예시]
Tistory의 맨 앞의 'T'는 10진수로 84, 바이너리로는 1010100 사람에게 T가 컴퓨터에게는 1010100인 것이다
2. 바이트(Byte)
컴퓨터에서 데이터를 측정하는 기본 단위로, 8비트(bit)가 하나의 바이트를 형성한다
컴퓨터가 정보를 처리할 때 0000000 이렇게 비트가 8개, 8자리의 이진수를 1바이트라고 한다
컴퓨터가 정보를 처리할 때 사용하는 가장 기본단위가 바이트이다
그러면 앞에서 언급한 'T'는 1010100 7자리인데 그럼 이것은 컴퓨터가 정보를 처리할 때는 8bit를 맞춰줘야 하므로
이런 경우는 앞에 0이 붙어 01010100이 된다
3. 아스키(ASCII) 코드
American Standard Code for Information Interchange (ASCII)이며이름에서 알 수 있듯이 미국 표준이며, 1967년에 만들어졌으며 알파벳에 기초한 문자 인코딩 방법이다
예를 들면 어떤 컴퓨터는 A를 1로 어떤 컴퓨터는 A를 2로 정의하다 보면 데이터를 주고받는데 어려움이 있을 것이다
이러한 문제가 발생되지 않게 하기 위해 정보교환을 위한 미국표준코드가 ASCII 코드이다
컴퓨터는 바이트가 기본단위이고 1바이트는 8bit이기 때문에 8자리이다
이는 8개의 자릿수 0과 1이 들어가는 경우의 수로 256개의 경우의 수가 나오고
이는 0(00000000)부터 255(11111111) 사이의 값이 된다
이것을 0~255까지의 숫자를 알파벳과 특수문자에 하나하나 대응시킨 것이 아래의 표이다
아스키코드는 크게 제어문자와 출력 가능 아스키 문자표로 구분되어 있다
위에 표를 보게 되면 실제 0~127로 모든 것이 표현되므로 ASCII 코드는 7비트만 사용하게 됨 셈이다
* 0과 1이 7자리의 수에 들어가는 경우의 수가 2의 7승으로 128이므로
그래서 ASCII 코드를 컴퓨터의 기본단위인 1바이트(8bit) 형태로 맞추게 되면 모두 앞에 0이 있게 된다
이 부분을 잘 기억해 두어야 나중에 문자인코딩이 ASCII 기준을 토대로 바뀌는 부분을 이해할 수 있다
(Base64, MIME 등)
References
https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%8A%A464
https://taehyeki.tistory.com/155
'IT > 문자인코딩' 카테고리의 다른 글
문자 인코딩(Character Encoding) 유니코드, UTF-8, UTF-16, UTF-32, EUC-KR, CP949에 대해서 정리해보자 (0) | 2024.06.01 |
---|---|
인코딩(Encoding)/디코딩(Decoding), MIME, Base64, 쉽게 이해하기 (0) | 2024.05.31 |
URL 인코딩 이란? URL 인코딩에 대해 쉽게 이해하자 (0) | 2024.05.30 |