0과 1로 문자를 표현하는 방법

컴퓨터 구조

목록 보기
4/20

컴퓨터가 이해하는 두 가지 정보 중 ‘문자 데이터’에 대한 학습


1. 컴퓨터에서 문자를 표현하는 방법

  • 컴퓨터는 기본적으로 0과 1밖에 이해하지 못합니다.
  • 그러나, 다양한 문자(영어, 한글, 이모티콘, 특수문자 등)를 표현할 수 있습니다.
  • 이를 위해 문자 집합, 인코딩, 디코딩 개념이 필요합니다.

2. 문자 집합, 인코딩, 디코딩

  1. 문자 집합 (Character Set)

    • 컴퓨터가 이해하고 표현할 수 있는 문자들의 모음입니다.
    • 문자 집합에 속하지 않은 문자는 컴퓨터가 이해할 수 없습니다.
  2. 인코딩 (Encoding)

    • 문자를 0과 1로 변환하는 과정입니다.
    • 문자에 고유한 코드 포인트를 부여하고, 이를 0과 1로 변환합니다.
  3. 디코딩 (Decoding)

    • 0과 1로 인코딩된 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정입니다.

3. 주요 문자 집합 및 인코딩 방식

1) 아스키 코드 (ASCII)

  • 영어 알파벳, 숫자, 일부 특수문자, 제어 문자 등을 표현하는 문자 집합입니다.

  • 7비트로 하나의 문자를 표현하며, 총 128개의 문자를 지원합니다.

  • 예시:

    • 대문자 A의 아스키 코드: 65
    • 소문자 a의 아스키 코드: 97
  • 제한점: 영어 이외의 언어(예: 한글, 중국어 등)를 표현할 수 없습니다.


2) 한글 인코딩 방식

  • 한글은 초성, 중성, 종성의 조합으로 이루어져 있어, 문자를 표현하는 방식이 영어와 다릅니다.
  • 대표적인 한글 인코딩 방식:
    • 완성형 인코딩: 자음과 모음이 조합된 완성된 글자에 고유 코드를 부여합니다.
    • 조합형 인코딩: 자음과 모음 각각에 고유 코드를 부여하여 조합합니다.


3) EUC-KR (완성형 인코딩 방식)

  • 한글 문자를 표현하기 위해 개발된 인코딩 방식입니다.

  • 한 글자를 표현하기 위해 2바이트(16비트)를 사용합니다.

  • 예시:

    • 는 EUC-KR 인코딩에서 B0 A1로 표현됩니다.
    • B0 C0로 인코딩됩니다.
  • 제한점: 약 2,350여 개의 한글만을 지원하여 일부 한글은 표현할 수 없습니다.

    • 이로 인해 이름이 EUC-KR로 인코딩되지 않아 발생하는 문제(공공서비스 이용 불가 등)가 존재했습니다.

4) 유니코드 (Unicode)와 UTF-8 인코딩

  • 유니코드: 모든 문자(한글, 영어, 특수문자, 이모티콘 등)를 통합적으로 표현하는 문자 집합입니다.

  • 유니코드의 각 문자에는 고유한 코드 포인트(16진수 값)가 부여됩니다.

    • 예:
      • 화살표 의 유니코드 코드 포인트: U+2192
      • 한글 의 코드 포인트: U+AC00
  • UTF-8: 유니코드를 인코딩하는 대표적인 방식으로, 가변 길이 인코딩입니다.

    • 문자에 따라 1바이트, 2바이트, 3바이트, 4바이트로 인코딩됩니다.
    • 예시:
      • 한글 의 유니코드 코드 포인트 AC00는 UTF-8로 EAB080로 인코딩됩니다.

4. 인코딩과 개발에서의 주의사항

  • 개발 시 글자가 깨지는 현상이 발생할 수 있습니다.
    • 원인: 인코딩 방식이 맞지 않거나, 문자 집합에 속하지 않은 문자를 사용한 경우.
    • 해결: 올바른 문자 집합과 인코딩 방식을 확인하고 설정해야 합니다.

5. 요약

  • 컴퓨터는 문자 집합, 인코딩, 디코딩을 통해 다양한 문자를 표현합니다.
  • 아스키 코드는 단순하지만 제한적이며, 한글과 같은 다양한 문자는 EUC-KR, 유니코드 등을 사용하여 표현됩니다.
  • 특히, 유니코드와 UTF-8은 현대의 문자 표현에서 가장 널리 사용되는 방식입니다.

👉 이해하셨다면, 인코딩과 문자 데이터에 대해 더욱 깊이 있는 프로그래밍 개발을 할 준비가 된 것입니다! 😊

0개의 댓글