
Encoding)이란 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호(바이너리 데이터)로 만드는 것Decoding)이란 0과 1로 구성된 바이너리 데이터를 다시 문자로 복구하는 것ASCII), 엡시딕(EBCDIC) 등 이었음UNICODE)Tip! 아스키(
ASCII)란?
- American Standard Code for Information Interchange의 약자
- 아스키(
ASCII) 코드는 문자 그대로 미국에서 정의하고 있는 표준, 영문 알파벳을 사용하는 대표적인 문자 인코딩- 초창기 컴퓨터를 기계어만을 사용하여 개발하는 것에 어려움이 있어 문자를 코드화하기 위해 아스키(
ASCII) 코드가 탄생하게 되었고 대부분의 인코딩이 아스키(ASCII)에 기초하고 있음
Tip! 유니코드(
UNICODE)란?
- 한글 뿐만 아니라 중국어, 일본어도 마찬가지로 각자의 언어를 표현할 수 있는 인코딩 방식과 다른 문자열 셋을 사용하기 때문에 모든 언어를 동시에 표현할 수는 없었음
- 결국
전세계의 모든 문자를 하나의 문자 셋으로 표현할 수 없을까?라는 문제가 등장하게 됨
- 이러한 문제를 해결하기 위해 전세계적으로 사용되는 모든 문자 집합을 하나로 모아 탄생시킨 것이 유니코드(
UNICODE)- 다양한 언어들을 표현하기 위해 등장한 유니코드는 2바이트로 모든 문자를 표현하는데 아스키코드에 비해서 1바이트가 늘어난거죠.
- 유니코드(
UNICODE)의 목적은 현존하는 문자 인코딩 방법들을 모두 유니코드(UNICODE)로 교체하려는 것
Base64 인코딩은 문자열을 아스키(ASCII)로 인코딩한 후 다시 Base64 코드표를 통해 인코딩을 수행ASCII)로 인코딩된 문자열을 새로운 Base64 코드표로 인코딩한다는 뜻Tip!
Base64란?
- 그대로 직역하면 64진법이라는 뜻
- 컴퓨터 분야에서 쓰이는
Base 64란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 아스키(ASCII) 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념
- 임의의 바이트 스트림을 화면에 표시할 수 있는 아스키(
ASCII) 문자들로 바꾸는 인코딩 방식
ASCII) 인코딩과 같이 문자 셋과 문자 인코딩이 동일한 경우도 있기 때문에 인코딩이 문자 셋을 포함하고 있다고 생각할 수 있음Tip! 추가 내용
UTF-8
- 전세계에서 개발자들이 가장 많이 사용하는 인코딩 방식
- 일반적으로 운영되는 서버들의 운영 체제는 리눅스 계열
- 이러한 리눅스 계열의 대부분은 유니코드(
UNICODE)를 지원하기 때문에UTF-8방식을 활용한다면 따로 인코딩 과정을 거치지 않아도 되게끔 인터넷 환경이 주어져 있음UTF-8방식은 조합형 인코딩 방식으로 주어진 문자들을 하나하나 조합해서 문자를 완성하는 방식- 예시: 'ㄱ' + 'ㅐ' + 'ㅂ' + 'ㅏ' + 'ㄹ' → 개발
EUC-KR
- 이 방식은 글자 하나하나가 완성되어야 하는 방식
- 예시: '개' + '발' → 개발
- 이를 완성형 방식이라고 하는데 컴퓨터에게 주어진 문자표에서 완성된 글자 하나하나를 찾아서 완성해나가는 방식이라고 생각하면 됨
- 얼핏 생각해보면 이 방식은 활용도 면에서 굉장히 안좋은 방식이라고 생각할 수 있는데 문자표에 우리가 표현하고자 하는 언어가 없다면 표현할 수 없기 때문
- 그런데 왜 이 방식을 사용하는걸까?
- 윈도우의 문자 인코딩 방식이 완성형이기 때문
- 사용하는 운영체제의 방식이 완성형이다보니 여기에 맞는 문자인코딩 방식이 필요했고 그 결과가
EUC-KR의 개발로 이어진 것
KSC5601을 표준 한글 코드로 정의하고 있는데, 기본은 완성형 한글이고 자모가 입력될 때 글자를 모은 다음 코드 테이블에서 코드를 찾아 치환KSC5601 코드를 기본으로 사용x-www-form-urlencoded 형식으로 인코딩이 됨KSC5601이 인코딩되어 전달되면 KSC5601이 왔다고 생각하지 않고 라틴어(ISO-8859-1)가 왔다고 생각하는 경우 존재ISO-8859-1ISO-8859-1 형식으로 인코딩하게 됨KSC5601로 바꿔주면 해결

ISO-8859-1 이었던 인코딩 방식을 KSC5601로 변경해도 한글 깨지는 경우 발견UTF-8로 변경하면 해결
