1. 인코딩/디코딩 이란?
데이터를 다른 형식이나 코드로 변환하는 과정입니다.
주로 데이터 크기를 줄이고, 컴퓨터가 이해하기 쉽게 변환합니다.
인코딩으로 데이터를 변환하고 디코딩으로 원문을 구할 수 있습니다.
2. 종류
▶ 아스키 코드
아스키 코드는 미국 표준 코드로 문자를 숫자로 변환하는 코드입니다.
아스키 문자 1개는 1바이트 크기로, 7비트로 문자를 표현하고 1비트는 오류 체크를 위해 사용합니다.
즉, 2^7 = 128 개의 문자 표현이 가능합니다.
아스키 코드는 제어문자, 가시문자로 이루어져 있습니다.
▶ 유니코드
아스키 코드의 제한적인 표현 범위 때문에 유니코드가 등장했습니다.
전세계 모든 언어의 문자에 고유한 번호를 부여하는 국제 표준 코드입니다.
최대 32비트로 문자 1개를 표현합니다.
UTF-8, UTF-16, UTF-32 등 다양한 인코딩 방식이 존재하고 UTF 뒤의 숫자는 비트를 의미합니다.
▶ URL 인코딩 (퍼센트 인코딩)
웹에서 사용되는 URL을 인코딩하기 위해서 사용하는 방식입니다.
URL은 특정한 형식의 문자열만 허용합니다. ( 알파벳 대소문자, 숫자, 일부 특수문자 )
URL 인코딩은 문자열을 인터넷으로 전송 가능한 형식으로 변환합니다. 보통 허용되지 않는 문자는 밑과 같습니다.
:/#[]@!$`()*+,;=%공백
URL 인코딩은 %기호 뒤에 문자의 아스키 코드 16진수 값을 붙여 나타냅니다.
▶ base64 인코딩
base64 인코딩은 이진 데이터를 아스키 문자로 구성된 텍스트로 변환합니다.
64개의 아스키 문자가 인코딩에 사용되어서 이러한 이름이 붙여졌습니다. ( 알파벳 대소문자 52개 + 숫자 10개 + , "+", "/" )
base64는 이진 데이터를 그대로 포함할 수 없이 텍스트만 허용되는 환경에서 이진 데이터를 텍스트 형식으로 나타내기 위해 사용됩니다.
→ 인코딩 방식
1. 이진 데이터를 비트 나열로 표시, 6비트 씩 끊어서 묶기. 6의 배수가 아니면 0을 추가하여 6의 배수로 만듦
2. 각 6비트 묶음을 수로 변환하고 치환
3. 글자 수가 4의 배수가 되도록 문자 '='를 반복해 뒤에 추가하는데 이것을 패딩(padding)이라고 합니다.
** 패딩을 하는 이유는 데이터의 종료를 명확히 하고 , 데이터 구조를 올바르게 파싱하는데 필요합니다.
참고 문헌
https://www.redhat.com/sysadmin/base64-encoding
'knowledge > 기타 지식' 카테고리의 다른 글
Base64 (0) | 2024.05.11 |
---|---|
논리 연산, 비트 연산 (0) | 2024.04.02 |
bit, byte, Byte ordering (0) | 2024.04.02 |
진법 (2) | 2024.04.02 |
컴퓨터 과학(Computer Science)이란? (0) | 2024.04.01 |