-
유니코드에 대해서 아시나요?프로그래밍 2019. 6. 18. 09:09
안녕하세요 오늘은 프로그래밍을하면서 흔히 볼수있는 유니코드에 대해서 알아보는 시간을 가지려고 합니다
컴퓨터에서는 모든 데이터를 0 아니면 1로 표현하는 이진수로 사용합니다
초기에는 이를 표현 하는 ASCII값을 이용해서 값들을 표현했죠
출처: https://shaeod.tistory.com/228 아스키 코드표는 모든데이터를 1byte 즉 8bit로 표현합니다
거기서 맨 앞 1bit는 패리티 비트라고 해당하는 데이터의 에러 검사 여부를 위해서 사용합니다
그렇기에 2^7인 128개의 문자가 표현이 가능한거죠
그런데 여기서 문제가 있습니다
아스키 코드표에 해당하지 않는 문자를 표현하려면 어떻게 해야할까요?
결국 해당하는 코드표를 추가하는 방법 밖에 없을겁니다
그렇기에 다음으로 나오는 ANSI 코드가 있지만 이 내용은 이 포스팅에서는 다루지 않겠습니다 (너무 길어질까봐...)
결국 유니코드가 만들어진 계기도 위와 같습니다
세계에 존재하는 문자들을 표현하기 위해서 만들어진 하나의 코드표라고 생각하시면 됩니다
유니코드는 2byte만큼의 크기를 가지고 있습니다 즉 2^16 65,536개 만큼의 문자를 표현할수가 있는데
쓰지않는 고어, 한자를 표현하기에는 이도 부족했습니다
그렇기에 유니코드 내에서 약 1024자는 상위대행 코드로, 다른 1024장은 하위대행 코드로 이를 결합해서
즉 2^10 * 2^10 = 1,048,576 만큼의 문자를 추가로 만들었습니다
유니코드표는 매우 많은 코드가 있어 위에 있는 아스키 코드표 처럼 사진하나로 확인이 불가하며
각 코드표의 대략적인 위치는 확인이 가능한데
출처: https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C 약 17개의 단면도가 나오는 이유는 약 110만개의 코드수를 2^16승으로(유니코드는 2byte이기에) 나누면 반올림하여 17의 값이 나옵니다
결국 유니코드란 전세계의 문자들을 컴퓨터 상의 약속된 기호로 표현하기 위해 정의해놓은 코드들의 값이라고 보면 될것 같습니다
다음 포스팅에서는 유니코드를 이용해서 인코딩하는 여러가지 방법에 대해서 알아보겠습니다
감사합니다!!!
(틀린 말이나 공감하는 부분은 말씀 달아주시면 감사하겠습니다)
'프로그래밍' 카테고리의 다른 글
AWS 람다의 작동 방식 (0) 2020.04.06 자바스크립트 메모리 누수와 어떻게 막아야 하는가? (1) 2018.11.19 자바스크립트의 메모리 관리법 (0) 2018.11.15 V8엔진을 통한 효율적인 JS개발 (0) 2018.11.14 V8엔진이란? (0) 2018.11.13