한글은 2바이트, 영문은 1바이트인 이유는? 데이터 단위 원리

컴퓨터가 텍스트를 처리하는 방식, 이것이 바로 문자 인코딩의 기본입니다. 일반적으로 영문은 1바이트, 한글은 2바이트를 차지한다는 이야기는 데이터 저장과 처리의 가장 근본적인 차이를 보여줍니다.

왜 이런 차이가 생겼을까요? 한 바이트가 표현할 수 있는 정보의 한계를 극복하고 수많은 언어를 담기 위한 기술적인 선택 때문입니다.

이 글에서는 문자를 컴퓨터가 어떻게 인식하는지 그 기본 원리부터 시작해, 한글이 왜 더 많은 바이트를 쓰게 되었는지 전문적인 내용을 쉽게 풀어 설명해 드리겠습니다.

데이터 단위

바이트 기반의 문자 인코딩 기본

컴퓨터는 1바이트를 기본 단위로 정보를 처리합니다. 1바이트는 8개의 비트(0과 1)로 이루어져 있습니다. 이 8개의 비트로 만들 수 있는 조합은 28, 즉 256가지에 불과합니다.

  • 영문과 1바이트: 영문 알파벳과 숫자, 기본 기호는 아스키 코드(ASCII) 표준을 따릅니다. 아스키는 128개의 문자만으로 충분합니다. 따라서 영문 한 글자는 1바이트의 공간만 있으면 충분합니다.
  • 표현의 한계: 256가지의 조합으로는 전 세계 수많은 문자를 표현하기가 불가능합니다. 특히 수천 개의 고유 문자가 필요한 동아시아 언어에는 이 정도의 공간은 택도 없이 부족합니다.

한글의 다중 바이트 구조가 필요한 이유

한글은 초성, 중성, 종성이 합쳐져 완성되는 조합형 문자입니다. 실제로 우리가 자주 쓰는 한글만 해도 2,350자가 넘습니다. 256가지의 조합으로는 이 많은 글자를 표현할 수가 없습니다.

  • 2바이트의 도입: 한글을 온전히 담기 위해 2바이트를 할당하는 방식이 도입되었습니다. 2바이트는 총 16비트입니다.
  • 표현 가능한 공간: 16비트가 만들 수 있는 경우의 수는 216, 즉 65,536가지입니다. 이 공간이면 한글의 모든 조합을 충분히 담아낼 수 있습니다. 예전에 널리 쓰이던 EUC-KR 같은 방식이 바로 한글 한 글자에 2바이트를 사용했습니다.

유니코드 환경에서의 변화와 원리

최근 시스템은 전 세계 언어를 통일된 방식으로 처리하는 유니코드(Unicode) 표준을 사용합니다. 이 중 가장 많이 쓰이는 것이 UTF-8입니다.

  • 바이트의 변화: UTF-8에서는 영문은 기존 방식을 그대로 쓰도록 1바이트를 유지합니다. 하지만 한글 문자는 대부분 3바이트를 차지하게 되었습니다.
  • 전문적 해석: 현대 시스템에서 한글은 정확히 2바이트가 아닌 3바이트를 쓰는 경우가 일반적입니다. 그러나 여기서 중요한 원리는 변하지 않습니다. 영문처럼 단순한 언어는 1바이트를 쓰는 반면, 복잡한 조합이 필요한 한글은 2바이트 이상을 할당하는 다중 바이트 구조를 써야 한다는 것입니다. 이것이 컴퓨터가 언어를 처리하는 핵심 원리입니다.