티스토리 뷰
반응형
인코딩 / 디코딩
- 문자, 기호 <-> 컴퓨터가 이해할 수 있는 값으로 변환하는 과정을 통칭.
- 인코딩: 문자를 0, 1로 변환
- 디코딩: 0, 1로 작성된 값을 문자로 변경
- 이러한 변환 과정은 미리 정해진 기준(= Character Set)을 바탕으로 수행되어야 의미가 있음.
Character set
- 어떤 문자들이 컴퓨터에 저장될 때 어떤 코드로 저장될지 규칙을 정의한 집합이라고 함.
- 아래에 작성할 ASCII, UTF-8 또한 '어떤 문자들이' '어떤 코드로 저장될지(= 인코딩 방식)를 정의하므로 Char set에 포함된다.
- ASCII: '영어'를 '1byte 코드로' 저장
- UTF-8: '모든 문자열을 대표하는 유니코드'를 '1 ~ 4 byte 가변 길이 코드로' 저장
- 여기에 설명이 잘 나와 있다!!!
ASCII
- 7비트 인코딩 방식을 사용하는 문자 인코딩 방식 (또는 Char set) (1비트는 에러 검출용)
- UTF-8의 경우 ASCII와 호환 성을 염두에 둔 영역 설계가 되어 있다.
- ASCII로 작성한 문서는 UTF-8을 적용할 수 있지만, UTF-8로 작성한 문서는 ASCII로는 한정적인 경우에만 확인이 가능할 것
유니코드
- 영문에 최적화되어 있던 ASCII와 달리 전 세계의 모든 문자를 다룰 수 있도록 설계된 산업 표준이다.
UTF-8
- 유니코드를 위한 문자 인코딩 방식(또는 Char set)이며, 한 문자를 나타내기 위해 1 ~ 4바이트를 가변 길이로 사용한다.
- 이 때, 1바이트 영역이 ASCII와 호환된다.
- 때문에 모든 문자를 표현할 수 있지만, 인코딩 된 결과물은 원본보다 더 큰 크기를 가질 수 있다.
참고. DB의 collation
- DB에서 검색 등의 작업을 위해 문자로 저장된 값들을 비교할 때, 정렬할 때 사용하는 규칙의 집합이다.
- CHAR, VARCHAR, TEXT와 같은 데이터 타입의 컬럼에만 적용된다.
- 대소문자를 구별하는 binary 방식과 구별하지 않는 case insensitive(_ci)로 나뉜다.
- mysql의 경우, UTF-8이 3바이트 영역까지만 사용하던 것을 근거로 utf8 char set을 3바이트 기반으로 설계하였다.
- 그러나 emoji 등 신규 추가된 4바이트 문자열에 대응하기 어려운 한계점이 있었고, 이를 대응하기 위해 utf8mb4 char set을 추가하였다고 한다. 또한 호환성 유지를 위해 기존 utf8 시스템을 utf8mb4로로 바꾸어도 값의 손실이 없다고 한다.
- mb는 multi bytes의 약자인 듯 하다.
- 자세한 것은 여기에 잘 나와 있다!
- 그러나 emoji 등 신규 추가된 4바이트 문자열에 대응하기 어려운 한계점이 있었고, 이를 대응하기 위해 utf8mb4 char set을 추가하였다고 한다. 또한 호환성 유지를 위해 기존 utf8 시스템을 utf8mb4로로 바꾸어도 값의 손실이 없다고 한다.
'etc.' 카테고리의 다른 글
[D2] D2 설치 및 간단 사용 (0) | 2023.02.04 |
---|---|
[ffmpeg] 명령어 몇가지 (0) | 2022.01.14 |
[용어] 코덱이란? (짧) (0) | 2022.01.11 |
[Nginx] directive is not allowed here in 및 host not found in upstream 오류 (0) | 2021.10.18 |
리버스 프록시, 포워드 프록시 (1) | 2021.06.02 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Gradle
- dev
- Spring Cloud Config
- Java
- hashicorp
- Database
- shell
- Git
- IntelliJ
- javascript
- eureka
- postgresql
- Linux
- jQuery
- Docker
- Vault
- pgloader
- terraform
- mysql
- AWS IoT
- react
- kotlin
- Node.js
- spring boot
- Puppeteer
- etc
- AWS
- 코딩테스트
- JEST
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함