컴퓨터구조 - 문자 저장
서론
컴퓨터에서 숫자는 2진수로 바꿈으로 저장이 가능한데, 문자는 어떻게 표현하고 저장할까?
문자
컴퓨터가 처음 만들어졌을 때엔 단순히 계산(Compute)하는 것이 목적이었다.
하지만 문자 데이터 교환이 필요해지면서
ASCII(American Standard Code for Information Interchange) 코드가 만들어졌다.
위 표와 같이 0부터 127까지 총 128개로 구성되어 있다.
2의 7 제곱인 128개(7bit)만을 사용하는 이유는 나머지 1bit는 통신 오류 확인을 위해 사용되기 때문이다.(Parity Bit)
이로써 영어를 사용할 수 있게 되었는데, 이 세상은 영어만 사용하지 않는다.
그래서 더욱 많은 문자를 사용할 수 있도록 ASCII 코드를 확장하기로 하였다. 이것을 ANSI 코드라고 부른다.
ANSI 코드는 8bit를 사용해 문자를 표현한다. 총 256개를 표현할 수 있는 것이다.
ANSI 코드로 인해 유럽권의 문자도 얼추 해결이 가능했다.
하지만 중국, 일본, 한국처럼 문자가 많은 국가에선 한계가 명확했고
이를 해결하고자 UNICODE(유니코드)를 만들었다.
유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며, 유니코드 협회(Unicode Consortium)가 제정한다.
유니코드는 1991년 7,161개 문자를 가진 버전 1.0.0을 시작으로 최근까지 업데이트가 되고 있다.
UTF-8 vs EUC-KR?
유니코드를 통해 문자들을 코드와 맞춰 정리하였으니 이제 컴퓨터가 이해할 수 있도록 해야 한다. 이를 인코딩(encoding)이라고 하는데, UTF-8은 그중 하나이다.
UTF란 유니코드 변환 형식(Unicode Transformation Format)이며 8은 8bit를 말한다.
이외에도 UTF-1, UTF-7, UTF-16, UTF-EBCDIC 등이 있다.
반면 EUC-KR은 한글 표현을 위한 인코딩 방식이다.
현재 우리나라에선 위 두가지가 같이 사용되고 있으며 EUC-KR이 한글을 표현하는데 byte가 덜 필요하므로 한국을 대상으로 하는 서비스의 경우엔 EUC-KR이 유리하다.
결론
문자의 경우는 ASCII부터 ANSI, Unicode까지 여러 과정이 있었다.
컴퓨터에 관련된 공부를 하면 자주 UTF- 가 보였었는데 이번에 알게 되었다.
Unicode에 대해 찾아보니 관련 내용이 많다는 것을 발견했다. 이에 대해 따로 공부해볼 필요가 있어 보인다.
EUC-KR과 UTF-8에 대한 비교도 좀 더 자세히 찾아봐야겠다.