
ASCII 코드
알파벳 대소문자 - 52문자
숫자 0~9 - 10문자
특수문자 - 66문자
총 위 128개의 문자와 예비문자 128개를 정수(0~255)와 1:1로 매칭한 것이 ASCII 코드이다.
256개 = 2^8 -> 즉, 8bit = 1byte면 서로 다른 알파벳, 숫자, 특수문자 (+예비문자)까지 저장하여 사용할 수 있었다.
유니코드
하지만 ASCII코드만으로는 다른 나라의 언어를 표현할 수 없었다.
1byte로는 부족하니 여러 byte를 사용하여 하나의 문자를 표현하고자 했다.
이와 같은 이유로 전 세계 언어를 모두 매칭, 정의할 수 있는 국제 표준 코드인 유니코드가 등장했다.
인코딩 / 디코딩
인코딩 : 사람이 인지할 수 있는 형태의 데이터를 규칙에 의해 컴퓨터가 사용하는 0, 1로 변환하는 과정
즉, 사람이 인지하지 못하고 컴퓨터가 이해할 수 있게 바꿔주는 과정
간단히 말하면, 문자열을 바이트형식으로 변환
디코딩 : 인코딩과 반대, 사람이 이해할 수 있도록 바꿔주는 것
바이트형식을 문자열로 변환
문자열 ab를 입력하여 상대방에게 보내는 상황을 생각해보자.
인코딩
1) 우리가 입력한 ab를 컴퓨터가 실제로 이해할 수 없다. 컴퓨터는 0과 1만 이해할 수 있기 때문이다.
따라서 ab라는 문자열을 컴퓨터 메모리 상에 바이트 형식으로 바꾸어
유니코드 표에서 각 문자에 매칭되어 있는 숫자인 97 98을 규칙에 맞게 전송한다.
디코딩
2) 상대방 컴퓨터에서 읽을 땐 다시 문자열 ab형태가 되어야 한다.
바이트 형식으로 된 97, 98을 받고서 유니코드 표에서 매칭된 문자 a, b로 변환 후 문자열 ab로 보여준다.
UTF-8
UTF-8은 유니코드를 인코딩하는 방식 중 하나이다. 전 세계에서 가장 많이 쓰이는 방식이다.
즉, 유니코드 값을 컴퓨터가 이해하는 형식으로 변환하는 방식 중 하나이다.
가변 길이 문자 인코딩 방식으로 문자 종류에 따라 길이가 다르다.
ASCII문자는 1byte, 나머지 문자들은 4byte까지 사용한다.
그 중 한글은 3byte를 사용한다.
다른 국가에서 한글 언어팩이 설치되지 않았어도 한글 표현이 가능하고,
우리 또한 같은 방식으로 다른 나라의 언어를 볼 수 있다.
EUC-KR
한글을 인코딩하는 또 다른 방식 중 하나이다.
UTF-8은 조합형 방식인 것에 반해, EUC-KR은 완성형 방식이다.
한글은 2byte를 사용
EUC-KR을 사용하는 국가에서만 문자를 온전하게 볼 수 있다.
한글과 영어만 사용하는 페이지에 적합하다.
댓글