[Java 강자] CharacterSet (데이터 타입)

공부/Java  2015.05.26 22:24


안녕하세요.. 명월입니다.
이번 포스팅부터는CharacterSet에 대해서 알아보도록 하겠습니다.

우리 인간은 문자를 사용할 때 숫자만 사용하는 것이 아니고, 문자도 사용합니다. 그러나 컴퓨터는 문자를 사용하지 않고 오로지 수로만 모든 것을 표현합니다.
그럼 우리의 문자는 컴퓨터가 어떻게 표현을 할까요? 그거에 맞는 치환 데이터를 결정해서 사용합니다.

설명이 어렵네요..
그럼 우리가 가장 기본형틔 영어코드로 확인을 해보겠습니다.


위에 표는 개발자라고 하면 다 아는 ASCII코드입니다. char형식이고 0~127의 값으로 문자를 나타 냅니다. 예를 들면 A라는 표현을 하기 위해서는 컴퓨터는 65수를 사용하는 것입니다. 그리고 문자열 1이라는 단어는 컴퓨터에서는 49라는 값을 사용하네요..

다음의 예제로 확인해 보겠습니다.


위 예제를 보니 test라는 변수에 1이라는 문자열을 넣고 byte로 번환후 출력을 해보니 49라는 수가 나옵니다.

그럼 여기까지 문자열을 사용하기 위해서는 컴퓨터는 수를 사용한다는 것을 알았습니다. 그러나 위의 예제를 확인 해 보시면 영어문자는 ASCII코드로 표현이 가능 할 것 같지만 그 외의 문자는 어떻게 할까요?? 한글만 해도 데이터가 엄청많은데 어떻게 표현할까요? char형태로는 부족할 듯 싶네요..
그래서 한국어, 일본어, 중국어는 1개의 byte값이 아닌 2개의 바이트 값으로 데이터를 표현합니다.


일본어인 あ를 써보니 -126,-96의 값으로 표현이 되고 있습니다. 이렇게 두개의 값이 나옵니다. 그럼 한국어, 일본어, 각국의 언어도 이런 식으로 해결이 됩니다.
이게 인터넷이 널리 보급되기 전까지는 이 것으로 거의 완벽하다고 생각을 하였으나 인터넷이 보급되면서 이 코드 체계가 바뀌기 시작합니다.
한국에서도 2개의 바이트로 언어를 사용하고 일본에서도 2개의 바이트를 사용하고 하였는데 이게 국가간의 약속을 하고 사용한 것이 아니고 각국의 실정에 맞게 사용하다 보니 이 코드표가 중복이 되어 버린 것입니다. 즉, 한국에서 사용하는 프로그램은 일본에서는 오류가 날 수 있다라는 것이지요.

그래서 정한 세계 모든 언어의 코드 표가 UNICODE입니다. 이 유니 코드는 총 4개의 바이트를 사용합니다.


유니코드를 사용하다 보니ascii코드 에서 UNICODE까지 글자크기만 4배로 늘어났습니다. 그런 논리로 프로그램도 유니코드 형식으로 바꾸면 데이터 크기가 4배 가까이 늘어나게 됩니다. 그런 프로그램 사이즈에 대한 문제점으로 나온 대안이 가변 유니코드 UTF-8이 나왔습니다.


영어는 1바이트, 한글, 일본어는 3바이트에서 4바이트를 사용합니다.
최근에는 UTF-8코드를 많이 사용합니다만 꼭 UTF-8이 만능은 아닙니다. 아까 이야기 한 것처럼 결국에는 데이터 사이즈 및 용량의 문제점이 있기 때문에.. 경우에 따라서는 ASCII를 사용하는 경우도 있고 EUC-KR, S-JIS등을 상황에 맞게 사용하시면 되겠습니다.

여기까지 입니다.


댓글 0개가 달렸습니다.
댓글쓰기