💙 배경지식
컴퓨터 내부는 전기 신호로 작동하는 스위치인 트랜지스터가 존재
전기 신호가 있으면 1, 없으면 0
즉, 컴퓨터는 트랜지스터를 통해 사용자가 입력한 데이터를 0과 1로 처리
비트 : 0과 1로 표현하는 최소 단위 / 바이트(8비트) : 정보를 표현하는 기본 단위
A. 아스키코드(ASCII)
1. 아스키코드란?
a. 정의
7비트 인코딩, 0부터 127까지의 정수값을 갖고 이 128개의 정수값에 각각 0과 1의 숫자 조합으로 대응시킨 문자 인코딩 방식
컴퓨터는 2진수밖에 인식하지 못하므로 문자도 숫자로 표현해야 인식
따라서 어떤 문자를 어떤 숫자에 대응시킬 것인가에 대한 약속이 필요
이러한 약속 중에서 가장 많이 사용되는 것이 바로 아스키코드(ASCII)
💙 8비트가 아니라 7비트인코딩인 이유
나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문
b. 개발 이유
초기 컴퓨터 및 통신 시스템에서 텍스트 데이터를 표현하고 처리하는 데 사용하기 위해 개발
c. 사용하는 곳
초기 컴퓨터 및 통신 장비에서 주로 사용되었으며, 여전히 컴퓨터 프로그래밍, 데이터 통신 및 특정 하드웨어 및 소프트웨어에서 사용
2. 아스키코드의 범위
영어 알파벳 대문자 및 소문자, 숫자, 특수 문자(예: !, @, #, $ 등)와 일부 제어 문자(예: 줄 바꿈, 탭, 캐리지 리턴)를 포함
a. 제어 문자 (Control Characters)
0부터 31까지의 값은 제어 문자로 사용
프린터 제어, 문자 제어 및 특수 명령과 같은 특별한 기능을 수행하는데 사용
ex. 값 10은 줄 바꿈을 나타내고, 값 27은 이스케이프(Escape) 문자로 사용
b. 출력 가능한 문자 (Printable Characters)
32부터 126까지의 값은 출력 가능한 문자와 기호
영문 알파벳, 숫자, 특수 기호 (예: !, @, #, $ 등), 공백 등이 포함
c. 삭제 문자 (Delete Character)
값 127은 삭제 문자로 사용
3. 아스키코드의 특징과 역할
a. 문자와 컴퓨터 상호 작용
키보드 입력을 컴퓨터가 이해하고 처리할 수 있는 문자로 변환
👉 사용자와 컴퓨터 간의 상호 작용이 가능하며, 컴퓨터에서 텍스트 처리와 편집이 용이
b. 문자와 숫자의 표준화
문자와 기호를 7비트 이진 숫자로 표현하므로 다양한 컴퓨터 시스템 간에 일관된 방식으로 문자를 표현
👉 이는 정보를 공유하고 데이터를 교환할 때 매우 중요
c. 데이터 저장과 전송
텍스트 문서, 이메일, 웹 페이지 등을 컴퓨터에서 저장하고 전송하는 데 사용
👉 텍스트 기반 데이터의 호환성을 보장
d. 역사적인 이유
컴퓨터 및 통신 기술의 초기 개발 단계에서 만들어져 많은 시스템 및 소프트웨어에서 이를 계승
e. 특수 기호와 제어 문자
특수 기호 및 제어 문자도 포함하고 있어, 프로그래밍, 통신 및 데이터 처리 작업에서 유용하게 사용
B. 유니코드
1. 유니코드란?
a. 정의
전세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 처리하기 위한 국제적인 문자 인코딩 표준
b. 개발 이유
텍스트 데이터의 국제화와 다국어 환경에서의 상호 운용성을 향상시키기 위해 개발
처음엔 각 언어나 문자 집합마다 별도의 문자 인코딩이 개발되었는데, 이로 인해 혼란과 호환성 문제가 발생했음
ex. 서로 다른 언어를 함께 표현하거나 교환하기 어려움
또한 인터넷의 발전으로 다국어 텍스트를 처리할 필요가 많아져 개발하게 됨
2. 유니코드의 특징과 역할
a. 모든 문자 포함
유니코드는 전 세계의 모든 문자를 포함(라틴 알파벳, 그리스 문자, 키릴 문자, 아라비아 문자, 한자, 히브리 문자, 이모지 등)하는 목표를 가지고 있음
b. 일관성
모든 문자에 고유한 코드 포인트(유니코드 코드 포인트)를 부여해 문자를 식별
c. 다국어 지원
다국어 환경에서의 텍스트 처리를 위해 설계, 여러 언어와 문자 스크립트 간의 혼합 사용을 지원
d. 다양한 인코딩 방식
다양한 인코딩 방식을 통해 텍스트를 표현, 대표으로 UTF-8, UTF-16, UTF-32
위 방식들은 서로 다른 크기의 코드 유닛을 사용함
e. 확장성
유니코드는 지속적으로 확장되며, 새로운 문자와 기호를 추가하기 위한 작업이 지속적으로 이루어짐
f. 역할
컴퓨터 시스템, 소프트웨어, 웹 페이지, 데이터베이스 및 다양한 디지털 커뮤니케이션에서 국제적으로 사용
다국어 환경에서 텍스트를 표현하고 교환하는 데 필수적
다양한 언어와 문화를 포용하고, 글로벌 커뮤니케이션을 원활하게 지원하는 데 중요한 역할
3. 유니코드의 종류
a. UTF-8(Unicode Transformation Format - 8-bit)
1) 가변 길이 문자 인코딩 방식
문자마다 1바이트에서 4바이트까지 사용
- 아스키 문자(0부터 127까지)는 UTF-8에서 1바이트로 표현 (기존의 아스키 코드와 완벽하게 호환)
- 다국어 텍스트에서는 필요에 따라 더 많은 바이트(가변 길이)로 표현
2) 메모리 사용
대부분의 텍스트에서 아스키 문자가 주를 이루는 경우에 메모리를 더 효율적으로 사용
= 다국어가 많으면 비효율적
3) 사용하는 곳
- 대부분의 웹 페이지, 텍스트 파일, 이메일 등에서 사용
- 다국어 텍스트를 처리하거나 웹 애플리케이션을 개발할 때 널리 사용
b. UTF-16(Unicode Transformation Format - 16-bit)
1) 고정 길이 문자 인코딩 방식
모든 문자를 16비트(2바이트)로 표현 (모든 문자에 대해 2바이트 또는 4바이트를 사용)
- BMP(Basic Multilingual Plane) 내의 문자(0x0000부터 0xFFFF까지) : 2바이트로 표현, 이는 아스키 문자와 아스키 호환 문자를 제외한 대부분의 문자를 포함
- Supplementary Plane 내의 문자(0x010000부터 0x10FFFF까지) : 4바이트로 표현, 주로 희귀한 언어 및 특수 문자
2) 메모리 사용
다국어가 많으면 효율적 = 아스키 문자가 많으면 비효율적
UTF-8보다 더 많은 저장 공간을 요구하며, 문자열의 길이를 계산할 때 주의가 필요함
3) 사용하는 곳
- 윈도우 운영 체제에서 내부적으로 사용
- 또한, 모든 문자가 2바이트로 표현되기 때문에 고정 길이가 필요한 경우나 특정 다국어 환경에서 사용
출처 : https://bentist.tistory.com/38
https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C
'자료구조와 알고리즘 > etc' 카테고리의 다른 글
정보의 처리단위 word와 레지스터 (0) | 2023.09.09 |
---|---|
🌐 [Algorithm] 알고리즘 공부에 앞서 사이트 찾기 (0) | 2023.08.10 |