배 타다 개발자

코딩배우기 : 컴퓨터 기초 : 비트, 바이트, 아스키, 유니코드 본문

Backend

코딩배우기 : 컴퓨터 기초 : 비트, 바이트, 아스키, 유니코드

노 아 2020. 10. 19. 15:38




컴퓨터가 사람을 이해하는 법 :  비트(Bit)


Bit 

1) 조금, 약간

2) 잠깐 

3) 조금 ; 한 조각 


0110110 으로 말해야 알아 들을 수 있다.

컴퓨터가 개발된 초기에는 전기가 들어오고, 들어오지 않고를 하나의 신호(Signal)로 이해했다. 

이 중에서 '0' 또는 '1'이 짧은 말을 좋아했던 초기 개발자들이 가장 선호한 표현 이었습니다. 결론 적으로 비트는 0또는 1 중 하나의 정보를 가지는 쪼끄만 정보단위다; 라고 이해할 수 있겠다.


0과 1의 조합 : 코드(Code)


이렇게 비트(bit) 로 조합된 부호를 코드(Code)라고 부른다. 사전적 정의는 다음과 같다.


Code 

1. 암호, 부호

2.(사회적) 관례나 규칙

3. (조직국가의) 규정


컴퓨터개발자들은 각기 다른 비트의 조합이 의미하는 것들을 '약속'했다. 0, 1 로 여러가지 표현을 만드는 방법을 알게 된 다음, 컴퓨터 개발자들은 사람의 언어와 컴퓨터 언어를 연결시키기 위해 영문 알파벳, 숫자, 특수문자의개수를일일이 세어보고 비트를 8개정도 묶으면 경우의 수가 충분하다는 사실을 발견한다. 비트 8개의 묶어진 정보의 단위를 바이트(Bite) 라고 한다. 


Bite 

1. 한 입(베어 문 조각)


8비트로 이루어진 바이트가 담을 수 있는 정보의 경우의 수는 2의 8승 즉, 256가지의 약속을 할 수 있다. 


이러한 바이트를 사람의 언어를 컴퓨터 언어로 바꾸는 과정을 Encoding, 그 역을 Decoding이라고한다. 

전달 할 때 ASCII 코드로 하고, 전달할 때는 DK 코드로 해석한다면 정보가 잘못 전달된다. 이러한 경우를 Decoing 오류라고 한다. ASCII(American Standard Code for Information Interchange) : 정보 교환을 위한 미국 표준 약속은 알파벳을 표기하기 위해 미국에서 만든 코드이다.


알파벳을 위한 약속 ASCII 


1바이트로 표현된  약속의 예 중 아스키(ASCII)의 예시


)  = 00101001

* = 00101010

+ = 00101011

....

A = 01000001

B = 01000010

C = 01000011


* 대문자와 소문자는 '의미'는 같지만 엄연히 다른 문자이기 때문에 다른코드로 약속된다. 


생각의 범위를 조금 더 확장하여, 알파벳 이외의 다른 문자들까지 약속하기 위해 고안되 약속을 유니 코드라고 한다. 유니코드는 8비트 보다 2배 많은 16비트(2바이트)을 기본 단위로 설정하였다. 2의 16승인 65,636가지의 약속을 할 수 있기 때문이다. 

 유니코드의 정확한 명칭은 UTF(Unicode Transformation Format, 유니코드 변환 양식)이다. 다양한 버전이 있지만 16비트를 하나의 문자 기준으로 하는 utf-16이 대표적이다. 


)  = 00000000 00101001

* = 00000000 00101010

+ = 00000000 00101011

....

A = 00000000 01000001

B = 00000000 01000010

C = 00000000 01000011

...

가 = 10101100 00000000

각 = 10101100 00000001

...


방법은 기존에 쓰턴 아스키 코드를 유니코드안에 쏙 집어 넣는 방법을 채용했고, 아스키 코드에 없던 새 언어데 대한 약속은 추가된 8비트의 공간까지 사용해 만들었다. 이렇게 추가한 약속들 중에 가장 많은 코드 수를 차지하는 언어는 한이고, 우리 한글은 두번째로 많은 약 1만개의 약속으로 정의 되어있다. 유니코드로 약속된 한글은 유니코드 사이트(https://home.unicode.org/) 를 통해서 확인할 수 있다. 


<Do it! 첫 코딩 : 보통 사람이 알아야할 프로그래밍 기초 with 자바> 정동균 지음 / 이지퍼블링싱 참고


'Backend' 카테고리의 다른 글

형상 관리 규칙  (0) 2022.05.12
OS03. 프로세스 관리  (0) 2021.01.01
OS02. 프로세스개념 이해가기  (0) 2020.12.30
OS01.컴퓨터 시스템 구조 파악하기  (0) 2020.12.28
OS0.운영체제(Operating System)란 무엇인가?  (0) 2020.12.28