1. 아스키 코드
아스키는 초창기 컴퓨터에서 사용하던 문자 집합을 의미. 영어의 알파벳, 아라비아 숫자, 일부 특수문자를 포함.
패리티 비트
: 아스키 문자를 표현하기 위해서는 8비트를 사용하는데, 그 중 1비트는 오류검출에 사용된다.
오류 검출에 사용되는 1비트를 패리티 비트라고 함. 나머지 7비트로 표현할 수 있는 정보의 가짓수는 128(2^7)개임.
2. EUC-KR
아스키 코드가 한글을 표현할 수 없다는 단점을 보완하고자 등장한 인코딩 기법.
KS X 1001, KS X 1003이라는 문자집합기반의 인코딩 방식으로, 아스키 문자를 표현할 때는 1바이트, 하나의 한글 글자를 표현할 때에는 2바이트 크기의 코드를 부여한다. 총 2350개 정도의 한글 단어를 표현할 수 있다.
2바이트는 16비트이므로 2^16 만큼 정보를 표현할 수 있다. 2^16 = 16^4이므로 4자리의 16진수로도 표현이 가능하다.
3. 유니코드
EUC-KR이 모든 한글 조합을 표현할 수 없다는 단점을 보완하고자 등장한 인코딩 기법.
유니코드에는 UTF-8, UTF-16, UTF-32라는 3개의 인코딩 방식이 있다. 유니코드의 인코딩 방식은 가변 길이 인코딩 방식으로 인코딩된 결과의 길이가 일정하지 않을 수 있다.
UTF-8
: 1바이트에서 4바이트로 인코딩된. 영어는 1바이트로 표현되므로 아스키와 호환된다.
장점 : 아스키 위주인경우 효율적으로 사용할 수 있다.
단점 : 한글, 이모지가 상대적으로 더 많은 메모리를 차지한다.
UTF-16
: 2바이트에서 4바이트로 인코딩된다.
장점 : 아시아권 문자 처리에 상대적으로 효율적이다.
단점 : 아스키 문자가 2바이트이기에 저장공간이 비효율적이다.
UTF-32
: 모든 문자를 4바이트로 인코딩한다.
장점 : 모든 문자가 동일한 길이이므로 문자 처리와 인덱싱이 간단하다.
단점 : 저장공간이 비효율적이다.
4. base64
바이너리 데이터를 텍스트 기반 시스템에서 효율적으로 변환할 수 있는 인코딩 방식이다. base64는 이미지와 같은 데이터까지 아스키 문자형태로 변환할 수 있기때문에 이미지, 동영상과 같은 파일 변환에 효과적이다.
base64는 인코딩 값을 64진법으로 표현한다는 특징이 있다. 하나의 인코딩 값을 표현하기위해서 64개의 문자를 사용해야한다는 의미이다. 즉, 6비트가 필요하다. 'abc'의 경우 아스키 코드로 변환하면 97,98,99가 24비트로 표현되기때문에 6비트씩 끊어서 변환(YWJj)이 가능하다.
하지만, 'ab'의 경우 16비트이므로 4개의 6비트로 나누어 떨어지지 않는다. 여기서 "패딩"이 활용된다. 나누어 떨어지지 않는 자리에 0으로 채워지는 패딩이 되고, 이는 '='로 인코딩된다. 따라서, YWI= 값을 얻을 수 있다.
패딩 : base64 인코딩 방식에서 문자가 6비트로 나누어떨어지지 않을 때 나머지를 0 값으로 채우는 기법
본 내용은 "이것이 취업을 위한 컴퓨터 과학이다 with CS 기술면접"을 토대로 작성된 내용입니다.
'컴퓨터 과학 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] CPU의 성능을 높이는 방법 (1) | 2025.01.07 |
---|---|
[컴퓨터구조] 동기, 비동기 인터럽트 (0) | 2025.01.07 |
[컴퓨터구조] 레지스터의 정의와 종류 (0) | 2025.01.07 |
[컴퓨터구조] 부동소수점에 대해서 (0) | 2025.01.06 |
[컴퓨터구조] CPU, 메모리, 보조기억장치, 입출력장치 (0) | 2025.01.06 |