[Basic] Unicode와 UTF-8 #18
yunseorim1116
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
유니코드(Unicode)
유니코드(Unicode)는 전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식. 각 문자는 고유한 숫자(코드 포인트)를 가지고 있습니다.
코드 포인트는 U+XXXX 형식으로 나타내며, 예를 들어 대문자 'A'는 U+0041, 한글 '가'는 U+AC00와 같이 나타냅니다.
유니코드는 문자 자체에 대해 고유 번호를 부여하는 "추상적인" 개념이지, 이를 컴퓨터에서 실제로 어떻게 저장하고 전송할지는 따로 정의하지 않습니다.
UTF-8
UTF-8은 유니코드를 *실제로 인코딩(encoding)*하는 방식 중 하나로, 유니코드 문자를 가변 길이 바이트 시퀀스로 인코딩합니다.
즉, 각 문자는
1바이트에서 4바이트
사이의 길이를 가질 수 있습니다.바이트 시퀀스
| 바이트 시퀀스(byte sequence)는 컴퓨터에서 데이터를 표현하는 기본 단위인 바이트의 연속적인 배열을 의미합니다. 각 바이트는 8비트(1바이트)로 구성되며, 이진수로 0과 1로 표현됩니다. 바이트 시퀀스는 다양한 데이터 형식을 표현할 수 있는 방법으로 사용됩니다
* 예시
예를 들어, 다음과 같은 문자가 있다고 가정해봅시다:
'A' → UTF-8 인코딩: 0x41 (1바이트)
'가' → UTF-8 인코딩: 0xEA, 0xB0, 0x80 (3바이트)
이러한 바이트 시퀀스를 사용하여 컴퓨터는 다양한 문자와 기호를 표현하고 처리할 수 있습니다.
1바이트(8비트): ASCII 문자는 UTF-8에서 1바이트로 인코딩됩니다. 예를 들어, 영어 알파벳 'A'는 1바이트(0x41)로 표현됩니다.
2바이트(16비트): 유럽어 확장 문자나 일부 중급 글자들이 2바이트로 인코딩됩니다.
3바이트(24비트): 한글이나 한자 등과 같은 문자는 3바이트로 표현됩니다. 예를 들어 '가'는 UTF-8에서 EAB080으로 인코딩됩니다.
4바이트(32비트): 상위 코드 포인트의 문자나 이모지 등이 4바이트로 인코딩됩니다.
호환성
UTF-8은 기존의 ASCII와 호환되기 때문에, ASCII 문자 집합(영문 알파벳, 숫자, 일부 기호 등)은 UTF-8에서 동일하게 1바이트로 표현됩니다. 이 때문에 UTF-8은 웹을 포함한 많은 시스템에서 기본 문자 인코딩 방식으로 사용됩니다.
장점
UTF-8은 가변 길이 방식이기 때문에, 저장 공간을 절약할 수 있으며, ASCII 기반 시스템과의 호환성이 뛰어납니다.
ASCII(American Standard Code for Information Interchange)
| 텍스트 데이터를 컴퓨터와 통신 장비에서 표현하기 위해 사용되는 문자 인코딩 표준
유니코드와 UTF-8의 관계는 ?
유니코드는 모든 문자에 대해 고유한 코드 포인트를 정의하는 시스템입니다.
UTF-8은 그 유니코드 코드 포인트를 실제 바이트로 인코딩하는 방식입니다. 예를 들어,
유니코드에서 대문자 'A'의 코드 포인트는 U+0041입니다.
이 코드 포인트는 UTF-8로 인코딩되면 *1바이트(0x41)*로 표현됩니다.
즉, 유니코드는 문자와 숫자 간의 맵핑 표준이고, UTF-8은 그것을 저장하고 전송하는 방법입니다.
다른 인코딩 방식과 비교
UTF-16: UTF-16은 유니코드 문자를 2바이트 또는 4바이트로 인코딩하는 방식입니다. UTF-8보다 메모리 사용량이 더 많을 수 있으며, 가변 길이로 인해 사용이 복잡할 수 있지만, 아시아권 문자와 같은 상위 코드 포인트 문자들에 대해 더 효율적일 수 있습니다.
UTF-32: UTF-32는 유니코드 문자를 4바이트로 고정 길이로 인코딩합니다. 모든 문자를 동일한 4바이트로 처리하므로, 구현은 단순하지만, 메모리 사용량이 많아 효율적이지 않기 때문에 잘 사용되지 않습니다.
다양한 언어와 문자: 유니코드와 UTF-8은 영어뿐만 아니라 한글, 일본어, 중국어, 아랍어, 러시아어 등 전 세계의 문자를 표현 가능합니다! (두둥)
웹 표준: UTF-8은 웹 페이지에서 사실상 표준으로 사용됩니다. 전 세계적으로 웹 브라우저, 서버, API 등에서 기본적으로 UTF-8을 지원하고 있으며, 이는 글로벌 웹 환경에서 중요한 역할을 합니다.
한.줄.요.약
유니코드는 문자의 코드 포인트를 정의하는 문자표.
UTF-8은 유니코드를 바이트로 인코딩하는 가변 길이 인코딩 방식.
UTF-8은 저장 공간 절약과 ASCII 호환성 덕분에 매우 널리 사용됨.
https://namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C
https://velog.io/@goggling/유니코드와-UTF-이해하기
Beta Was this translation helpful? Give feedback.
All reactions