나의 공부/기타

텍스트 데이터의 처리과정

내가 Nega 2022. 1. 5. 18:47
728x90

텍스트 데이터의 처리 과정

사람이 이해하는 데이터는 문자열 데이터라고 합니다. 이를 컴퓨터가 이해하도록 번역 해주는 과정을 인코딩이라고 합니다. 컴퓨터는 이진수를 이해하기 때문에 인코딩과정은 문자/숫자 등의 데이터를 이진수로 변환하는 것이라고 할 수 있습니다.

 

만약 이 인코딩의 과정에서 세계 각국마다 문자 인코딩하는 방법이 다르다면 어떻게 될까요? 알파벳 a를 한국은 97, 미국은 65으로 표현한다면 나라별로 데이터를 다시 인코딩을 해주는 과정이 추가되어야 하거나, 이 과정을 거치지 않으면 데이터가 다 깨져버릴 것입니다. 그렇기 때문에 변환하는 과정은 전 세계적으로 통일되어 있으며, 국제 표준 기구인 ISO(International Standards Organization)에서 전 세계 문자를 모두 표시할 수 있는 표준 코드를 제공하였습니다. 바로 유니코드 Unicode입니다.

 

그렇다면 html등의 웹 개발을 해보신 분이라면, UTF-8, UTF-16이라는 것을 본 적이 있으실텐데요, 이것은 무엇일까요?

사실 저는 이 UTF-8, UTF-16이 유니코드라고 착각했었습니다. 웹 개발을 배울 때, 인코딩하는 방식을 설정해주는 것이라고 배웠고, 이 과정을 텍스트를 유니코드로 바꿔주는 것이라고 이해했습니다. 여기서 제가 착각을 했었습니다.

 

UTF-8은 유니코드를 인코딩하는 방식입니다. 즉, 유니코드를 10101110101010등과 같이 컴퓨터가 이해할 수있는 기계어로 바꾸어 주는 것입니다. 유니코드는 글자와 코드가 1:1 매핑되어 있는 (코드표)입니다. 전세계적으로 공통되어야 하기 때문에 유니코드는 오직 한 가지 버전만 존재합니다.

 

다른 말로 다시 정리하면, 유니코드는 각 문자열에 대하여 1:1형식으로 대응되는 데이터이고, UTF-8 / UTF-16등은 유니코드로 정의된 텍스트를 메모리에 인코딩하는 방식 입니다.

참고사항

용어설명
  • 바이트 byte
  • 컴퓨터의 기본 저장 단위
  • 인코딩 encoding
  • 문자열을 바이트로 변환하는 과정
  • 디코딩 decoding
  • 바이트를 문자열로 변환하는 과정
반응형