UTF-8이란 무엇인가?
UTF-8은 가장 많이 사용되는 가변 길이 유니코드 인코딩이다.
코드 페이지는 65001로 UTF-8로 표현 가능한 최대 길이는 최대 6바이트지만 다른 인코딩과의 호환을 위해 4바이트까지만 사용한다.
UTF-8은 전 세계 모든 글자들을 한꺼번에 표기할 수 있다. 영문/숫자/기호는 1byte 한글 한자 등은 3 byte로 표현한다.
UTF-8은 가변 4바이트지만 전세계 모든 문자는 3바이트가 안되므로 공간, 속도적 효율을 위해서 uft-8은 가변 3바이트로 설계가 되어 있다.
그래서 UTF-8의 별칭은 utf8mb3이다.
utf8mb4란 무엇인가?
위에서 말했듯이 UTF-8은 공간, 시간적 효율을 위해 가변 3byte로 설계가 되어 있다.
MySQL 5.5.3부터는 utf8mb4 문자 세트가 문자 당 최대 4바이트를 사용하여 일반 문자 뿐만 아니라 이모티콘과 같은 보조 문자를 지원한다.
MariaDB 역시 5.5 버전부터는 utf8mb4를 지원한다.
utf-8의 경우 이모지를 사용하면 문자가 깨져서 저장되는 이슈가 존재하므로 utf8mb4를 권장한다.
My SQL 문서에서는 이렇게 말한다.
utf8[/utf8mb3]이라는 문자 집합은 문자당 최대 3바이트를 사용하며 BMP 문자만 포함합니다. MySQL 5.5.3부터 utf8mb4 문자 세트는 문자 당 최대 4 바이트를 사용하여 보조 문자를 지원합니다.
- BMP 문자의 경우 utf8[/utf8mb3] 및 utf8mb4는 동일한 저장 특성(동일한 코드 값, 동일한 인코딩, 동일한 길이)을 갖습니다.
- 보충 문자의 경우 utf8[/utf8mb3]은 문자를 전혀 저장할 수 없지만 utf8mb4는 문자를 저장하기 위해 4바이트가 필요합니다. utf8[/utf8mb3]은 문자를 전혀 저장할 수 없으므로 utf8[/utf8mb3] 열에 보조 문자가 없으며 이전 버전의 MySQL에서 utf8[/utf8mb3] 데이터를 업그레이드할 때 문자 변환 또는 데이터 손실에 대해 걱정할 필요가 없습니다.
출처
MySQL - MySQL에서 utf8mb4와 utf8 문자 집합의 차이점은 무엇입니까? - 스택 오버플로 (stackoverflow.com)
MariaDB/MySql 다국어 지원(utf8, utf8mb4) (tistory.com)
'[AWS] > AWS 기타' 카테고리의 다른 글
npm이란 무엇인가? (yarn과의 차이점) (1) | 2022.10.11 |
---|---|
[AWS] CLI 통해서 CloudFront 무효화 생성하기 (0) | 2022.10.04 |
virtualbox 사용하는 방법 (0) | 2022.10.04 |
[MariaDB / MySQL] 테이블 이름 대소문자 변경 (0) | 2022.09.28 |
[AWS] AWS SMTP 포트 제한 제거 방법 (0) | 2022.09.27 |
[AWS] SNS를 이용해서 SQS 및 EMAIL로 메세지 보내기 (0) | 2022.09.26 |
[AWS] SQS FIFO란 무엇인가? (0) | 2022.09.23 |
[AWS] CloudTrail란 무엇인가? (0) | 2022.09.22 |
댓글