모두를 위한 컴퓨터 과학 (CS50) 1.2 - 정보의 표현

yesolog·2024년 3월 5일

CS50

목록 보기
2/3

✅ 문자, 메일, 알파벳 등을 어떻게 표현할 것인가?

비트를 사용해서 혹은 바이트를 사용해서 숫자를 표현하는 방법은 이제 알겠다.

근데 우리가 사는 세상은 문자, 알파벳 등을 사용한다. 그리고 사진이나 동영상, 이모지도 사용하는데... 이걸 어떻게 표현해야할까?

예를 들어 A라는 글자가 있다고하자. 수십년 전 사람들은 65라는 숫자가 A라고 약속했다.

잠깐 지난 시간에 배운 비트와 바이트를 사용하여 65는 비트로 어떻게 표현하는지 생각해보자.
정답은 01000001이다.

이처럼 우리는 정보 교환을 적으로 숫자를 표현할 수 있도록 여러 표준(약속)을 정했다. 그 중 하나가 바로 ASCII다.

1. ASCII

ASCII: 설명미국정보교환표준부호(아스키코드/American Standard Code for Information Interchange)

총 128개의 부호로 정의되어 있으며 알파벳은 다음과 같이 정의되어있다.

하지만 이것은 매우 '미국 중심'적이다. 또한 우리가 사용하는 이모지를 생각해보자. 이모지는 사진처럼 보이지만 실제로는 키보드를 통해 입력된다. 이들은 알파벳으로 이루어진 기호에 불과하다.

이렇게 이모지 같은 정보를 나타내는 0과 1의 패턴도 있는데 그것이 바로 유니코드다!

2. 유니코드

ASCII는 8비트만 사용하므로 문자를 표현하기에는 충분하지 않다.

반면, 유니코드는 8, 16, 32비트까지도 사용하므로 훨씬 더 많은 0과 1을 나타낸다.

예를 들어 기쁨의 눈물이라 불리는 이 이모지는 127,514로 약속되어있다. 이를 0과 1로 나타내면 11111011000000010 이라는;; 어마무시한 숫자가 나온다.

3. 사진이나 동영상은 어떻게 표현하는가? -> RGB

그렇다면... 사진이나 이미지는 어떻게 표현할 것인가...?

사진은 사실 점으로 이루어진 집합이다. 우리는 이 수많은 점들을 사용해서 사진을 표현하고 같은 파일에 저장된 여러장의 사진을 매우 빠르게 움직이거나 반복시켜서 동영상과 .gif 같은 파일을 생성한다.

이 점들은 픽셀이라고 불리는데, 픽셀 하나를 만들기 위해서는 3가지의 숫자가 필요하다. 이 세 숫자를 조합하여 색상을 만들어내는데, 이 표현 방식을 바로 RGB라고한다.

예를들어 RGB(72,73,33)을 생각해보자. 원래 72,73,33은 문자로 표기하면 HI!가 된다. 하지만 포토샵과같은 프로그램은 이 세숫자를 패턴으로 인식하여 빨강, 초록, 파랑의 양으로 받아드린다.

그렇다면 이 세가지 색상을 조합한 결과는 어떨까?

이런 노란색이 나오는 것을 확인할 수 있다.

이렇게 구성된 픽셀로 사진을 구성하고 이 사진들로 영상을 제작할 수 있다. 음악 역시 음표를 숫자로 표현하여 만들 수 있다.

0과 1로 정말... 모든 정보를 다 표현하는것이다.

✅ 필기

출처: 모두를 위한 컴퓨터 과학 (CS50 2019)

0개의 댓글