Encoding / Decoding 제대로 이해하기 💁‍♀️

이민영·2021년 12월 10일

코딩을 하다보면 자주 마주하는 단어, 기본중에 기본. 인코딩, 디코딩을 자주 마주 한적이 있을것이다. 문자를 인코딩을 해줘야한다. 뭐 그래서 해야한다니까 나도 인코딩을 하는 코드 몇자 추가하면 해결. 근데 이거 인코딩이랑 디코딩이 그러니까 제대로 뭔데? 궁금해서 찾아보고 정리해보았다.

Encoding? Decoding?

배경지식

먼저 인코딩, 디코딩이 뭔지 구글에 검색해보자.

  • Encoding이란?
    문자 인코딩 또는 텍스트 인코딩 또는 줄여서 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다. (위키백과)
  • Decoding이란?
    복호화 또는 디코딩은 부호화된 정보를 부호화되기 전으로 되돌리는 처리 혹은 그 처리 방식을 말한다. 보통은 부호화의 절차를 역으로 수행하면 복호화가 된다. 암호화의 반대말로서의 복호화는 decryption이라고 부른다. (위키백과)

간단히 말하자면! 인코딩은 컴퓨터가 이해하는 언어로 바꾸는 작업, 디코딩은 사람이 이해하는 문자로 바꾸는 작업을 말하는 것이다!

⇒ 컴퓨터가 문자를 이해하는 방식과 우리가 이해하는 문자는 다르게 컴퓨터에서 존재한다는 것이다. 컴퓨터에서 내가 작업하고 싶은 문자가 있다 하면 컴퓨터가 이해하는 방식으로 바꾸는 인코딩 작업이 필요한것이고, 컴퓨터에서 저장했던 컴퓨터만의 방식으로 저장한 문자를 내가 읽을수 있는 문자로 시각화 하려면 디코딩하는 작업이 필요한 것이다.

문자형 데이터는 컴퓨터가 이해할수 있도록 Bit형태로 변형이 필요하다. 이 과정이 인코딩이 되는것이다.

한글 인코딩?

우리가 그럼 어떨때 인코딩을 마주하는가! 우리는 한국어를 인코딩 할때 인코딩을 가장 많이 마주하게 된다. 왜 한글 인코딩이 필요한거지?

Ascii계열의 문자는 0-127까지 표현이 되기 때문에 1Byte안에 표현이 가능하다. 한글은 Ascii안에 표현이 불가하다. 이때, 이를 표현하기 위해서는 Byte가 충분히 더 필요하다. 그래서 우리는 한글을 사용할때 인코딩 작업을 넣어주게 되는 것이다.

거기서 자주 마주하게 되는 아이들이 'utf-8', 'cp949', 'euc-kr' 등이 있는것이다.

profile
프론트엔드 개발자를 꿈꾸고 있습니다 !

0개의 댓글