-
인코딩/ 디코딩 개념Study/모몽이 공부중 2020. 7. 15. 17:38
컴퓨터는 문자를 인식할 수 없으므로 코드로 변환하여 저장됨. 문자를 코드로 변환하는 것을 인코딩, 코드를 문자로 변환하는 것을 디코딩이라 함
인코딩(Encoding)
: 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것
인코딩 = 부호화 = 코드화 = 암호화
디코딩(Decoding)
: 부호화된 정보를 부호화되기 전으로 되돌리는 처리/처리방식. 사용자가 이해할 수 있도록 바꿔주는 것. 바이트 형식을 문자(문자열)로 변환
디코딩 = 복호화 = 역코드화
한글 조합형 인코딩, 조합형
한글을 그 낱자에 따라 기계적으로 조합하여 표현하는 문자 인코딩들을 총칭하는 ㅁ라
종류
n바이트 조합형
3바이트 조합형
2바이트 조합형
현재 조합형은 거의 사용되지 않으며 유니코드가 흔히 사용됨. 넓은 의미에서 보면 유니코드의 한글 자모 및 음절 영역이 조합형 인코딩의 영향을 받은 것이라고 볼 수 있음
한글 상용 조합형 인코딩, 상용 조합형, 종합형
한글을 2바이트 코드로 표현. 최상위 비트는 1로 설정하고 초성, 중성, 종성에 각각 5비트씩 할당하여 차례로 조합
구성
- 행 번호에 0x191(특수문자의 경우, 0x30행 미만) 또는 0x176(한자의 경우, 0x4A행 이상)을 더한다. 이 값을 2로 나눈 몫을 첫 번째 바이트로 한다.
- 1에서 나온 값이 짝수인가 홀수인가에 따라, 열 번호에 0x3D를 더하거나(홀수) 0x21을 뺀다(짝수).
- 2에서 나온 값이 0x4E보다 작으면 0x31을 더하고, 아니면 0x43을 더해서 두 번째 바이트로 한다.
한글 완성형 인코딩, 완성형
한글을 그 구조와 관계 없이 코드를 배당하여 표현하는 문자 인코딩들을 총칭하는 말
7비트 완성형
= 청계천 한글, 7×2 한글
최상위 비트를 사용할 수 없는 영문 프로그램들에서 사용하기 위해 만들어짐.
2바이트 완성형
한글 문자 집합 및 인코딩 표준화 과정에서 이미 사용되고 있던 조합형 인코딩을 수용할 경우, 그 인코딩을 사용하는 업체와 사용하지 않는 업체 사이의 형평성이 문제가 되어 새로 만들어졌다는 견해가 존재. 11172자 한글 중 2350자만 나타내므로 쓸 수 없는 글자가 많음
한글 인코딩 종류
UTF-8
조합형방식의 문자집합(Charater Set), 유니코드 인코딩 방식 중 하나
초성, 중성, 종성 각각 1바이트로 인식해 일반적으로 한글을 3바이트로 인식, 공백이나 영문은 1바이트로 인식
장점
- 다른 국가에서 한글 언어팩이 설치되지 않았다고 하더라도 한글 표현 가능. 같은 방식으로 우리 나라에서도 다른 나라의 언어 볼 수 있음. => 다양한 언어로 작성되는 환경이나 다양한 국자의 사람들이 보는 경우 좋은 방식
EUC-KR, CP949 (MS949)
완성형 인코딩 방식. 한글을 2바이트로 사용하는 문자집합(Character Set).
단점
- EUC-KR을 사용하는 국가에서만 문자가 보임 => 한글과 영어만 사용하는 페이지에 적합
기본 한글 인코딩
Window: MS949 (원래 CP949방식을 사용했는데 마이크로소프트에서 EUC-KR 방식으로 확장하여 MS949라 부름)
LInux: UTF-8
Java
2020/07/16 - [Study/Java] - [Class String] Encode/Decode Constructor, Method
참고
더보기"인코딩", 위키피디아, https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%9E%90_%EC%9D%B8%EC%BD%94%EB%94%A9
"디코딩", 위키피디아, https://ko.wikipedia.org/wiki/%EB%B6%80%ED%98%B8%ED%99%94
"한글 조합형 인코딩", 위키피디아, https://ko.wikipedia.org/wiki/%ED%95%9C%EA%B8%80_%EC%A1%B0%ED%95%A9%ED%98%95_%EC%9D%B8%EC%BD%94%EB%94%A9
"한글 상용 조합형 인코딩", 위키피디아, https://ko.wikipedia.org/wiki/%ED%95%9C%EA%B8%80_%EC%83%81%EC%9A%A9_%EC%A1%B0%ED%95%A9%ED%98%95_%EC%9D%B8%EC%BD%94%EB%94%A9
"한글 완성형 인코딩", 위키피디아, https://ko.wikipedia.org/wiki/%ED%95%9C%EA%B8%80_%EC%99%84%EC%84%B1%ED%98%95_%EC%9D%B8%EC%BD%94%EB%94%A9
https://studyforus.tistory.com/167
'Study > 모몽이 공부중' 카테고리의 다른 글
[Internet] 인터넷이란? 인터넷 작동 원리 (0) 2020.07.20 [Roadmap] 백엔드 로드맵 - Step by step guide to becoming a modern backend developer (0) 2020.07.20 [TCP] 3-way hand shake (0) 2020.07.05 cookie session 차이 localStorage, sessionStorage (0) 2020.07.01 [Internet] HTTPS란? (0) 2020.06.29