본문 바로가기
개발

%EA%B0%80 와 같은 문자들은 도대체 무엇일까

by 박호정94 2025. 12. 24.

웹 프론트엔드 개발을 하다보면 %EA%B0%80 와 같은 요상한 문자들을 만날 때가 있다.
인코딩, 디코딩, 인코더, 디코더 등 과 같은 단어들도 종종 만난다. 
인코딩, 디코딩, 한글 인코딩, .. 뭔가 와닿지 않는다. 용어도 어렵고 원리가 잘 이해되지 않는다. 

숫자를 2진수로 변환해서 컴퓨터에 저장한다는 것은 알거나 들어봤을 것이다.
문자도 똑같다. 2진수로 변환해야 한다. 

어떻게 변환할까? 이 규칙에는 여러가지 규칙이 있다. 그래서 더 헷갈린다. 
ASCII, UTF-8, UTF-16 등등 수많은 규칙들이 존재한다. 역사적으로 ASCII 부터 시작해서 현재 표준처럼 쓰는 것은 UTF-8이라는 것 정도 알면 될 것 같다.
정리하면, UTF-8이라는 방식으로 문자를 이진수로 변환한다. 이것이 인코딩이다.

10 --- 10진수를 2진수로 변환하는 방식--> 2진수
A  --- UTF-8 인코딩 방식---> 2진수 
가 ---  UTF-8 인코딩 방식 ---> 2진수

결국 어떤 규칙을 사용하여 2진수로 변환하느냐는 것이다. 
가 라는 문자는 UTF-8 인코딩 변환 규칙에 따르면 EAB080 라는 2진수가 된다.(16진수 표기법으로 2진수를 나타낸 것)

역사적으로 브라우저는 웹 표준에서 ASCII 방식 초창기에 지원했는데, 한글을 지원하기 위해서 표준을 바꿀 수는 없고 약간의 변칙을 사용해서 한글을 지원하게 되었다. 
따라서 EAB080 라는 2진수에다가 %를 붙여서 표기하는 것이다.

정리하면
1.컴퓨터가 이해할 수 있도록 숫자나 문자는 특정한 규칙을 가지고 2진수로 변환을 한다. 
2.문자는 2진수로 변환하는 방식이 여러가지 존재한다.  문자의 경우 변환 하는 것을 인코딩이라 부른다.
3.문자 인코딩 초기의 규칙인 ASCII 방식과 최근 표준처럼 쓰이는 UTF-8이 있다.
4.웹 개발시 한글을 나타내기 위해 %XX 와 같은 문자가 보이면 아 UTF-8 방식과 %을 사용해서 ASCII 방식으로 쓰려 했구나 이해하면 된다.