[CS] TIL 1. 컴퓨팅 사고 (1)


  1. 2진법
  2. 정보의 표현


boostcourse모두를 위한 컴퓨터 과학 (CS50 2019) 강의를 듣고 정리한 필기입니다. 😀


1. 2진법(binary)

컴퓨터 과학이란, 문제를 해결하는 과정이다. 문제 해결 과정이란, input이 있을 때, 어떤 과정을 통해 해답이라는 output을 도출하는 것이다. 여기서 “어떤 과정”이 컴퓨터 과학에 해당한다. 우리가 문제를 인식하고 해결하는 과정에서 “어떻게 해결하는가?”가 중요할 수도 있지만, 앞서 고려해야 할 것은 입력과 출력을 어떻게 표현 할지에 대한 것이다. 즉, 컴퓨터 과학의 첫 번째 개념은 정보 자체의 표현 방법이다.

컴퓨터는 영상, 글, 사진, 소리 등 많은 것들을 0과 1의 조합인 2진법으로 표현하고 저장한다. 문제는 우리 인간은 0과 1이 아닌 0~9의 조합인 10진법을 사용한다는 것이다. 즉, 2를 컴퓨터는 010으로 표현한다. 3은 11, 4는 100이다. 이와 같은 2진법은 전기를 끄고 키는, 두 가지 방식뿐이 없는 컴퓨터에 적합하다. (켜기 =1, 끄기 = 0) 컴퓨터에는 트랜지서터라는 것이 있다. 이것은 컴퓨터 속에 있는 아주 작은 스위치로, 수백만 수십억 개가 존재한다.

컴퓨터는 2진법에서 하나의 자릿수를 표현하는 단위를 비트(bit)라고 한다. 컴퓨터는 많은 수의 비트를 활용하여 정보를 표현하고, 여기서 비트(bit)라는 측정 단위로 쓰인다. 비트는 이진 숫자라는 뜻을 “binary digit”의 줄임말이다. 하나의 비트는 0과 1뿐이기 때문에 예, 아니오와같은 단순한 작업만을 할 것이다. 그 때문에 그림, 글, 영상과 같은 데이터들을 나타내기 위해서는 더 큰 단위가 필요하다.

title



2. 정보의 표현

2.1 문자의 표현

컴퓨터가 수많은 스위치들을 끄고 켜서 숫자를 표현한다면, 어떻게 수 많은 종류의 데이터를 표현할까? 컴퓨터는 문자를 숫자로 표현할 수 있도록 정해진 약속(표준)이 존재하기 때문이다. 그 중 하나는 설명미국정보교환표준부호 ASCII(아스키코드/American Standard Code for Information Interchange)이다. 총 128개의 부호로 정의됐는 데, A는 10진법으로 65로 표현된다. 즉, A를 하나 표현할 때 컴퓨터는 1000001(65)가 될때까지 수 많은 트랜지스터를 켠다는 것이다.

title

예를 들어 hi를 입력하기 위해서는 컴퓨터가 72, 73을 의미하는 0과 1의 패턴을 찍는 다는 것이다. 우리가 컴퓨터 혹은 스마트폰에서 사용하는 특수부호 역시 약속한 숫자가 존재한다.

ASCII는 그 당시 8개의 비트만을 사용했기 때문에 다양한 문자들을 표현하기에 충분하지 않았다. 하지만 Unicode는 이다. Unicode는 8이나 16, 24, 혹은 32비트를 사용한다. 즉, 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있다는 뜻이다.

2.2 그림, 영상, 음악의 표현

그림

😂은 사진처럼 보이지만 Unicode를 통해 0과 1로 표현된 것이다. 이 이모티콘은 10진법으로 128,514이고, 2진법으로는 11111011000000010이다. 만약 친구에게 😂를 보낸다면 1111011000000010이라는 0과 1의 패턴을 보낸 것이다. 그럼 친구의 스마트폰의 안드로이드 혹은 ios는 0과 1의 패턴을 받아서 😂을 보여주는 것이다.

하지만 저 이모티콘은 그 자체로 사진에 불과하다. 수 많은 작은 점들로 이루어져있다는 말이다. 컴퓨터는 사진을 이루는 각 점을 RGB라는 체계에 의해 표현한다. 빨강, 초록, 파랑으로 말이다. 이러한 색 또한 0과 1을 사용하여 표현된다. 그렇다면 다른 색들은 어떻게 표현될까? 그들을 표현하는 체계가 또 있을까? 포토샵이나 IA 를 사용해본 사람을 알테지만, 빨강, 초록, 파랑이 세가지 색을 적절하게 섞으면 원하는 색을 만들어낼 수 있다.

title

영상

영상 또한 마찬가지이다. 영상은 실로 움직이는 것처럼 보이지만, 수천, 수백, 수억장의 사진을 차례대로 보여주면서 착시현상을 주는 것이기 때문이다.

음악

음 역시도 숫자로 양자화 할 수 있다. 어떤 음을 연주하는지는 A, B, C, D, E, F, G와 비슷한 문제기 때문이다.




© 2020. by RIVER

Powered by RIVER